![]() |
TABSTOP-Problem bei Panels
hi,
habe vor einiger zeit ein programm von einem kumpel geschickt bekommen (taschenrechner). dieser taschenrechner hat panels für die zahleneingabe des taschenrechners (1,2,3..) und man kann sie per "tab" anwählen und mit enter oder leertaste anklicken. nun habe ich auch versucht mit panels einen taschenrechner zu programmieren, aber ich kann die panels nicht mittels tab anwählen!! habe auch schon die tabstop auf true gesetzt, aber es wird nichts ausgeführt wenn ich auf dem panel bin und enter drücke... PLEASE HELP! |
Re: TABSTOP-Problem bei Panels
Wenn Du Dich mit >TAB< bewegen willst, musst Du auch >Tab< drücken und nicht >Enter<. Wenn Du mit >Enter< etwas bewirken willst (z.B. Übernehmen des Wertes), dann musst Du das dem Panel auch ausdrücklich sagen.
mfg Gfjs |
Re: TABSTOP-Problem bei Panels
Zitat:
Zitat:
bitte etwas ausführlicher... falls du einen onclick-befehl meinst, den hab ich schon eingebaut... |
Re: TABSTOP-Problem bei Panels
Sorry :oops: , ich sitze im Büro und habe nur nebenbei einmal kurz ins Forum geschaut und den ersten Teil des Satzes überlesen. :wall: Also, nimm's mir bitte nicht übel.
Auf meinem Bürorechner habe ich kein Delphi installiert und kann nichts ausprobieren. Aber wenn ich probier's nachmittags mal aus, wenn ich zu Hause bin. mfg gfjs |
Re: TABSTOP-Problem bei Panels
Hai silentAMD,
bist Du sicher das es mit Panels gemacht wurde? Das ich recht ungewöhnlich. Buttons wären doch viel besser. Aber egal. Das "Problem" ist das ein Panel kein OnKeypress oder ähnliches kennt und das OnClick nur beim klicken mit der Maus reagiert. Du musst also im OnKeyDown der Mainform auf die Tastendrücke reagieren (KeyPreview := True). Das ganze könnte zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin KeyPreview := True; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_RETURN) or (Key = VK_SPACE) then begin if (ActiveControl is TPanel) then begin (ActiveControl as TPanel).OnClick (ActiveControl); end; end; end; procedure TForm1.AllePannelEnter(Sender: TObject); begin (Sender as TPanel).BorderStyle := bsSingle; end; procedure TForm1.AllePannelExit(Sender: TObject); begin (Sender as TPanel).BorderStyle := bsNone; end; procedure TForm1.AllePannelClick(Sender: TObject); begin (Sender as TPanel).SetFocus; // Focus bei Mausklick ShowMessage ((Sender as TPanel).Name); end; |
Re: TABSTOP-Problem bei Panels
Hallo, silentAMD.
Jetzt sitze ich zu Hause an meinem Rechner und habe mal ein wenig rumprobiert. Im ersten Augenblick dachte ich auch, ich könnte mich mit >Tab< nicht von Panel zu Panel bewegen. Dann habe ich bemerkt, dass sich die Panels beim Anspringen mit >Tab< nicht verändern, so dass ich es einfach nicht bemerkt habe. Habe dann in das onEnter-Ereignis "Panel1.Color := clRed" eingegeben - und siehe da: von Panel zu Panel mit >Tab< funktioniert. Die Behandlung der Enter- bzw. Leertaste hat Dir Sharky schon beschrieben (besser, als ich es gekonnt hätte). Noch viel Spaß und schönes Wochenende. mfg gfjs |
Re: TABSTOP-Problem bei Panels
thx @all: ich werde es mal ausprobieren :thumb:
ich bin mir aber ziehmlcih sicher, dass mein kumpel, der mir den taschenrechner geschickt hat, das mit Sharky's idee sicher nicht hätte machen können :wink: nochmal danke für die schnelle antwort mfg ingo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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