![]() |
Die Diskussion um die Code-Forumatierung hat in dem Moment begonnen, als die Lochstreifen abgelöst wurden und ist in so ziemlich jedem Programmier-Forum schon x-mal geführt worden ... wenn es Euch ein Bedürfnis ist, könnt Ihr diese Diskussion natürlich auch hier (Rubrik: Klatsch und Tratsch) fortführen.
@jbg: Man darf sich jederzeit über die Code-Formatierung anderer wundern; aber hälst Du Dich da nicht an unwichtigen Details auf? Grüße, Daniel |
Hallo Leute,
dieses Thema hab ich jetzt ein halbes Jahr zurückgestellt. In dem alten Delphi Forum wurde es "verschüttet". :mrgreen: Gott sei Dank verschwindet Wissen so schnell nicht im Nirwana. Was ich nicht genau weiß, ist wo ich das ganze einbauen soll / muß. Also bei mir ist die Problemstellung folgende : fleißige Zahlentipper sollen den Numerik Block einfach benutzen können und halt eine Zahl mit Enter abschließen können. Da die Tabtaste bekanntermaßen genau auf der anderen Seite der Tastatur ist, eignet sie sich für diesen Zweck nicht. Außerdem will ich dieses Prinzip im gesamten Programm durchziehen, also bei allen möglichen Typen von Eingabefeldern. Kann mir da noch jemand was zu sagen ? Gruß Hansa |
Hallo Hansa,
wenn ich Dich richtig verstehe, dann soll bei jedem drücken der Enter-Taste im Edit, der Focus zu nem anderen Edit springen, oder irgend eine Proz ausgeführt werden. Erstelle eine OnChange Prozedur. Die kannst Du ja im OI jedem Edit anhängen. Dort prüfst Du nur noch if Key = Enter then SetFocus.Nächstes Edit. Das findest Du mit FindComponent auf dem Formular. Grüsse,Daniel :hi: |
Einfacher geht es wohl mit der API GetNextDlgItem oder so. Damit bekommt das nächtse Kontroll in der Tab-Reihenfolge den Focus. Die genaue Syntax kann ich leider im Moment nicht angeben, ich bin mir auch noch nicht mal sicher, ob die wirklich so heißt.
|
Hi,
Zitat:
Gruß Hansa |
Moin Zusammen,
ich schlag mal vor: GetNextDlgTabItem Hier im KeyDown Event eines Edit Feldes angewendet, und zwar so, dass ich nur eine Routine für alle Edits des Formualares brauche.
Code:
[b]procedure[/b] TfrmLanguage.edTitleKeyDown(Sender: TObject; [b]var[/b] Key: Word; Shift: TShiftState);
[b]begin[/b] [b]if[/b] (Key = VK_RETURN)[b]then[/b] [b]begin[/b] windows.SetFocus(GetNextDlgTabItem(self.Handle,TWinControl(Sender).Handle,false)); [b]end[/b]; [b]end[/b]; |
Hallo,
vielen Dank für die Antworten. Aber ich will doch nur die Stelle wissen, wo ich das dann einbaue. Bei jedem Edit-Feld ? Naja, dann sieht mich vorerst hier keiner mehr. Dann habe ich vorerst nur in jedem Feld das einzubauen. Dann kommt folgendes : Frage : wieso komme ich aus dem Feld nicht mehr raus ? Antwort : TAB drücken. Frage : Wo ist denn das ? Antwort : Links oben. Frage : Wo ist links ? :mrgreen: Nee Nee, ich will eine durchgängig intuitiv zu verstehende Benutzeroberfläche. Der Code scheint ja zu funktionieren. Habe es zumindest hingekriegt, daß Enter oder Return funktionieren, allerdings MIT beep. Das ist aber Anfang des Jahres passiert. Gruß Hansa Hallo Christian Seehase, hab Dein Posting gerade noch gesehen. Die Frage ist, an welcher ZENTRALEN Stelle das alles passieren soll ? Darum gehts halt. |
Hallo,
hab den ganzen Thread nochmal durchgelesen. PaulJr. hatte das hier geschrieben : Zitat:
Aber wo? darum gehts ! Sonst will ich ja gar nix wissen. :mrgreen: Gruß Hansa |
Moin Hansa,
ich hab' den Thread auch noch mal gelesen, und bin dabei zu folgendem gekommen:
EnterTab steht dabei wo immer Du magst, solange jede Formularunit darauf zugreifen kann. |
Hallo Christian, :hi:
Code:
Versteht mich denn keiner ? Das ist nicht mehr viel. Aber es nützt doch nichts, eine Prozedur zu schreiben, mit uses einzubinden und dann alles so lassen wie es ist. Welche Unit interessiert denn, ob irgendwo eine Prozedur steht ?
EnterTab steht dabei wo immer Du magst, solange jede Formularunit darauf zugreifen kann.
Gruß Hansa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 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