![]() |
Fenster verschwindet
Hi,
ich kapiere immer noch manche einfachen Sachen in Delphi nicht. :P
Code:
Hier soll einfach nur mit F9 ein Fenster aufgehen, in das man etwas eingibt. Das Fenster besteht nur aus einer Form und einem Edit. Das Fenster blinkt kurz auf und verschwindet wieder. Eingeben kann ich nichts.
if (Key = VK_F9) AND (Edit1.Enabled) then begin
Form3.Show; Form3.Edit1.SetFocus; Form3.Hide; end; Gruß Hansa |
Hi,
noch etwas in diesem Zusammenhang : Ich habe jetzt mehrere Forms mit einem Edit-Feld. Das heißt bei jeder Form Edit1. Das könnte doch zu Verwechslungen führen. Wie macht ihr das. Benennt ihr die alle um ? Die Arbeit habe ich mir bis jetzt nämlich nicht gemacht. Gruß Hansa |
Hi!
Umbenennen ist so ne Sache manche machen es manche nicht :| Aber mit deiner Form kann das auch nichts werden, wenn du sofort nachdem du sie mit show zeigst wieder mit hide verschwinden lässt. Mein Tipp Bei der zu zeigenden Form im OnEnter Event des Edit-Feldes abfragen ob Return gedrückt wurde und dann die Form wieder verstecken. |
Moin Hansa,
wenn das Fenster weiter angezeigt werden soll, musst Du es mit ShowModal anzeigen, ansonsten wird Show ausgeführt, die das Show aufrufende Routine läuft weiter, und ruft kurz danach Hide auf. Ausserdem finde ich es "aufgeräumter" Komponenten eines Fensters auch in dessen Unit anzusprechen, wie z.B. den SetFocus auf das Edit Feld. Das gehört, für meinen Geschmack, z.b., in das OnShow von Form3. Was die Bennung von Komponenten angeht: Also ich habe mir angewöhnt, alle Komponenten mit aussagekräftigen Namen zu versehen, selbst StaticText Felder. Von Formularen, Edits, Button usw. mal ganz zu schweigen. Da ich für so etwas Namenskonventionen habe brauche ich mir da meist nicht mal mühsam einen Namen einfallen zu lassen, der ergibt sich fast automatisch ;-) |
Hi,
heute scheint nicht so mein Tag zu sein. :corky:
Code:
Key kennt er nicht. Wo krieg ich den denn her ? Und gleich noch eine Frage, die gut passt : Habe auf der Haupt-Form nach einen Button angelegt, wo draufsteht F9. Wenn der Button geclickt wird, soll das gleiche passieren, als wenn F9 gedrückt wird.
procedure TForm3.Edit1Enter(Sender: TObject);
begin if (Key = VK_Return) then Form3.Hide; end; Gruß Hansa |
Sorry, war mein Fehler :twisted: nimm das OnKeyUp Event vom Edit-Feld dafür.
|
Moin Hansa,
dann musst Du dem OnClick des Buttons die gleiche Routine zuweisen, wie sie beim Druck auf F9 ausgeführt wird. Ggf. im OnClick aufrufen. |
Hi,
das geht jetzt, wie es soll ! Zitat:
@Phlux : Jo, das OnKeyUp, war das richtige. Jetzt müßte ich es nur noch hinkriegen, daß bei geclicktem Button dasselbe gemacht wird, wie bei F9. :party: Gruß Hansa |
Eigentliczh würde ich die Routine um die Form zu zeigen ins OnClick-Event des buttons schreiben und dann wenn du im Event wo du abfragst ob F9 gedrückt wurde nur [ButtonName].Click ausführen, so dürfte das hinhauen.
|
Hi,
Code:
In Button1.Click steht nur Form3.Show. Vorher wars umgekehrt. Das da ist etwas eleganter, aber bei Click auf den Button passiert nichts. Bei F9 schon.if (Key = VK_F9) AND (Edit1.Enabled) then Button1.Click; Gruß Hansa[/quote] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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