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 ...