Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Listbox mit Farbflächendarstellung (https://www.delphipraxis.net/194721-listbox-mit-farbflaechendarstellung.html)

to-wer 28. Dez 2017 15:49

AW: Listbox mit Farbflächendarstellung
 
ich korrigiere mich...
Die Zeilen werden schon unterschiedlich eingefärbt. Aber erst, wenn man mit dem Mauszeiger darüber fährt.
Es soll aber so sein, dass die Liste gleich richtig farbig gezeichnet wird.
Würde das gehen?

Delphi.Narium 28. Dez 2017 16:05

AW: Listbox mit Farbflächendarstellung
 
Warum nicht 'ne TJvColorCombobox auf's Formular pappen?

Und dann sinngemäß:
Delphi-Quellcode:
// Im FormCreate
Var
  i    : Integer;
begin
  JvColorComboBox1.Clear;
  for i := Low(Polyneon) to High(Polyneon) do begin
    JvColorComboBox1.AddColor(StringToColor(Polyneon[i]),Polyneon[i]));
  end;
end;
Wie ist denn Polyneon definiert?
Delphi-Quellcode:
type
// Dann muss man nicht irgendwie zwei Listen nebeneinander pflegen
// und versuchen, die synchron zu halten.
  tColorRec = record
    Color : TColor;
    Name : String;
  end;

var
  Polyneon array [0..AnzahlFarben] of tColorRec;

// Im FormCreate o. ä. sinnvoller Stelle
Var
  i    : Integer;
begin
  JvColorComboBox1.Clear;
  for i := Low(Polyneon) to High(Polyneon) do begin
    JvColorComboBox1.AddColor(Polyneon[i].Color,Polyneon[i].Name);
  end;
end;

to-wer 28. Dez 2017 16:11

AW: Listbox mit Farbflächendarstellung
 
Wo find ich denn diese Komponente in Delphi, wenn ich alles installiert habe?

Delphi.Narium 28. Dez 2017 16:23

AW: Listbox mit Farbflächendarstellung
 
In meinem Delphi 7 in der Palette auf dem Reiter Jv Lists, Combos, Trees, das 9. Symbol von rechts.

Oder Menü:

-> Ansicht
--> Komponentenliste
---> TJvColorComboBox
eingeben.

MyRealName 28. Dez 2017 17:20

AW: Listbox mit Farbflächendarstellung
 
Du könntest die Komplementärfarbe nutzen, um die Schrift innerhalb eines farbgefüllten Bereiches immer lesbar zu haben.

Aviator 28. Dez 2017 18:21

AW: Listbox mit Farbflächendarstellung
 
Zitat:

Zitat von to-wer (Beitrag 1389804)
Wo find ich denn diese Komponente in Delphi, wenn ich alles installiert habe?

Die Komponente die Delphi.Narium meint ist von den Jedis.

Ich habe dein Problem aber noch nicht so ganz verstanden. Was genau funktioniert jetzt nicht? Dein SourceCode auf Seite 1 sieht soweit richtig aus bis evtl. auf die Textfarbe. Das With stört mich zwar etwas, aber das musst du wissen ob du das verwenden willst.

Beherzige den Tipp von MyRealName. Dann kannst du den Text wenigstens richtig lesen.
Zitat:

Zitat von MyRealName (Beitrag 1389814)
Du könntest die Komplementärfarbe nutzen, um die Schrift innerhalb eines farbgefüllten Bereiches immer lesbar zu haben.

Die Farbe kannst du mit
Delphi-Quellcode:
clBlack xor $DeineFarbe
bilden (wenn ich das noch richtig im Kopf habe).

to-wer 28. Dez 2017 21:04

AW: Listbox mit Farbflächendarstellung
 
@myrealname: ja genau das hatte ich vor bzw. als Alternative von der Farbsumme (R+G+B) die Schrift in schwarz oder weiß anzulegen.

@Aviator: mein Problem ist, dass die Hintergründe erst in den entsprechenden Farben gezeichnet werden, wenn ich mit der Maus darüber gehe.
In dem Moment, wo ich die Combobox öffne, werden alle Hintergründe mit der Hintergrundfarbe des ersten Feldes gezeichnet, z.B. hellblau. Das ist auch beim Verschieben der Scrollbar so, alles einfarbig. Erst mit dem Mauszeiger drüberfahren ist irgendwie blöd.

Um die Jedi Tools zu installieren, muss ich erst mein Delphi an WIN10 anpassen. Deshalb hatte ich die "schnelle" Comboboxvariante vorerst bevorzugt.

Aviator 28. Dez 2017 21:05

AW: Listbox mit Farbflächendarstellung
 
Könntest du mal ein kleines Beispielprojekt anhängen wo man den Fehler nachvollziehen kann?

EDIT: Ich verstehe was du meinst, aber ich kann an dem SourceCode so nichts falsches erkennen. Deshalb wäre ein Beispielprojekt hilfreich.

to-wer 29. Dez 2017 17:36

AW: Listbox mit Farbflächendarstellung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Aviator,
habe das Projekt auf die wesentlichen Funktionen zusammengeschrumpft.
Du kannst die Projektdatei öffnen und starten.
Im Formular Grafik findet man rechts unten die Combobox Polyneon.

In der Unit ist die onDraw Prozedur die vorletzte.
Gestern hatte ich bei einem ähnlichen Listboxproblem noch etwas mit DropKind oder so ähnlich gelesen. Das gibt es bei der Combobox wohl nicht?!
VG

Delphi.Narium 29. Dez 2017 18:02

AW: Listbox mit Farbflächendarstellung
 
Wenn man diese Zeile ändert

Delphi-Quellcode:
Brush.Color := StringToColor(Polyneon[ComboBox1.ItemIndex]);


in

Delphi-Quellcode:
Brush.Color := StringToColor(Polyneon[Index]);


werden die Farben beim Aufklappen (wie gestern schon vermutet) korrekt angezeigt.

Es soll ja schließlich die Farbe zum entsprechenden Eintrag aus Polyneon und nicht immer die Farbe des zufällig gerade gewählten Eintrages genommen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.
Seite 2 von 3     12 3      

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