Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Sa 05.04.08 20:46 
Hi, Delpher,

ich habe folgenden Code:

ausblenden 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[10then Buchansehen1Click(Self);
end;

procedure TForm1.Buchansehen1Click(Sender: TObject);
begin                                         //740
  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');    //DBText1.caption
  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:

ausblenden 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

_________________
ut vires desint, tamen est laudanda voluntas
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 06.04.08 05:05 
Ich konnte jetzt Deiner Klick-History nicht ganz folgen, aber mir is folgendes aufgefallen:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 06.04.08 05:05 
Ich konnte jetzt Deiner Klick-History nicht ganz folgen, aber mir is folgendes aufgefallen:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: 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:

_________________
ut vires desint, tamen est laudanda voluntas