Also ich schreibe mir ein Programm in der Art von Steam, von dem aus ich Alle meine spiele starten kann, server suchen und starten und diverse Einstellungen machen kann.
Bis jetzt sucht dass Programm nur nach meinen installierten Valve Spiele. (siehe Screenshot)
Hier ist noch die Prozedur, die mir meine Icons auswählt!
Delphi-Quellcode:
{*****************************************************************************
Funktion, die meinem Listeneinträgen die richtigen Icons zuordnet
******************************************************************************}
procedure TForm3.checkIcon(var Icon:TIcon; var Icon1:TIcon; Control: TWinControl; Index: Integer);
begin
Icon:= Ticon.Create ;
with (Control as TListbox) do
begin
If Items[Index] = 'Half-Life' then begin
Icon.Handle := ExtractIcon(Hinstance, 'EightIc.dll', 8);
Icon1.Handle := ExtractIcon(Hinstance, 'EightIc.dll', 34);
end;
If Items[Index] = 'Counter-Strike 1.6' then begin
Icon.Handle := ExtractIcon(Hinstance, 'EightIc.dll', 2);
Icon1.Handle := ExtractIcon(Hinstance, 'EightIc.dll', 27);
end;
end;
In meine Settings kommt dann eine Auswahl, welche Icons benutzt werden sollen. deswegen hier die zwei Icons.
Und die Prozedur habe ich geschrieben, weil ich in allen Vier Listen (Games, Settings,.....) die Icons brauch!!
Und jetzt ist es eben so, dass manchmal, wenn sich mein Popupmenu schließt, die hälfte des Intrages in der Liste weg ist. oder nur das Icon weg ist.
Wenn ich wie oben, das Repaint mit in mein Mousedown ereignis einbinde ist das zwar nicht mehr der fall, aber jedesmal, wenn ich einen Eintrag anklicke "blitzt" die liste kurz.