AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Rahmen um Auswahl in Listbox entfernen

Ein Thema von capo · begonnen am 9. Okt 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2   
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Rahmen um Auswahl in Listbox entfernen

  Alt 9. Okt 2007, 08:51
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
Miniaturansicht angehängter Grafiken
listbox_108.gif  
Hotte
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 9. Okt 2007, 09:03
Schon mal hiermit probiert Hier im Forum suchenListbox färben
Blackheart
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 9. Okt 2007, 09:18
Ja, habe alles ausgetestet, kein positives Ergebnis.
Selbst hiermit sehe ich immer noch einen kleinen gepunkteten Rahmen.
http://www.delphipraxis.net/internal...stbox+f%E4rben

Gruss vom capo
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 10. Okt 2007, 12:51
ich denk ich darf nun mal *push* ^^
Hotte
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 10. Okt 2007, 14:54
Zitat von capo:
Ja, habe alles ausgetestet, kein positives Ergebnis.
Selbst hiermit sehe ich immer noch einen kleinen gepunkteten Rahmen.
http://www.delphipraxis.net/internal...stbox+f%E4rben

Gruss vom capo
Dort stand es doch
if odSelected in state then Canvas.DrawFocusRect(rect);
Blackheart
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 10. Okt 2007, 23:23
Hallo Blackheart...

hab ja auch nicht wirklich eine Ahnung. Danke

Habe versucht aber auch so funkt. es nicht.


Delphi-Quellcode:
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;
gruss vom capo
Hotte
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.039 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 10. Okt 2007, 23:37
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);
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 11. Okt 2007, 07:34
Klappt nun perfekt.

gruss vom capo
Hotte
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.039 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 11. Okt 2007, 11:16
@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:
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;
DrawFocusRect muß dann aufgerufen werden wenn odFocused in State ist (nicht odSelected)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 11. Okt 2007, 12:05
Ansonsten ohne rahmen entweder:
Canvas.Pen.Color := Canvas.Brusch.Color oder
Canvas.Pen.Style := psClear;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz