Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: ComboBox Inhalt nicht markieren

  Alt 15. Dez 2007, 09:19
Zitat von BenniP:
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.
Ganz einfach OwnerDraw benutzen und die Einträge selbst zeichnen. Ist wirklich ganz einfach! Such mal im Forum danach (Evtl. auch im VCL-Quelltext wie Borland das macht). In der Routine wird normalerweise einfach der Hintergrund des markierten Eintrages gesetzt. Wenn Du die Zeile weglässt hast Du das was Du möchtest. Dein OnDrawItem wird nur ca. 10 Zeilen lang sein - ist also wirklich nicht schwer!

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;
Michael Kübler
  Mit Zitat antworten Zitat