AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi in ListView jedem SubItem eine Schriftart setzen
Thema durchsuchen
Ansicht
Themen-Optionen

in ListView jedem SubItem eine Schriftart setzen

Ein Thema von Mazel · begonnen am 13. Nov 2006 · letzter Beitrag vom 13. Nov 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

in ListView jedem SubItem eine Schriftart setzen

  Alt 13. Nov 2006, 15:56
Hallo,

ich zeige in einem ListView bei dem der ViewStyle auf vsReport gestellt ist in der ersten Spalte alle Schriftarten an. In der zweiten Spalte steht die Auflösung der Schriftart. Nun wollte ich in der dritten Spalten (SubItem[1]) jedem Item die entsprechende Schriftart setzen. Ich habe es schon mit CustomDrawSubItem versucht aber so funktioniert es leider nicht:
Delphi-Quellcode:
procedure TMain.LVwInfosCustomDrawSubItem(Sender: TCustomListView;
 Item: TListItem; SubItem: Integer; State: TCustomDrawState;
 var DefaultDraw: Boolean);
begin
 Sender.Canvas.Font.Name := Item.Caption;
end;
Kennt jemand eine Lösung?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: in ListView jedem SubItem eine Schriftart setzen

  Alt 13. Nov 2006, 16:13
Hallo Marcel,

du hast zwar eine Eigenschaft verändert, aber nicht wirklich etwas ausgegeben. OnCustomDrawSubItem ist aber glücklicherweise ein guter Suchbegriff für die DP-Suche.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: in ListView jedem SubItem eine Schriftart setzen

  Alt 13. Nov 2006, 16:28
Danke marabu,

habe in der Zwischenzeit etwas herum probiert und folgende Lösung bekommen:
Delphi-Quellcode:
procedure TMain.LVwInfosCustomDrawSubItem(Sender: TCustomListView;
 Item: TListItem; SubItem: Integer; State: TCustomDrawState;
 var DefaultDraw: Boolean);
begin
 If (SubItem = 2) and (TVwList.Selected.AbsoluteIndex = 8) then // wenn 3. Spalte und bestimter Index
  begin
   Sender.Canvas.Font.Name := Trim(Item.Caption);
  end;
end;
Das funktioniert so. Scheinbar sind in Item.Caption einige Leerzeichen die ich erst entfernen muss.

Danke trotzdem.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  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 17:28 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