![]() |
.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 |
Re: .ShowModal und Button mit mrOK = mrCancel?
Also ich glaube du bist dir nicht der Funktionalität des Fensters bewusst...
Darauf ist eine Liste, und zwei Buttons... Der Eine zum abbrechen und der anderen zum "ok" ... Wenn man nun die Liste selektiert hat, und enter drückt, dann soll er so tun, als drücke er ok. Wenn man aber ESC drückt, dann soll er Abbrechen "drücken"... |
Re: .ShowModal und Button mit mrOK = mrCancel?
Zitat:
Ich habe allerdings zwei Einstellungen vergessen: beim Cancel-Button muß zusätzlich die Eigenschaft ![]() ![]() Die Tasten funktionieren allerdings immer, nicht nur innerhalb der ListBox. Wenn du diese Funktionalität benötigst, kommst du wirklich nicht ohne Code aus. Gruß Hawkeye |
Re: .ShowModal und Button mit mrOK = mrCancel?
W T F... Du hast recht ... Ist ja heftig...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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