25. april 2003 - 16:05Der er
6 kommentarer og 1 løsning
Tlist indeholdene object
Jeg har et object der består af en masse forskelligt
TClient = object Valid: boolean; osv.
TClients: TList;
jeg vil have en "array" af alle klienterne i en TList, problemet er bare at den ikke vil bruge en Tclients.add(Pointer(TClient))
har lige lavet det uden delphi men princippet skulle være til at forstå. Selvfølge skal det være variabler som er at typen TClient men det var lige nemmere og hurtigere at skrive sådan.
Du kan ikke proppe en type (TClient) i en TList. Som borrisholt siger bør du bruge en class og ikke et object. object-typen er et levn fra Object Pascal og bruges ikke til noget i Delphi...
Synes godt om
Slettet bruger
26. april 2003 - 18:28#5
HOVSA! Jeg sov lige da jeg skrev det første det er når jeg lavet:
type TClient = record noget : string; andet : string; end;
type pClient = ^TClient; TClient = record noget: string; andet: string; end;
TClientList = class(TList) private function GetClient(Index: Integer): TClient; procedure SetClient(Index: Integer; const Value: TClient); protected property List; property Capacity; public function Remove(const Item: TClient): Integer; Function Add(const Item: TClient): Integer; Function ClientToIndex(const Item : TClient) : Integer; property Client[Index: Integer]: TClient read GetClient write SetClient; default; property Count; end; implementation
{ TClientList }
function TClientList.Add(const Item: TClient): Integer; var aClient : pClient; begin new(aClient); aClient^:= Item; Result := inherited Add(aClient); end;
function TClientList.ClientToIndex(const Item: TClient): Integer; begin Result := IndexOf(@Item); end;
function TClientList.GetClient(Index: Integer): TClient; begin Result := pClient(List[index])^; end;
function TClientList.Remove(const Item: TClient): Integer; var aClient : pClient; begin aClient := Get(ClientToIndex(Item)); Result := inherited Remove(@Item); dispose(aClient); end;
Det var lige præcis hvad jeg skulle bruge, fandt desuden noget ligneden senere så nu kører det bare tak!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.