Solved

# Tlist and numbers (double)

Posted on 1998-11-08
237 Views
hi
i know that there ispostibility to assigned numbers to Tlist pointer for example if
Value : integer
put(index, TObject(Value))
but if i want to assigned number from type Double , how can i do it ? simple proccess like put(index(Tobject(value( .... give an Error Msg

Asi
0
Question by:asi
• 3
• 2
• 2

LVL 10

Expert Comment

ID: 1346098

Is this what you want???
0

LVL 20

Expert Comment

ID: 1346099
Yes, with Viktor's solution you can add a reference/pointer to your double values. But the original double variable has to remain valid. That means you can't give in local function variables...
If you don't like that you could use something like this (it's an extract from my delphi help file):

procedure TForm1.FormButton1Click(Sender: TObject);
type
PMyList = ^AList;
AList = record
I: Integer;
C: Char;
end;
var
MyList: TList;
ARecord: PMyList;
B: Byte;
Y: Word;
begin
MyList := TList.Create;
New(ARecord);
ARecord^.I := 100;
ARecord^.C := 'Z';
MyList.Add(ARecord); {Integer 100 und das Zeichen Z in die Liste einfügen }
New(ARecord);
ARecord^.I := 200;
ARecord^.C := 'X';
MyList.Add(ARecord); {Integer 200 und Zeichen X in die Liste einfügen }

{ Einträge in Paintbox ausgeben )
Y := 10;             {Variable für Funktion TextOut }

for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];
Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I}
Y := Y + 30;  { Y noch einmal inkrementieren }
Canvas.TextOut(10, Y, ARecord^.C);  { C ausgeben }
Y := Y + 30;  {Y inkrementieren}
end;

{ Aufräumen: Listeneinträge und Liste freigeben }
for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];

Dispose(ARecord);
end;
MyList.Free;
end;

0

LVL 10

Expert Comment

ID: 1346100
Just remember that TList is for saving pointers...

Cheers,
Viktor
0

Author Comment

ID: 1346101
i know .... the Tlist is for saving pointers but since pointers are 3 bytes they can alos save numbers
integer number is just fine ... and about double .... ?
0

LVL 20

Expert Comment

ID: 1346102
Pointers and integers are 4 byte long, not 3 byte...
Have you looked at my comment???
0

Author Comment

ID: 1346103

and i'll give u the points
Asi
0

LVL 20

Accepted Solution

ID: 1346104
Thanx, asi...   :-)
0