Witam. Przykładowo mam taki typ:
type
PBaza = ^TBaza;
TBaza = packed record
Imie: String[25];
Nazwisko: String[25];
end;
...potem mam taką procke:
procedure Procedura_A;
var
aRec: TBaza;
begin
aRec.Imie := 'Jan';
aRec.Nazwisko := 'Kowalski';
DodajRekord(aRec);
end;
procedura dodawania:
procedure DodajRekord(iRekord: TBaza);
var
aRec: PBaza;
begin
New(aRec);
//czy to jest prawidłowo?
aRec^ := iRekord;
//TList
FListaRekordow.Add(aRec);
end;
Teraz pytanie, czy kopiowanie rekordu w DodajRekord jest prawidłowo? Zdebugowałem procedure, po kopiowaniu, Integer(aRec) zwraca ten sam wskaźnik co przed kopiowaniem więc chyba jest ok? Chodzi o to żeby nie gubiło tego wskaźnika co dostaje w New() bo przy Dispose miałbym wycieki pamięci. Programik będzie operował na kilku tysiącach rekordów więc wycieki mogą być dość kłopotliwe. Inaczej, chodzi mi o uzyskanie czegoś w rodzaju Assign co jest w obiektach :). Wiem że mógłbym New(aRec) robić już w Procedura_A i do DodajRekord posyłać wskaźnik (właściwie tak robie teraz, bo nie mam pewności co do tego kopiowania), ale z pewnych względów chce mieć to wszystko ładnie zapakowane w jednej procedurze.
Pozdrawiam. Krzysiek