Autor Beitrag
penny_lane
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 13.03.05 17:30 
alsoo ich habe heute mit einem freund für die klausur gelernt und wollte jetzt ein programm machen wo man 3 abteilung hab(jeweils eine liste) und da dann leute reinsetzten kann, nur leider kann ich nicht in die listbox setzten. ich finde nur leider den fehler nicht.
den quelltext hab ich kopiert.

zweite frage wäre wie man es schafft jmd z.b aus abteilung 1(h1) in abteilung 3(h3) zu verschieben?

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:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
procedure TForm1.Button1Click(Sender: TObject); //init
var h1,h2,h3 :Tzeiger;
begin
listbox1.items.clear;
listbox2.items.clear;
listbox2.items.clear;
new(h1);
new(h2);
new(h3);
h1:=nil;
h2:=nil;
h3:=nil;
end;

procedure TForm1.Button2Click(Sender: TObject); //eingabe
var h,h1,h2,h3:Tzeiger;

    abteilung:integer;
begin
new(h);
new(h1);
new(h2);
new(h3);
h1.naechster:=nil;
h2.naechster:=nil;
h3.naechster:=nil;
h.name:=edit1.text;
abteilung:=strtoint(edit2.text);
if abteilung =1
    then if h1<>nil
    then begin
    h1:=anker1;
         h1.name:=h.name;
         listbox1.items.add(anker1^.name);  //hier bricht er ab.warum?
         while h1.naechster <>nil
         do begin
         h1:=h1.naechster;
         listbox1.items.add(h1.name);
             end
         end
    else if abteilung =2 //das macht er garnicht
         then if h2<>nil
         then begin
              h2:=anker2;
              h2.name:=h.name;
              listbox2.items.add(h2.name);
              while h2.naechster <>nil
              do begin
              h2:=h2.naechster;
              listbox2.items.add(h2.name);
                end
         end
         else if abteilung =3 // das auch nicht
         then if h3<>nil
         then begin
              h3:=anker3;
              h3.name:=h.name;
              listbox3.items.add(h3.name);
              while h3.naechster <>nil
              do begin
              h3:=h3.naechster;
              listbox3.items.add(h3.name);
               end;
               end;
               end;
end.
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Mo 14.03.05 01:06 
Hallo penny_Lane,

was für einen Typ hat anker1? Welche Fehlermeldung bekommst du? Ist anker1 <> Nil?

_________________
Live long and prosper
MrSpock \\//
penny_lane Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 14.03.05 15:42 
hi aller anker sind zeiger. und an der angegeben stelle bricht das komplette programm ab und dann kommt eine message die sagt dass irgend eine exeption class einen fehler hat. und zwar bricht es dann ab wenn er das in die listbox einfügen soll. und den zweiten bzw auch den dritten fall macht es garnicht.
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 15.03.05 00:21 
Hallo penny_lane,

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
if abteilung =1 then 
  if h1<>nil then 
  begin
    h1:=anker1;
    h1.name:=h.name;
    listbox1.items.add(anker1^.name);  //hier bricht er ab.warum?
    while h1.naechster <>nil do 
    begin
       h1:=h1.naechster;
       listbox1.items.add(h1.name);
    end
   end
   // <------- hier fehlt noch ein end!
   else if abteilung =2 //das macht er garnicht then 
     if h2<>nil then 
     begin


Die Abfrage auf abteilung=2 ist als else Fall zu h1<>nil geschrieben. Da fehlt noch ein end!

Und der Absturz kommt möglicherweise daher, dass anker1 NIL ist oder eben auf einen ungültigen Bereich zeigt.

_________________
Live long and prosper
MrSpock \\//
penny_lane Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 16.03.05 17:47 
achso . ja das kann sein. ich probier es gleich aus. danke auf jeden fall ;)