![]() |
AW: Key (z.B 'A' ) per Button an ein Editfeld senden
Zitat:
|
AW: Key (z.B 'A' ) per Button an ein Editfeld senden
Solange Du nicht vor dem Click in ein anderes Control wechselst, ja, denn SpeedButtons können keinen Fokus erhalten. Allerdings muss man sich darüber im Klaren sein, dass es ggf. nicht mehr funktioniert, wenn man doch mal andere Controls verwenden möchte, weil die z.B. cooler aussehen.
|
AW: Key (z.B 'A' ) per Button an ein Editfeld senden
@Baumina & DeddyH
Vielen Dank !!!:-D Funktioniert endlich!! Grüße, Daniel |
AW: Key (z.B 'A' ) per Button an ein Editfeld senden
Warum kommt eigentlich niemand auf die Idee einfach eine Methode zu schreiben, die diesen String annimmt und an das Control sendet, was man meint?
Delphi-Quellcode:
So würde ich es als Minimal-Umsetzung machen ;)
procedure TForm1.Focus1ButtonClick( Sender : TObject );
begin FSelectedEdit := Edit1; end; // analog für Focus2Button und Edit2 // und jetzt die Magie procedure TForm1.ProcessInput( const InputStr : string ); begin if not Assigned( FSelectedEdit ) then Exit; // wir verwerfen die Eingabe, denn wir wissen nicht wohin :o) FSelectedEdit.Text := FSelectedEdit.Text + InputStr; end; // was machen die Buttons? procedure TForm1.BottonFooClick( Sender: TObject ); begin ProcessInput( '7' ); end; Noch witziger wird das mit einem Dictionary, wo man den Sender und den zu sendenden String einträgt. Dann gibt es nur noch eine Methode für alle Buttons
Delphi-Quellcode:
Schon hat man keine Tipporgie mehr sondern einen flexiblen Code
procedure TForm1.AllButtonsClick( Sender : TObject );
var LInputStr : string; begin if FInputLookup.TryGetValue( Sender, LInputStr ) then ProcessInput( LInputStr ); end; procedure TForm1.ConfigureInputLookup; begin FInputLookup.Clear; FInputLookup.Add( Button1, '42' ); ... // usw. end; |
AW: [GELÖST] Key (z.B 'A' ) per Button an ein Editfeld senden
Naja, schöner Code ist nicht immer der für "Nicht-Pros" verständliche, daher halte ich mich da gern etwas zurück.
|
AW: [GELÖST] Key (z.B 'A' ) per Button an ein Editfeld senden
Dass SpeedButtons keinen Fokus erhalten war mir jetzt neu. Cool.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 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