Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Formular wird nicht sichtbar?
D. Annies - Sa 05.04.08 20:46
Titel: Formular wird nicht sichtbar?
Hi, Delpher,
ich habe folgenden Code:
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:
| procedure TForm1.DBGrid4CellClick(Column: TColumn); begin if (datasource4.DataSet = QBuchstamm) then ebuchtitel.Text := QBuchstamm.fieldbyname('Titel').asstring; if column = dbgrid4.Columns.items[10] then Buchansehen1Click(Self); end;
procedure TForm1.Buchansehen1Click(Sender: TObject); begin form3.Visible := true; form3.SetBounds(screen.Width-290,90,290,400); form3.image1.setbounds(10,10,265,350); form3.Image1.Visible := true; form3.Image1.Hint := 'Vergrößern mit <Klick>'; tname := concat(label30.caption, 'Bildb\',QBuchstamm.fieldbyname('TITEL').asstring,'.jpg'); if fileexists(tname) and (QBuchstamm.FieldByName('D').AsString = '-') then lade_buchstamm(self); if not fileExists(tname) then tname := label30.caption+'Bildb\nocover.bmp'; form3.image1.picture.loadfromfile(tname); form3.Caption := extractfilename(tname); if extractfilename(tname) = 'nocover.bmp' then begin if MessageDlg('Soll ein Bild geladen und eingefügt werden? ', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Img2Cb(AImage); end end;
procedure TForm1.Img2Cb(AImage: TImage); begin if form3.OpenPictureDialog1.Execute then form3.Image1.Picture.LoadFromFile(form3.OpenPictureDialog1.FileName); end; |
Beim ersten Mal anklicken der 10. Spalte öffnet sich auch das Formular und zeigt das Bild, wenn vorhanden, an - auch beim zweiten, dritten Mal etc. Aber wenn ich nach dem ersten Mal zunächst auf eine andere als die 10. Spalte geklickt habe, wird das Formular beim zweiten oder dritten Mal anklicken der 10. Spalte nicht mehr sichtbar.
Woran könnte das liegen?
Danke für Hilfe,
Detlef
P.S.
ich habe jetzt die obere Prozedur geändert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.DBGrid4CellClick(Column: TColumn); begin if (datasource4.DataSet = QBuchstamm) then ebuchtitel.Text := QBuchstamm.fieldbyname('Titel').asstring; if DBGrid4.Columns.Items[Column.Index].FieldName = 'D' then Buchansehen1Click(Self); end; |
Jetzt gehts --- aber warum??
Gruß, Detlef
LexXis - So 06.04.08 05:05
Ich konnte jetzt Deiner Klick-History nicht ganz folgen, aber mir is folgendes aufgefallen:
Delphi-Quelltext
1:
| column = dbgrid4.Columns.items[10] |
Damit fragst du die elfte (!) Spalte ab, nicht die zehnte, da die Durchnummerierung bei 0 statt bei 1 anfängt!
LexXis - So 06.04.08 05:05
Ich konnte jetzt Deiner Klick-History nicht ganz folgen, aber mir is folgendes aufgefallen:
Delphi-Quelltext
1:
| column = dbgrid4.Columns.items[10] |
Damit fragst du die elfte (!) Spalte ab, nicht die zehnte, da die Durchnummerierung bei 0 statt bei 1 anfängt!
D. Annies - So 06.04.08 09:09
Hi, LexXis,
ist schon klar, ich wollte auch erst (11. Spalte) in Klammern dazusetzen, habe es aber vergessen. Es ist natürlich die 11.Spalte, aber der Sachverhalt bleibt der gleiche.
Danke für deinen Hinweis, Detlef
P.S.: Ich habe nochmal nachgezählt: Es war doch Columns[9], die zehnte - nicht Columns[10], die 11. - OBERPEINLICH!! :oops: :oops: :oops:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!