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



BeitragVerfasst: Mo 14.03.05 13:24 
Hallo ihrZ,

ich habe ein problome mit meinem StringGrid. Und zwar wird beim Buchhinzufügen ins StringGrid ein eintrag gemacht, klappt auch wunderbar. das was nicht funktioniert ist, das wenn ich ein Buch lösche, das er die Tlist mit den Büchern wieder ins StringGrid schreibt. es bleiben nur die Bücher drin, die ich eingefügt habe. Hierzu hab ich den Quelltext eingefügt.

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:
procedure TFBuecherei.b_buchremClick(Sender: TObject);
var bid, i, x : integer;
    titel, autor, verlag, inhalt, isbn, regkey :string;
    status : boolean;
    preis : real;
    Buch : CBuch;
begin
 bi := 1;
 bid := strtoint(InputBox('Buch Löschen!' , 'Geben sie die Buch ID ein!' , '1'));
 buch := cbuch.create;
 plist.deletebook(bid);

 for i := 0 to plist.getelements()-1 do
 begin
  with SGBuch do
     begin
          Cells[0,bi] := '';
          Cells[1,bi] := '';
          Cells[2,bi] := '';
          Cells[3,bi] := '';
          Cells[4,bi] := '';
          Cells[5,bi] := '';
          Cells[6,bi] := '';
          Cells[7,bi] := '';
          Cells[8,bi] := '';
          inc(bi);
     end;
  end; 

 bi := 1;

 for i := 0 to plist.getelements()-1 do
 begin
 buch := plist.getbook(i);
 with SGBuch do
     begin
          Cells[0,bi] := inttostr(bi);
          Cells[1,bi] := buch.proptitel;
          Cells[2,bi] := buch.propautor;
          Cells[3,bi] := buch.propverlag;
          Cells[4,bi] := buch.propinhalt;
          Cells[5,bi] := buch.propisbn;
          Cells[6,bi] := buch.propregkey;
          Cells[7,bi] := booltostr(buch.Propstatus);
          Cells[8,bi] := floattostr(buch.proppreis);
          inc(bi)
     end;
 end;
end;


Moderiert von user profile iconUGrohne: Delphi-Tags hinzugefügt.
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Di 15.03.05 20:24 
Nun so aus der Ferne (75 cm) sehe ich da keinen Fehler. Bist du denn sicher, das das Hinzufügen und Löschen in der Liste richtig implementiert ist?
DelphiBoon Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 16.03.05 10:55 
ja 100 pro bin ich mir sicher!!!
bin sogar alles mit f7 durchgegangen.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 16.03.05 11:21 
Das ist zwar jetzt geraten, aber hast du auch noch ein globale Variable buch?
Außerdem gibst du den Speicher für die lokale Variable buch nicht wieder frei.
DelphiBoon Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 16.03.05 11:28 
globale variable hab ich nicht. und den speicher muss ich doch nicht wieder frei machn. das geschieht doch in der von delphi schon vorhandenen procedure remove oder nicht?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure CBuchliste.deleteBook(id : Integer);
begin  
     buecher.remove(buecher.Items[id-1]);
end;


das is die procedure zum aufrufen von der remove procedure von dem vorgefertigtem DT TList.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.03.05 11:35 
Wenn buch := plist.getbook(i); dir einen Zeiger auf ein vorhandenes Buch zurückgibt, ist das CBuch.Create zuviel, denn gelöscht wird das Buch in der Liste, nicht das vorher lokal angelegte Objekt.
DelphiBoon Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 17.03.05 07:48 
und? was bringt das? bringt doch gar nichts!

ist auch eigentlich bei mir im quelltext mit // davor gemacht.. also eh raus!!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 17.03.05 08:15 
user profile iconDelphiBoon hat folgendes geschrieben:
und? was bringt das? bringt doch gar nichts!

Sorry, dass kann ich nicht beurteilen. Ich weiß nur, dass falsch benutzte Objekte, Pointer u.ä. zu den wildesten Phänomen führen können. Da ich nicht deine gesamten Source sehen kann, und im vorhandenen Teil auch keinen Fehler erkenne (was nichts heißen muss), hätte das ja eine Ursache sein können.