Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi .ShowModal und Button mit mrOK = mrCancel? (https://www.delphipraxis.net/86204-showmodal-und-button-mit-mrok-%3D-mrcancel.html)

xZise 10. Feb 2007 21:38


.ShowModal und Button mit mrOK = mrCancel?
 
Ich habe ein Problem mit dem Rückgabewert von ShowModal!

Zuerst erzeuge ich die Form dynamisch:
Delphi-Quellcode:
procedure TfrmSettings.Button1Click(Sender: TObject);
begin
  frmVarsBox := TfrmVarsBox.Create(nil);
  try
    Showmessage(BoolToStr(frmVarsBox.ShowModal = mrOk, true));
  finally
    frmVarsBox.Free;
  end;
end;
Und das Ergebnis ist false (und im falle von mrCancel true).
Dabei hat der Button bOk.ModalResult den Wert mrOk!

Delphi-Quellcode:
procedure TfrmVarsBox.lbVarsKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
    bOkClick(bOk)
  else if key = VK_ESCAPE then
  begin
    bCloseClick(bClose);
  end;
end;

procedure TfrmVarsBox.bOkClick(Sender: TObject);
begin
  ModalResult := mrOk; // Testweise hinzugefügt
  close;
end;
Und ich weis einfach nicht, woran es liegen kann...

Hawkeye219 10. Feb 2007 21:50

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Hallo Fabian,

wirf mal die Close-Anweisungen aus den Button-Prozeduren raus. Durch das Setzen von ModalResult wird das Formular bereits geschlossen.

Gruß Hawkeye

xZise 10. Feb 2007 21:53

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Und was mache ich mit OnClick anweisungen?

mkinzler 10. Feb 2007 21:55

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Zitat:

Und was mache ich mit OnClick anweisungen?
In wiefern?

xZise 10. Feb 2007 21:58

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Ich möchte einen Klick auf Ok/Abbrechen (bOk/bClose) simulieren, wenn man in der ListBox (lbVars), auf Enter/Excape drückst.
Um genau zu sein: Die Methode "lbVarsKeyDown" ;)

mkinzler 10. Feb 2007 22:00

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Entweder du rufst die entspr. Event-Methode auf, wie du es ja schon tust oder setzt .ModalResult direkt.

xZise 10. Feb 2007 22:07

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Ah danke ^^ So funktionierts!

Hawkeye219 10. Feb 2007 22:46

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Wenn du die Eigenschaft Delphi-Referenz durchsuchenTButton.ModalResult nutzt, kommst du eventuell ohne eine Zeile Quelltext aus...

Gruß Hawkeye

xZise 10. Feb 2007 22:48

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Zitat:

Zitat von Hawkeye219
Wenn du die Eigenschaft Delphi-Referenz durchsuchenTButton.ModalResult nutzt, kommst du eventuell ohne eine Zeile Quelltext aus...

Nutze ich ja schon... Aber das mit KeyDown ist ja etwas anderes, und lässt sich nur so lösen...
Ich habe jetzt nur noch die Methode lbKeyDown (die hier relevant sind)

Hawkeye219 10. Feb 2007 22:59

Re: .ShowModal und Button mit mrOK = mrCancel?
 
Wenn du wirklich TButton.ModalResult nutzt, dann solltest du deine Routinen lbVarsKeyDown, bOkClick und bCloseClick entfernen können, ohne Funktionalität zu verlieren - vorausgesetzt, sie enthalten nur den gezeigten Code.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz