AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox ... Farbe von Zeile ermitteln

Ein Thema von DerMike · begonnen am 24. Jan 2007 · letzter Beitrag vom 24. Jan 2007
Antwort Antwort
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#1

Listbox ... Farbe von Zeile ermitteln

  Alt 24. Jan 2007, 10:11
Hallo,

ich habe ein kleineres Problem.

Ich habe nach der Anleitung aus diesem Forum einzelne Zeilen in meiner Listbox Komponente in Blau und manche in Rot dargestellt. Jetzt habe ich neben der Listbox Komponente eine zweite Listbox Komponente in die ich über 2 Buttons die Einträge

1) von Listbox1 in Listbox2
2) von Listbox2 in Listbox1 verschieben kann.

Wenn ich einen Eintrag von Listbox1 (Eintrag ist Rot) in Listbox2 verschiebe, müsste ich ermitteln in welcher Farbe der Eintrag in Listbox1 war. Geht das überhaupt, oder muss ich über ein Hilfsfeld arbeiten???

lg
Mike
----------
lg Mike
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Listbox ... Farbe von Zeile ermitteln

  Alt 24. Jan 2007, 10:37
Hallo!

wenn du nur das OnDrawItem Ereignes überschrieben hast
und lediglich anhand von ungeraden / geraden Zeilen unterschieden
hat, ob eine Zeile rot oder blau dargestellt werden soll,
dann "weiß" der Listbox-Eintrag selbst ja nichts davon.

Du könntest aber mit AddObject jedem Eintrag ein kleines
Hilfs-Objekt mitgeben, indem definiert ist, welche Farbe der
jeweilige Eintrag hat.
Beim Verschieben kann dann darauf zurückgegriffen werden
und die Info wandert ja sogar mit in die andere Listbox.


Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Listbox ... Farbe von Zeile ermitteln

  Alt 24. Jan 2007, 10:47
Es gibt 2 Techniken; ich zeig dir mal die einfachere:
1.) jeder Texteintrag enthält zusätzlich noch die Farbe (getrennt durch das | Zeichen)
Beispiel:
Bayern|$00FFFFFF
Hessen|$00F000FF
Hamburg|$00808000
2.) es gibt 2 Funktionen, mit denen man den Nutztext oder die Farbe auslesen kann
3.) im Event OnDrawItem wenn die Funktionen von 2.) benutzt, um Nutztext und Farbcode zu trennen.
Es wird dann der Nutztext in der Farbe angezeigt

Vorteil: Man kann die Listboxen mitsammt den Farben speichern und laden.
Andreas
  Mit Zitat antworten Zitat
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#4

Re: Listbox ... Farbe von Zeile ermitteln

  Alt 24. Jan 2007, 11:11
Danke erstmal,

nur leider ist mir das ganze zu hoch.

Könntest du mir einen kleinen Tip geben, wie die Funktionen heißen mit denen ich die Werte getrennt (Value,Color) auslesen kann.

lg
Mike
----------
lg Mike
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Listbox ... Farbe von Zeile ermitteln

  Alt 24. Jan 2007, 11:25
Zitat von DerMike:
Könntest du mir einen kleinen Tip geben, wie die Funktionen heißen mit denen ich die Werte getrennt (Value,Color) auslesen kann.
Die Funktion muss man natürlich selber schreiben.
Delphi-Quellcode:
function ExtractTextAndColor(const s:string; var text:string):TColor;
var
   p : Integer;
begin
   p := Pos('|',s);
   if p = 0 then // kein Delimter gefunden
   begin
      text := s;
      Result := clGrayText; // default Farbe
   end
   else
   begin
      text := copy(s,1, p-1); // Nutztext
      Result := TColor(StrToInt(copy(s, p+1, 999))); // Farbe
   end;
end;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:51 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