![]() |
Rahmen um Auswahl in Listbox entfernen
Liste der Anhänge anzeigen (Anzahl: 1)
Moin
auch auf die Gefahr hin, dass ich jetzt aufgefordert werde die Forum-Suche zu nutzen, ich habe nichts gefunden. Ich möchte den Rahmen der, entsteht wenn ich in einer Listbox etwas selektiere einfärben oder löschen.Momentan sieht es noch so aus. (s. Anhang) Gruss vom capo |
Re: Rahmen um Auswahl in Listbox entfernen
Schon mal hiermit probiert [dp]Listbox färben[/dp]
|
Re: Rahmen um Auswahl in Listbox entfernen
Ja, habe alles ausgetestet, kein positives Ergebnis.
Selbst hiermit sehe ich immer noch einen kleinen gepunkteten Rahmen. ![]() Gruss vom capo |
Re: Rahmen um Auswahl in Listbox entfernen
ich denk ich darf nun mal *push* ^^
|
Re: Rahmen um Auswahl in Listbox entfernen
Zitat:
Delphi-Quellcode:
if odSelected in state then Canvas.DrawFocusRect(rect);
|
Re: Rahmen um Auswahl in Listbox entfernen
Hallo Blackheart...
hab ja auch nicht wirklich eine Ahnung. Danke Habe versucht aber auch so funkt. es nicht.
Delphi-Quellcode:
gruss vom capo
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin with (Control as TListBox) do begin if Odd(Index) then begin if odSelected in State then begin // if (odFocused in State) and (odSelected in State) then Canvas.Brush.Color := $00D4B569; //Canvas-Hintergrundfarbe a Canvas.DrawFocusRect (Rect) end else Canvas.Font.Color := $00817161; end else begin if odSelected in State then begin Canvas.Brush.Color := $00D4B569; //Canvas-Hintergrundfarbe Canvas.DrawFocusRect (Rect) end else Canvas.Brush.Color := clwhite; //Canvas-Hintergrundfarbe Canvas.DrawFocusRect (Rect); end; Canvas.FillRect(Rect); //schön ausmalen Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Items[Index]); //Text drüberpinseln end; end; |
Re: Rahmen um Auswahl in Listbox entfernen
versuch es mal so, daß du das DrawFocusRect erst ganz am Schluß machst
also Canvas.FillRect(Rect); //schön ausmalen Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Items[Index]); //Text drüberpinseln if .... then Canvas.DrawFocusRect(rect); |
Re: Rahmen um Auswahl in Listbox entfernen
Klappt nun perfekt.
:-D gruss vom capo |
Re: Rahmen um Auswahl in Listbox entfernen
@capo,
ich hab mir das (aus eigenem Interesse) noch mal angeschaut. Wenn ich deinen Source-Code richtig interpretiere , dann möchtest du, daß der Hintergrund - $D4B569 ist, wenn es sich um einen selektierten Eintrag handelt - $817161 ist, wenn es sich um einen unselektierten Eintrag mit ungeradem Index handelt - clWhite ist, wenn es sich um einen unselektierten Eintrag mit geradem Index handelt Dann könnte man den Code so gestalten.
Delphi-Quellcode:
DrawFocusRect muß dann aufgerufen werden wenn odFocused in State ist (nicht odSelected)
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); const bkclr:Array[boolean,boolean] of TColor=((clWhite,$817161),($D4B569,$D4B569)); begin with (Control as TListBox).Canvas, Rect do begin Brush.Color:=bkclr[odSelected in state, Odd(index)]; TextRect(Rect,Left+2,Top+1,Items[index]); if odFocused in State then DrawFocusRect(Rect); end; end; |
Re: Rahmen um Auswahl in Listbox entfernen
Ansonsten ohne rahmen entweder:
Delphi-Quellcode:
oder
Canvas.Pen.Color := Canvas.Brusch.Color
Delphi-Quellcode:
:)
Canvas.Pen.Style := psClear;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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