Wskaznik do rekordu

0

Mam uproszczony kod Delphi przerobiony do Pascala, bez rzadnych przyciskow itp, aby maksymalnie uproscic.
I problem jest taki, wlasciwie to czytaj komentarze w klamerkach { ... }.
Z gory dzieki za pomoc.
Ewentualnie co mam zle?

[code]
type
TRGBRec = record
R,G,B: byte;
end;

var
Lista: TList;
Kolory: ^TRGBRec;
P: Pointer;
n: integer;

begin
Lista := TList.Create;

new(Kolory);

Kolory^.R := 4;
Kolory^.G := 5;
Kolory^.B := 6;

Lista.Add(@Kolory)
{ tu kilka takich Add-ow :-) ... }

for n:=0 to Lista.Count-1 do
begin
P := Lista.Items[n];
{
Tu wyswietlic Kolory.R np. w TEdit gdzie P to wskaznik do rekordu Kolory.
Chodzi tylko o to, jak sie dostac do pola struktury za pomoca tegoz wlasnie wskaznika P, gdyz w programie mam tylko do niego dostep.
}
end;

Lista.Clear;
Lista.Destroy;
end;
[/code]

0
type
  PKolory: ^TRGBRec;
var
  Kolory: PRGBRec;

przede wszystkim bez @, bo robisz podwójny wskaźnik, tzn. wskaźnik do wskaźnika:

  Lista.Add(Kolory)

jeśli nie pójdzie tak, to pójdzie tak:

  Lista.Add(pointer(Kolory))

odwołanie:

    kolory := PKolory(Lista.Items[n]);

1 użytkowników online, w tym zalogowanych: 0, gości: 1