Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - listenklasse erstellen?
Cayenne - Mi 24.01.07 14:11
Titel: listenklasse erstellen?
servus, ich muss eine listenklasse in eine unit einfügen, wodurch man listenglieder finden, löschen, und deren nachfolger auslesen lassen können soll.
ich habe die funktionen geschrieben, habe aber fehler über fehler...
bitte um hilfe... ty
nivosta - Mi 24.01.07 14:17
Hi,
was meinst du denn mit Listenklassten? Meinst du eine Collection?
Am besten mal den Source Posten.
Gruß
Hubert
Cayenne - Mi 24.01.07 14:20
aufgepasst->
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| unit Listenklasse;
interface type Tliste = class(tobject);
private
function findeObject(ykey:string):TObject; function liefereNachfolger(yObjekt:TObject):TObject; Procedure loescheNachfolger (yKey:string); constructor create (ykey:string, yObjekt:Tobject);
public
Objekt, nachfolger:TObejct; key: String; interface
implementation
constructor create (ykey:string, yObjekt:Tobject); begin key := yKey; objekt := yobjekt; end;
function TListe.findeObjekt(ykey:string, yObjekt:Tobject):TObject; begin if Key:yKey then result:=Objekt; else if not (Nachfolger:=nil then) result:=Nachfolger.findeObjekt(yKey) else result:=nil; end;
function TListe.lieferNachfolger(ykey:string, yObjekt:Tobject):TObject;
begin if Objekt=yObjekt then if not (Nachfolger = nil) then result := Nachfolger.Objekt else if not (Nachfolger = nil) then result :=Nachfolger.liefereNachfolger(yObjekt:Tobjekt):tobjekt else result:= nil; end;
end. |
Moderiert von
jasocul: Delphi-Tags hinzugefügt
elundril - Mi 24.01.07 14:25
man kann auch delphicode verwenden. mit [delphi ] und [/delphi ]. nur halt ohne den leerzeichen nach "delphi". dann hast du nen highlighter und es ist in einer schönen weißen box.
lg el
Cayenne - Mi 24.01.07 14:37
me = noob^^
nivosta - Mi 24.01.07 14:38
Bitte, bitte, bitte mal Programierstile angewöhnen, also grundsätzlich sollte man if .. then immer in begin .. end setzen auch wenn es nur eine zeile ist also
if ... then
begin
.
end
else
begin
.
end;
So Org.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function TListe.findeObjekt(ykey:string, yObjekt:Tobject):TObject; begin if Key:yKey then result:=Objekt; else if not (Nachfolger:=nil then) result:=Nachfolger.findeObjekt(yKey) else result:=nil; end; |
Änderung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function TListe.findeObjekt(ykey:string, yObjekt:Tobject):TObject; begin if Key = yKey then begin result:=Objekt; end else begin if Nachfolger <> nil then begin result:=Nachfolger.findeObjekt(yKey); end else begin result:=nil; end; end; end; |
gesachtelte if then if then sind dann auch besser lessbar und man sieht die Fehler schneller.
Es ist bei diesem Problem wahrscheinlich besser eine TCollection und TCollectionItem zu benutzen damit hat man die komplette Kontrolle über die Liste und sogar der public Property's der Item objecte
Kroko - Mi 24.01.07 14:42
zum zweiten Mal: hier gib es Code-Tags zur besseren Lesbarkeit:
Delphi-Quelltext
1: 2: 3: 4:
| procedure Bla; begin TueEtwas; end; |
sieht doch gleich viel besser aus :lol:
per Edit kann man dies sogar korrigieren :twisted:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!