![]() |
Edit leert sich bei Enter
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich weiss momentan nicht mehr weiter. Ich hab eine Komponente von TLabeledEdit abgeleitet, hab der noch ein 2. Label (PostLabel) verpasst und im Edit einen Button. (heisst TAlignLabeledButtonEdit) Es funktioniert auch tadellos - nur ein Problem hab ich: Wenn ich im Edit einen Text eingebe und die Enter-Taste drücke, dann wird das Edit geleert. Bei einem normalen TLabeledEdit passiert das nicht - also muss es durch meinen Code erfolgen. Leider finde ich keine Stelle wo das (direkt) passiert. Debuggen kann ich es leider nicht, weil mir der Ansatz dafür fehlt (weiss gar nicht wo ich ansetzen sollte). Der Button ist ein SpeedButton - daher kann dieser nicht den Fokus erhalten und ich sehe ihn auch nicht als das Problem an (hab ihn auch mal komplett rauskommentiert - das Problem besteht weiterhin) Anbei mal die Unit - vielleicht findet jemand das Problem... |
AW: Edit leert sich bei Enter
Ich wollte nichts installieren und habe deshalb so getestet, aber keine Probleme feststellen können....
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer; begin for I := 0 to 3 do with TAlignLabeledButtonEdit.Create(self) do begin Top := i*20; parent := self; OnButtonClick := Label1Click; end; end; procedure TForm1.Label1Click(Sender: TObject); begin Showmessage(TAlignLabeledButtonEdit(Sender).Text) end; |
AW: Edit leert sich bei Enter
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich habe deinen Test genau so nachvollzogen. Wenn ich in einem Edit etwas eingebe, und die Entertaste drücke (nicht den Button) wird der Inhalt vom Edit gelöscht. Klick ich danach auf den Button, wird der vorher eingegebene Text im Label angezeigt. Anscheinend wird nur optisch der Text geleert - aber nicht in der Variablen intern [Edit] Ich hab das mal in ein Beispiel-Projekt gepackt |
AW: Edit leert sich bei Enter
es wird nicht leer, sondern es bricht um... mit Pfeil auf/ab kannst Du scrollen.
wenn Du das nicht willst, musst Du Deine CreateParams ändern.
Delphi-Quellcode:
procedure TAlignLabeledButtonEdit.CreateParams(var params: TCreateParams);
const Alignments: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER); begin // Geerbte Parameter setzen params.Style := (params.Style or Alignments[FAlignment] or WS_CLIPCHILDREN) and not ES_MULTILINE; inherited CreateParams(params); end; |
AW: Edit leert sich bei Enter
Zitat:
Danke für die Hilfe! [EDIT] Jetzt weiss ich auch woher das ES_MULTILINE kam: Ich hab mir das mit dem Button einfügen in ein Edit von SpinEdit abgeschaut und dort ist ES_MULTILINE auch aktiv so wie es ausschaut muss es auch aktiv bleiben, da es ohne nicht geht (also Button in Edit). Wenn man sich aber dann das KeyPress intern vom SpinEdit anschaut, dann werden dort bestimmte Tasten "verschluckt" Habs jetzt so gelöst:
Delphi-Quellcode:
procedure TAlignLabeledButtonEdit.KeyPress(var Key: Char);
begin If Key = #13 then Key := #0 else inherited KeyPress(Key); end; procedure TAlignLabeledButtonEdit.CreateParams(var params: TCreateParams); const Alignments: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER); begin inherited CreateParams(params); // Geerbte Parameter setzen params.Style := params.Style or Alignments[FAlignment] or ES_MULTILINE or WS_CLIPCHILDREN;; end; |
AW: Edit leert sich bei Enter
Mittels meiner Änderung:
Delphi-Quellcode:
kann ich natürlich die Entertaste nicht mehr im OnKeyPress abfragen.
procedure TAlignLabeledButtonEdit.KeyPress(var Key: Char);
begin If Key = #13 then Key := #0 else inherited KeyPress(Key); end; Gibts trotzdem ne Möglichkeit das ggf. zu Nutzen? |
AW: Edit leert sich bei Enter
Hallo,
vielleich hilft Dir folgendes:
Delphi-Quellcode:
Gruß
procedure TAlignLabeledButtonEdit.KeyPress(var Key: Char);
begin inherited KeyPress(Key); if Key = #13 then Key := #0 end; |
AW: Edit leert sich bei Enter
Zitat:
Danke - so funktionierts |
AW: Edit leert sich bei Enter
Hallo,
ist gerade aufgefallen: Deine Komponente lässt das Pasten mehrzeiligen Texts zu. Wenn Du ein Return abfängst, dann vermute ich mal, dass Du an Deiner WMPaste noch ein bisserl schleifen musst. Gruss |
AW: Edit leert sich bei Enter
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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