If I have this type:
Type tMyRec = Record X, Y: Integer; End;and can do this:
Const ARec : tMyRec = (X:12; Y:25);why can't I do this?
var
AnotherRec: tMyRec;
begin
AnotherRec := (X:12; Y:25);
end.** Feel free to smack me around.

Mailing lists / fpc-pascal / 2004-02
7 messages · 5 people · –
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
If I have this type:
Type tMyRec = Record X, Y: Integer; End;and can do this:
Const ARec : tMyRec = (X:12; Y:25);why can't I do this?
var
AnotherRec: tMyRec;
begin
AnotherRec := (X:12; Y:25);
end.** Feel free to smack me around.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
It's just the way the language is... you could do this...
AnotherRec.X := 12;
AnotherRec.Y := 25;or this, if i'm not mistaken...
with AnotherRec do begin
X := 12;
Y := 25;
end;with metta,
Shawn Tan.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQFAMJGK9KUEj/m6O5oRAgFLAJ9P8GoTc62l310Zq99F1g6RujOuwgCgsdc7 liXNcgoLQIPREr7BbN0lG6c=
=u2G5
-----END PGP SIGNATURE-----
Here is why I was wondering why you couldn't, say I have this type:
Type tMyRec = Record X, Y : Real; End;And I have this function:
Function CheckPoint(aPoint: tMyRec): Boolean;
Begin
{Does something here..}
end;
begin
CheckPoint((X:1.2;Y:2.2));
end.In short I think it would be a nifty feature.. but hey.. I was just wondering.
Since Free Pascal supports function overloading,
you could do something like this:
Function CheckPoint(X, Y:real): Boolean;
Begin
{Does something here..}
end;
Function CheckPoint(aPoint: tMyRec): Boolean;
Begin
Result:=CheckPoint(aPoint.X, aPoint.Y);
end;
// So you can use it either way:
var
MyRec:tMyRec;
begin
if CheckPoint(MyRec) then {do stuff};
if CheckPoint(1.2, 2.2) then {do more stuff};
end;__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want. http://antispam.yahoo.com/tools
You can also define a function that returns the record you need: function NewMyRec( X, Y…
^_^ Thats how its working at the moment and I've known that FPC doesn't do that kinda definition on the fly. My real question was why not?
Since Free Pascal supports function overloading, you could do something like this:…
You can also define a function that returns the record you need:
function NewMyRec( X, Y : double ) : TMyRec;
begin
NewMyRec.x := X;
NewMyRec.y := Y;
end;I think it's really better than declare a new variable and initialize it by the code.
if CheckPoint(NewMyRec(1.2, 2.2)) then ...
Be well...
^_^ Thats how its working at the moment and I've known that FPC doesn't do that kinda…
^_^ Thats how its working at the moment and I've known that FPC doesn't do that kinda definition on the fly. My real question was why not?
Because Pascal is not a dynamically typed language. C/C++ doesn't do this kind of thing either. Not 'on the fly' without any basic types defined.
Matt