AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ListView - HideSelection - markierung Überschreiben
Thema durchsuchen
Ansicht
Themen-Optionen

ListView - HideSelection - markierung Überschreiben

Ein Thema von Sven Janssen · begonnen am 20. Sep 2004 · letzter Beitrag vom 20. Sep 2004
Antwort Antwort
Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#1

ListView - HideSelection - markierung Überschreiben

  Alt 20. Sep 2004, 06:54
Ich habe zwei ListView. Selektiere ich in dem einen etwas (erhält Fokus) soll in dem anderen einzelne Einträge markiert werden. Allerdings werden diese (Standard XP GUI) nur in einem schwer erkennbaren grau unterlegt.

Nun habe ich versucht die Markierung bei onCustomDrawItem zu übermalen. Leider ohne Erfolg. Ich bekomme zwar raus welches selektiert ist, aber die neue Hintergrundfarbe wird nicht angenommen.

Jemand ne Ahnung wie dennoch die markierungen bei nicht fokusierten Elementen verändern kann? Insbesondere hier bei der ListView.

Mein Code:
Delphi-Quellcode:
if (item.selected) and ((sender as TListview).name = 'lv1') then begin
    item.listview.canvas.font.color:=clHighlightText;
    item.listview.canvas.brush.color:=clHighlight;
end;
Sven
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#2

Re: ListView - HideSelection - markierung Überschreiben

  Alt 20. Sep 2004, 09:22
Hi,

hast du
property OwnerDraw: Boolean; auch auf True gesetzt? Weil ansonsten OnCustomDrawItem nix macht.

Gruss
Daniel M.
Daniel M.
  Mit Zitat antworten Zitat
Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#3

Re: ListView - HideSelection - markierung Überschreiben

  Alt 20. Sep 2004, 09:57
na logisch ;-)
da steht noch viel mehr drin. Wollte ich aber hier nicht alles posten.
Wie gesagt ich bekomme heraus welches selektiert ist, er geht auch in die Verzweigung, aber anscheinde überschreibt er das ganze dann noch einmal selber.
Frage ist, wie ich unterbinden kann.

Sven
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#4

Re: ListView - HideSelection - markierung Überschreiben

  Alt 20. Sep 2004, 10:22
hmm komisch, also bei mir funzt es:

Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  R:TRect;
begin
  if Item.Selected then
  begin
    DefaultDraw:=False;
    R:=Item.DisplayRect(drBounds);
    ListView1.Canvas.Brush.Color:=clBlue;
    ListView1.Canvas.Rectangle(R);
    ListView1.Canvas.DrawFocusRect(R);
  end else
  begin
    DefaultDraw:=True;
  end;
end;
hab das mal ebend schnell zusamm gebaut, und das noch auf arbeit
Daniel M.
  Mit Zitat antworten Zitat
Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#5

Re: ListView - HideSelection - markierung Überschreiben

  Alt 20. Sep 2004, 11:57
ja ne :-)
Ich will defaultdraw nicht deaktvieren. Das ist mir dann klar das dies funktioniert.
aber dann muss mal alles selber übernehmen.
Anscheind gibt es keine Lösung, dann muss ich es wohl so lösen.

Thx

Sven
PS: Der Code ist übrigens nicht übersetztbar von Dir.
Canvas.Rectangle() muss man alle 4 Punkte des TRect mitgeben (zumindestens in Delphi4).
  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 06:36 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