![]() |
.ShowModal und Button mit mrOK = mrCancel?
Ich habe ein Problem mit dem Rückgabewert von ShowModal!
Zuerst erzeuge ich die Form dynamisch:
Delphi-Quellcode:
Und das Ergebnis ist false (und im falle von mrCancel true).
procedure TfrmSettings.Button1Click(Sender: TObject);
begin frmVarsBox := TfrmVarsBox.Create(nil); try Showmessage(BoolToStr(frmVarsBox.ShowModal = mrOk, true)); finally frmVarsBox.Free; end; end; Dabei hat der Button bOk.ModalResult den Wert mrOk!
Delphi-Quellcode:
Und ich weis einfach nicht, woran es liegen kann...
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; |
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 |
Re: .ShowModal und Button mit mrOK = mrCancel?
Und was mache ich mit OnClick anweisungen?
|
Re: .ShowModal und Button mit mrOK = mrCancel?
Zitat:
|
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" ;) |
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.
|
Re: .ShowModal und Button mit mrOK = mrCancel?
Ah danke ^^ So funktionierts!
|
Re: .ShowModal und Button mit mrOK = mrCancel?
Wenn du die Eigenschaft
![]() Gruß Hawkeye |
Re: .ShowModal und Button mit mrOK = mrCancel?
Zitat:
Ich habe jetzt nur noch die Methode lbKeyDown (die hier relevant sind) |
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. |
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