| Autor |
Beitrag |
JRegier
      
Beiträge: 1268
Win XP Home, Prof, 2003 Server
D6 Enterprise
|
Verfasst: Mi 31.08.05 20:17
Hi, wie kann ich z.B. in der ListBox die Farbe Selektiert ändern?
Ich dachte im OnDrawItem aber gibt es einen anderen Weg? Mir gefällt nicht das Grau!
Wie z.B. sehe die OnDrawItem bei TreeView aus ist das im Prinzip dasselbe wie
OnDrawItem bei ListBox?
Moderiert von Christian S.: Titel geändert (komplette Großschreibung = Schreien => böse)
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mi 31.08.05 21:24
Titel: Re: FARBE "SELECTIERT" ändern?
Hallo,
JRegier hat folgendes geschrieben: | ...Ich dachte im OnDrawItem aber gibt es einen anderen Weg?
... ist das im Prinzip dasselbe wie OnDrawItem bei ListBox? |
einen anderen Weg, vermutlich ja, aber warum nicht OnDrawItem?
Das Prinzip ist dasselbe, in OnDrawItem auf odSelected bzw. odFocused reagieren und dann deine Wunschfarbe setzen.
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
JRegier 
      
Beiträge: 1268
Win XP Home, Prof, 2003 Server
D6 Enterprise
|
Verfasst: Do 01.09.05 05:28
Titel: Re: FARBE "SELECTIERT" ändern?
Lannes hat folgendes geschrieben: | Hallo,
JRegier hat folgendes geschrieben: | ...Ich dachte im OnDrawItem aber gibt es einen anderen Weg?
... ist das im Prinzip dasselbe wie OnDrawItem bei ListBox? |
einen anderen Weg, vermutlich ja, |
z.B. den OriginalCode zu ändern?
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 01.09.05 11:13
Hallo!
Ist die Anwendung nur für dich persönlich oder willst du diese auch mal eine Bekannt, Freud oder sogar ins Internet stellen?
Wenn die Anwendung nicht nur du benutzt dann würde ich die Standardfarben benutzen. Denn mich würde es stören wenn dein Programm meine Windows-Einstellungen ignorieren würde.
Lg Martin
|
|
JRegier 
      
Beiträge: 1268
Win XP Home, Prof, 2003 Server
D6 Enterprise
|
Verfasst: Fr 02.09.05 07:07
Martin1966 hat folgendes geschrieben: | Hallo!
Ist die Anwendung nur für dich persönlich oder willst du diese auch mal eine Bekannt, Freud oder sogar ins Internet stellen?
Wenn die Anwendung nicht nur du benutzt dann würde ich die Standardfarben benutzen. Denn mich würde es stören wenn dein Programm meine Windows-Einstellungen ignorieren würde.
Lg Martin |
Na ja soll ich denn einem Programm komplett System Farben setzen? Ich denke wenn ich meinem Programm eine persönliche Note gebe
mit ausgesuchten Farben und es sieht gut aus warum sollte ich das nicht tun?
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Fr 02.09.05 13:18
Hallo,
JRegier hat folgendes geschrieben: |
mit ausgesuchten Farben und es sieht gut aus warum sollte ich das nicht tun? |
z.B. Meine Einstellung für die Fensterfarbe entspricht der Farbe die Du für Selektiert in der Listbox gewählt hast, dann ist die Selektierung nicht mehr so deutlich.
Ist so ähnlich wie weißer Adler auf weißem Grund.
Wenn Du anderen Farben anbieten möchtest, dann immer optional über eine Einstellmöglichkeit.
Ein Programm mit ungewohnten Farben hinterläßt bei mir zuerstmal einen negativen ersten Eindruck.
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
pascalsv
      
Beiträge: 133
Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
|
Verfasst: Di 10.10.06 19:47
Hallo,
mich interessiert diese Thematik auch. Mit
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| myListBox := (Control as TRzListBox); sText := myLIstbox.items.strings[index]; if myListBox.Items.Strings[Index] <> '' then begin with (Control as TRzListBox).Canvas do begin if Index = 2 then Brush.Color:=clMaroon else Brush.Color := clGray; FillRect(Rect); TextOut(Rect.Left,Rect.Top,sText); end; end; |
färbe ich alles grau und die 3. Zeile bordeauxrot. Aber eigentlich hätte ich gerne Folgendes:
- Alle Einträge: bordeauxrote (clMaroon) Zeichen auf weissem Hintergrund
- selektierter Eintrag: weisse Zeichen auf bordeauxrotem Hintergrund.
Wie bekomme ich das hin??
Danke,
Pascal
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Di 10.10.06 20:15
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
pascalsv
      
Beiträge: 133
Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
|
Verfasst: Fr 13.10.06 09:02
wulfskin, dass sieht schon deutlich besser aus!!! Gibt es denn keine Möglichkeit, die Farbe des Fokusrechteckes zu verändern? Vielleicht mit einer anderen Komponenten?
Danke!
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 16.10.06 15:52
Hallo,
pascalsv hat folgendes geschrieben: | | Gibt es denn keine Möglichkeit, die Farbe des Fokusrechteckes zu verändern? |
so eine Möglichkeit kenne ich nicht, aber man kann das Fokusrechteck mit DrawFocusRect übermalen. DrawFocusRect arbeitet mit einer XOR-Funktion, daher verschwindet der Focusrahmen nach erneutem Aufruf.
Bau mal in den Code von wulfskin nach FillRect folgende Zeilen ein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| TextOut(Rect.Left+2, Rect.Top+2, TListBox(Control).Items[Index]); if odSelected in State then begin DrawFocusRect(Rect); if not (odFocused in State) then DrawFocusRect(Rect); end; |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
pascalsv
      
Beiträge: 133
Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
|
Verfasst: Mo 16.10.06 16:40
Lannes, Dein "workaround" funktioniert super!!
Vielen Dank!
Pascal
|
|