![]() |
ComboBox Inhalt nicht markieren
Hallo,
ich hab ein kleines Problem. Auf meinem Form ist eine ComboBox mit dem Style csDropDown. Ich versuche die Cursorposition mit .SelStart auszulesen. Was bei Edit auch hervorragend klappt, nur nicht bei der ComboBox. Der gesamte Inhalt wird markiert sobald man sie anklickt und .SelStart (logischer weise) auf 0 gesetzt. Meine Frage ist nun, kann ich der ComboBox diese Verhalten abgewöhnen? :) Besten Dank! |
Re: ComboBox Inhalt nicht markieren
Ist es korrekt, dass du verhindern willst, dass wenn du ein vordefiniertes Item aus der Combobox auswählst, der komplette Text selektriert wird? Du willst also, dass die (Text-)Cursorposition beim ändern der Selektion beibehalten bleibt?
|
Re: ComboBox Inhalt nicht markieren
Um das Verhalten der auszuwählenden Einträge hab ich mir noch keine Gedanken gemacht.
Es geht mir nur um das Problem das der komplette Text markiert wird beim Anklicken der ComboBox. Wenn sich das Verhalten der Auswahl von Einträge auch ändern ist mir das (relativ) egal. |
Re: ComboBox Inhalt nicht markieren
Zitat:
SCRaT //EDIT: Habe gerade bemerkt, daß Du was für eine Combobox suchst. Wer lesen kann ist klar im Vorteil. Trotzdem möchte ich Dir folgenden Quelltext nicht vorenthalten, evtl. kannst Du Dir davon was für Dein Problem abschauen. Vergiß nicht, vorher im OI den STyle auf OwnerDraw zu stellen!!! Viel Spaß...
Delphi-Quellcode:
procedure TForm2.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin with (Control as TListBox).Canvas do begin // in ListBox zeichnen if odSelected in State then Brush.Color := $00FF00 else Brush.Color := $FFFFFF; Brush.Style := bsSolid; FillRect(Rect); Brush.Style := bsClear; TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]); // Text schreiben end; end; |
Re: ComboBox Inhalt nicht markieren
Ah, OwnerDraw hört sich gut an.
Daran hab ich noch nicht gedacht. Vielen Dank werde es nachher probieren! |
Re: ComboBox Inhalt nicht markieren
Hab gerade noch einen guten
![]() |
Re: ComboBox Inhalt nicht markieren
Hmm, wie kann ich der ComboBox wieder ein Edit-ähnliches Feld zuweisen?
Sobald ich den Style auf OwnerDraw umstelle, verhält sich die ComboBox wie bei csDropdownList. |
AW: ComboBox Inhalt nicht markieren
Hallo,
ich weiß, der Eintrag ist schon ziemlich alt, ist aber trotzdem in meiner App unschön. Ich habe aber das Gefühl, dass hier ein Bug in Windows oder Delphi vorliegt, nämlich: Das ComboBox-Textfeld bleibt markiert, wenn es einmal markiert wurde. Nur wenn man (einmal oder zweimal) draufklickt, verschwindet die Markierung des Feldes. Zumindest bei mir ist das so bei Delphi 7 und Windows 10. Zufällig fand ich eine Lösung ohne Interaktion für meine ComboBox z. B. ComboBox1: with ComboBox1 do SelText := Text; das geht natürlich nur, wenn ComboBox1.Style := csDropDown ist Es würde mich interessieren, ob andere auch so was feststellen. |
AW: ComboBox Inhalt nicht markieren
Was hat
Delphi-Quellcode:
mit der Selektierung an sich zu tun?
with ComboBox1 do SelText := Text;
Hier wird der "aktuell" selektierte Text durch den ganzen Text ersetzt und das Eingefügte ist dann alles selektiert. PS: Wenn nicht alles oder nichts markiert ist, dann macht der Code ganz nette Dinge. |
AW: ComboBox Inhalt nicht markieren
Hallo,
was ich hier geschrieben hatte, kann ich heute leider gar nicht mehr reproduzieren, sorry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz