Delphi-PRAXiS

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/)
-   -   Delphi ListView bestimmten Eintrag Schriftart ändern (https://www.delphipraxis.net/104516-listview-bestimmten-eintrag-schriftart-aendern.html)

MrDevil 5. Dez 2007 16:04


ListView bestimmten Eintrag Schriftart ändern
 
Ok das habe ich

Delphi-Quellcode:
procedure Tform.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if (ListView1.Selected <> nil) then
  begin
    Sender.Canvas.Font.Style := [fsBold];
end;

das geht auch sobald ich einen Eintrag markiere wird dieser fett - ABER das ist nicht das was ich will


sondern ich möchte das ich einen Eintrag markeire aber erst wenn ich nen Button klicke soll der gewünschte eintrag Fett werden!

Wie stelle ich das an?!

shmia 5. Dez 2007 16:19

Re: ListView bestimmten Eintrag Schriftart ändern
 
Schau mal in die Hilfe; ein TListItem-Objekt hat das Property Checked.
Setze ViewStyle auf vsReport und CheckBoxes auf True, dann bist du schon fertig und braucht keinen CustomDraw Handler.

MrDevil 5. Dez 2007 16:24

Re: ListView bestimmten Eintrag Schriftart ändern
 
das aber NICHT das was ich will :-) -

shmia 5. Dez 2007 16:27

Re: ListView bestimmten Eintrag Schriftart ändern
 
Zitat:

Zitat von MrDevil
das aber NICHT das was ich will :-) -

Dann kannst du aber TROTZDEM das Property Checked benützen; dann eben in Kombination mit deinem CustomDrawHandler.
Delphi-Quellcode:
procedure Tform.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.Checked then
    Sender.Canvas.Font.Style := [fsBold]
  else
    Sender.Canvas.Font.Style := [];
end;

MrDevil 5. Dez 2007 16:36

Re: ListView bestimmten Eintrag Schriftart ändern
 
Ok

also ich habe schon report und CheckBoxen an aber die CheckBoxen haben hier schon eine gänzlich andere Rolle!
Und können für deine Lösung nicht genutzt werden.

Es ist nach wie vor Wichtig, das der Eintrag der markiert ist ERST beim Betätigen eines Buttons dick oder nicht dick wird

shmia 5. Dez 2007 16:46

Re: ListView bestimmten Eintrag Schriftart ändern
 
Na gut, dann muss du eben das Property Data benützen.
Das ist aber nicht so angenehm, wie das Property Checked zu benützen.
Delphi-Quellcode:
procedure Tform.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if integer(Item.Data) = 99 then
    Sender.Canvas.Font.Style := [fsBold]
  else
    Sender.Canvas.Font.Style := [];
end;
Delphi-Quellcode:
procedure Txxx.Button4711Click();
var
  item : TListItem;
begin
  item := ListView1.Selected;
  if Assigned(item) then
  begin
     if integer(item.Data) = 99 then
        item.Data := nil
     else
        item.Data := Pointer(99);
  end;
Alternativ könntest du auch das Property StateIndex benützen.

MrDevil 5. Dez 2007 16:51

Re: ListView bestimmten Eintrag Schriftart ändern
 
Hey super - danke :-)

das ist schon das was ich suche danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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