Autor Beitrag
Cayenne
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 24.01.07 14:11 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 35



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 24.01.07 14:20 
aufgepasst->

ausblenden volle Höhe 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 = nilthen
   result := Nachfolger.Objekt
  else
   if not (Nachfolger = nilthen
    result :=Nachfolger.liefereNachfolger(yObjekt:Tobjekt):tobjekt
   else
    result:= nil;
end;



end.


Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Cayenne Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 24.01.07 14:37 
me = noob^^
nivosta
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 35



BeitragVerfasst: 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.
ausblenden 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:
ausblenden 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


Zuletzt bearbeitet von nivosta am Mi 24.01.07 14:50, insgesamt 2-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 24.01.07 14:42 
zum zweiten Mal: hier gib es Code-Tags zur besseren Lesbarkeit:

ausblenden 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:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!