![]() |
Enter-Taste bei SpinEdit
Hi! Ich habe in einer Formular ein Spinedit und einen Button, welcher als Default gesetzt wurde. Wenn ich jetzt im SpinEdit die Enter-Taste drücke, so wird nicht auf den Button reagiert. Ich habe probeweise ein Edit-Feld mit ins Formular gegeben, dort hat es anstandslos funktioniert. Weiß jemand worauf das Problem zurückzuführen ist?
|
Re: Enter-Taste bei SpinEdit
Zitat:
|
Re: Enter-Taste bei SpinEdit
Toms, ich weiß nicht wo du diese Eigenschaft beim Spinedit gefunden hast, aber bei meinem D7 Ent gibs die irgendwie nicht...
|
Re: Enter-Taste bei SpinEdit
Dazu musst du schon im Source Code von TSpinEdit nachschauen.
---> TSpinEdit.CreateParams
Delphi-Quellcode:
procedure TSpinEdit.CreateParams(var Params: TCreateParams);
begin inherited CreateParams(Params); Params.Style := Params.Style or ES_MULTILINE or WS_CLIPCHILDREN; end; |
Re: Enter-Taste bei SpinEdit
Achso, danke. Kann ich das Multiline irgendwie auch abschalten?
|
Re: Enter-Taste bei SpinEdit
hm...das ist zwar nicht eine antwort auf deine frage, aber vielleicht kannst du bei einem onKeyUp ereignis des spinedits sagen:
Delphi-Quellcode:
damit umgehst du das prob
if(Key=13)then
Button1.Click(); |
Re: Enter-Taste bei SpinEdit
:wall: :wall: :wall: Darn hätte ich eigentlich auch denken können...naja, auch Profis machen Fehler ;)
|
Re: Enter-Taste bei SpinEdit
Zitat:
Mach's lieber so, wie's Xeno-Sebi vorgeschlagen hat. |
Re: Enter-Taste bei SpinEdit
Die Lösung von Xeno-Sebi funktioniert eigentlich gut, doch da gibt es gleich wieder ein Folgeproblem: In der Click-Routine des Buttons überprüfe ich den Wert des Edits. Wenn ich die evtl. aufkommende Fehlermeldung mit der Enter-Taste bestätige, so erscheint das Fehlerfenster wieder. Hat jemand auch dagegen ein Heilrezept oder ist wieder ein neuer Thread fällig?
|
Re: Enter-Taste bei SpinEdit
Was für ne Fehlermeldung ist das denn? Schon mal mit try...except probiert?
also ich hab mal ein simples prog nachgebaut: 1 edit; 1 spinedit; 1 button(default)
Delphi-Quellcode:
da gabs keine fehler, deshalb glaube ich nciht, das der fehler aus der keyup methode, sondern aus deiner weiterverarbeitung kommt... ansonsten kannst du vor dem button1.click mal button1.setfocus machen, dann ist es identisch mit nem echten mausklick
procedure TForm1.SpinEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if(Key=13)then Button1.Click; end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage(Edit1.Text+IntToStr(SpinEdit1.Value)); end; |
Re: Enter-Taste bei SpinEdit
nö, eine selpst generierte Fehlermeldung. Ich geb bei einem ungültigen Port (kleiner als 1 etc.) eine Fehlermeldung mit MessageDlg aus. Ich hab mich vielleicht vorher nicht deutlich genug ausgedrückt...
|
Re: Enter-Taste bei SpinEdit
Zitat:
|
Re: Enter-Taste bei SpinEdit
Logo, hier:
Delphi-Quellcode:
Ich hoffe der erklärt sich von selbst
procedure Tf_PokerServer.b_StartServerClick(Sender: TObject);
begin //DONE:Handle start listening if (se_Port.Value >= se_Port.MinValue) and (se_Port.Value <= se_Port.MaxValue) then begin //.... end //if (se_Port.Value >= se_Port.MinValue) and (se_Port.Value <= se_Port.MaxValue) else MessageDlg('Invalid port',mtError,[mbOk],0); end; //procedure Tf_PokerServer.b_StartServerClick procedure Tf_PokerServer.se_PortKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin //DONE: React to RETURN-Key if (Key = 13) then b_StarServerClick(Sender); end; //procedure Tf_PokerServer.se_PortKeyUp |
Re: Enter-Taste bei SpinEdit
ahja ist logisch:
wenn du mit space die meldung schließt kommt sie nciht nochmal, oda??? das liegt daran, dass das(oder der???) spinedit imma noch markiert ist. Der dialog wird mit keydown geschlossen. Aber "Tf_PokerServer.se_PortKeyUp" ist keyup! also reicht eine taste für beides. also musst du das so machen:
Delphi-Quellcode:
dadurch wird das spinedit feld verlassen, und onkeyUP funzt nicht mehr, wenn es ncith markiert ist
if(Key=13)then
begin Button1.setfocus; b_StarServerClick(Sender); end; end; logisch? P.S.: statt Button1 kannste auch ein xbelibiges anderes objekt nehmen, welches nciht auf keyup reagiert^^ |
Re: Enter-Taste bei SpinEdit
Ok, das werde ich gleichmal probieren, danke einmal
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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