AGB  ·  Datenschutz  ·  Impressum  







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

ListView - Erste Spalte in Fett ?

Ein Thema von moelski · begonnen am 27. Aug 2007 · letzter Beitrag vom 28. Aug 2007
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 15:42
Moin !

Ich habe ein ListView mit 3 Spalten. Die erste Spalte hätte ich gerne in Fett.
Habe dazu diesen Code verwendet:
Delphi-Quellcode:
procedure TGeraetPort_Form.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if (Item=nil) then Exit;
  Sender.Canvas.Font.Style := [fsBold];
end;

procedure TGeraetPort_Form.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  with Sender.Canvas do begin
    case SubItem of
      0, 1, 2 : Font.Style := [];
    end;
  end;
end;
Aber das Ergebnis ist immer das Spalte 1 und 2 in Fett sind und nur Spalte 3 ist nicht Fett.

Kann mir jemand nen Tip geben wo ich nun schief liege ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
marabu

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

Re: ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 15:54
Hallo Dominik,

in deinem Fall sollte das helfen:

Delphi-Quellcode:
procedure TDemoForm.ListViewCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  with Sender.Canvas.Font do
    Style := Style + [fsBold];
end;

procedure TDemoForm.ListViewCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  with Sender.Canvas.Font do
    Style := Style - [fsBold];
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 16:03
Moin !

Nö auch in diesem Fall ist leider die zweite Spalte Fett.
Miniaturansicht angehängter Grafiken
spaltefett_207.png  
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
marabu

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

Re: ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 16:10
Mein Code produziert das angehängte Bild.

Wo ist dein Code (Demo-Projekt oder DFM/PAS), mit dem es nicht funktioniert?
Miniaturansicht angehängter Grafiken
moelski_973.png  
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 16:15
Moin !

Moin Code ... UARGH ...
Das ist in unsere Anwendung. Alles wird schwierig, aber ich poste mal das relevante ...

Delphi-Quellcode:
procedure TGeraetPort_Form.FillSelectBox;
var AppPath, INIFile : String;
    _i : Integer;
    DeviceINI : TINIFile;
    Name, Hersteller : String;
    Port : String;
    Checked : Boolean;
    INIListe : TStringList;
    Item : TListItem; //Wichtig!!
begin
  SiMain.TrackMethod('FillSelectBox');
  ListView1.Items.BeginUpdate;
  ListView1.Clear;
  INIListe := ListINIFiles(ExtractFilePath(ParamStr(0)));
  SiMain.LogMessage('Anzahl Items : ' + IntToStr(INIListe.Count));
  AppPath := ExtractFilePath(ParamStr(0));
  SiMain.LogMessage(AppPath);
  // Pfad + INI Name -> AppPath + 'Geraete\' + Liste[_i]
  For _i := 0 to INIListe.Count -1 do
  begin // copy(Liste[_i], 1, length(Liste[_i]) - 4);
    INIFile := AppPath + 'Geraete\' + INIListe[_i];
    DeviceINI := TINIFile.Create(INIFile);
    Name := copy(INIListe[_i], 1, length(INIListe[_i]) - 4); //DeviceINI.ReadString('Gerät', 'Name', 'NO NAME');
    Hersteller := DeviceINI.ReadString('Gerät', 'Hersteller', 'NO VENDOR');
    Checked := DeviceINI.ReadBool('Gerät', 'Used', False);
    Port := DeviceINI.ReadString('serielle Schnittstelle', 'Port', '---');

    Item := ListView1.Items.Add;
    Item.Caption := Name;
    Item.SubItems.Add(Hersteller);
    Item.SubItems.Add(Port);
    Item.Checked := Checked;

    DeviceINI.Free;
  end;
  ListView1.Items.EndUpdate;
end;
Hier wird gefüllt

Und hier halt die Events:
Delphi-Quellcode:
procedure TGeraetPort_Form.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
{
    with Sender.Canvas.Font do
      Style := Style + [fsBold];
}

end;

procedure TGeraetPort_Form.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
{
    with Sender.Canvas.Font do
      Style := Style - [fsBold];
}

end;
Derzeit auskommentiert ...
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
marabu

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

Re: ListView - Erste Spalte in Fett ?

  Alt 27. Aug 2007, 16:33
Dein Code ist nicht in sich abgeschlossen, also hänge ich dir mal mein Test-Projekt an.

Ruf an, sobald du es so verbogen hast, dass die zweite Spalte fett erscheint.
Angehängte Dateien
Dateityp: zip lvcstdrw_147.zip (1,8 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: ListView - Erste Spalte in Fett ?

  Alt 28. Aug 2007, 06:29
Moin !

Hmm, das ist interessant.
Dein Projekt tut bei mir auch nicht ....

Kann es sein das unter D2007 die Sache etwas anders muss ?
Miniaturansicht angehängter Grafiken
spaltefett_2_976.png  
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: ListView - Erste Spalte in Fett ?

  Alt 28. Aug 2007, 07:03
jo, ich hab auch D2007 und beide Spalten werden fett dargestellt.
mir fehlt aber grad die zeit mir das mal genauer anzuschauen^^

edit: schreibfehler
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#9

Re: ListView - Erste Spalte in Fett ?

  Alt 28. Aug 2007, 16:24
Moin !

Problem gelöst
Wenn der Berg nicht zu mir will muss ich zum Berg oder wie war das noch

Also, man setze den Font der ListBox auf Bold ...
Und dann nur das hier:
Delphi-Quellcode:
procedure TDemoForm.ListViewCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  with Sender.Canvas.Font do
    Style := Style - [fsBold];
end;
Fertsch

Keep on
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  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:54 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