Avatar billede Slettet bruger
25. april 2003 - 16:05 Der 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.
Avatar billede borrisholt Novice
26. april 2003 - 07:29 #1
har du prøver at lave Tclient som en klasse ?
Avatar billede Slettet bruger
26. april 2003 - 10:49 #2
næ er det bedre ?
Avatar billede borrisholt Novice
26. april 2003 - 10:51 #3
Ja så tror jeg alle dine problemer er løst
Avatar billede doctorseb Nybegynder
26. april 2003 - 18:15 #4
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...
Avatar billede 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;
Avatar billede borrisholt Novice
28. april 2003 - 08:32 #6
her er lidt at starte på :

unit Unit2;

interface
uses
  Classes;

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;

procedure TClientList.SetClient(Index: Integer; const Value: TClient);
begin
  pClient(List[index])^ := Value;
end;

end.



Jens B
Avatar billede Slettet bruger
29. april 2003 - 13:54 #7
Det var lige præcis hvad jeg skulle bruge, fandt desuden noget ligneden senere så nu kører det bare tak!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester