Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi lästiges beepen abstellen ?? (https://www.delphipraxis.net/110-laestiges-beepen-abstellen.html)

Daniel 12. Jun 2002 12:49

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

Hansa 19. Okt 2002 11:18

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

Daniel B 19. Okt 2002 12:29

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:

Luckie 19. Okt 2002 14:29

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.

Hansa 19. Okt 2002 17:25

Hi,

Zitat:

ich bin mir auch noch nicht mal sicher, ob die wirklich so heißt.
An so nem Mist häng ich halt auch. :angle2:

Gruß
Hansa

Christian Seehase 19. Okt 2002 17:44

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];

Hansa 19. Okt 2002 18:08

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.

Hansa 19. Okt 2002 18:48

Hallo,

hab den ganzen Thread nochmal durchgelesen.

PaulJr. hatte das hier geschrieben :

Zitat:

Bitte die Eigenschaft des Formulars KeyPriview auf TRUE setzen und natürlich die Prozedur EnterTab in das Projekt aufnehmen (bei mir liegt diese natürlich in einer allgemeiner UNIT)

__________________________________________________ ________________
1.) Die Umwandlung ENTER --> TAB sollte in aller Komponenten wirksam werden

Darüber Hinaus bei ESC wird das Formular geschlossen
So wärs gerade richtig. Aber :und natürlich die Prozedur EnterTab in das Projekt einfügen

Aber wo? darum gehts !
Sonst will ich ja gar nix wissen. :mrgreen:

Gruß
Hansa

Christian Seehase 19. Okt 2002 19:02

Moin Hansa,

ich hab' den Thread auch noch mal gelesen, und bin dabei zu folgendem gekommen:
  1. Bei jedem Formular KeyPreview auf true setzen
  2. Bei jedem Formular im Event OnKeyDown EnterTab aufrufen.

EnterTab steht dabei wo immer Du magst, solange jede Formularunit darauf zugreifen kann.

Hansa 19. Okt 2002 19:20

Hallo Christian, :hi:

Code:
EnterTab steht dabei wo immer Du magst, solange jede Formularunit darauf zugreifen kann.
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 ?

Gruß
Hansa


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Seite 3 von 6     123 45     Letzte »    

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