Einzelnen Beitrag anzeigen

gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

Verständnisfrage zu DialogResult

  Alt 29. Sep 2006, 10:47
Hallo, Allerseits.

In einer eigenen Komponente befindet sich eine Dialog-Box mit den beiden Buttons "OK" und "Cancel". Für den OK-Button ist DialogResult auf OK gesetzt und im Formular "AcceptButton := BuOK". Der Dialog öffnet sich, wenn die Komponente den Focus erhält. Soweit ist noch alles klar.

Ich wollte nun erreichen, dass mit dem Schließen des Dialogs automatisch das nächste Steuerelement angesprungen wird. Ich habe das so versucht:

Delphi-Quellcode:
procedure TStringEdit.MyControl_Enter(sender: System.Object; e: System.EventArgs);
begin
  if MyDialog.ShowDialog = System.Windows.Forms.DialogResult.OK then
  begin
    DoSomething;
    MyDialog.DialogResult := System.Windows.Forms.DialogResult.None;
  end; // if MyDialog.ShowDialog = OK
  parent.SelectNextControl(Self,true,true,true,true);
end;

Procedure TStringEdit.BuCancel_Click(sender: System.Object; e: System.EventArgs);
begin
  MyDialog.Close;
end;
Das Problem dabei ist nun, dass das nächste Steuerelement immer angesprungen wird - auch beim Click auf den Cancel-Button. Wenn sich nun auf einem Formular ausschließlich meine Komponenten befinden, komme ich nicht mehr aus diesem Kreislauf heraus. Ursprünglich hatte ich das Problem auch mit dem OK-Button, konnte das aber mit "MyDialog.DialogResult := System.Windows.Forms.DialogResult.None;" lösen. Bei "BuCancel_Click" klappt das leider nicht.

Wie komme ich da wieder raus???

Vielen Dank im Voraus und noch einen schönen Tag.

Gruß Jürgen.
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat