AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Programmsymbole in Imagelist einfügen?
Thema durchsuchen
Ansicht
Themen-Optionen

Programmsymbole in Imagelist einfügen?

Ein Thema von Johnny Bravo · begonnen am 5. Jul 2008 · letzter Beitrag vom 5. Jul 2008
Antwort Antwort
Johnny Bravo

Registriert seit: 7. Jun 2008
75 Beiträge
 
#1

Programmsymbole in Imagelist einfügen?

  Alt 5. Jul 2008, 13:29
Hi, hab gerade schwierigkeiten, einer Imagelist mehrere Icons einzufügen. Die Icons werden aus einer datei geladen, die dann in eine Listbox geschrieben wird.
Das Icon wird korrekt angezeigt wenn ich eine Datei lade.
Doch wie kann ich den Eintrag in der Listbox mit einem Icon verbinden, sodas ich mit einem klick auf den Eintrag das entsprechende Icon angezeigt bekomme?

Hier mal der komplette aufruf:

Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
 var
   DisplayName:string;
    i:integer;
    h : hIcon;
    S : String;
    Icon : TIcon;
    lIndex: Integer;
    OpenDialog: TOpenDialog;

   begin
       OpenDialog := TOpenDialog.Create(self);
       OpenDialog.InitialDir := ExtractFilePath(ParamStr(0));
       OpenDialog.Options := [ofFileMustExist];
       OpenDialog.Filter := 'Anwendungen|*.exe';
       OpenDialog.FilterIndex := 0;
       OpenDialog := TOpenDialog.Create(self);

  if OpenDialog.Execute then

  for i:=0 to OpenDialog.Files.Count -1 do

    begin
        lIndex := Length(MeinArray);
        SetLength(MeinArray, lIndex + 1);
        MeinArray[lIndex].RealFileName := OpenDialog.FileName;
        MeinArray[lIndex].DisplayName := DisplayName;
        ListBox1.MultiSelect := False;
        ListBox1.Sorted := True;

    begin
        DisplayName := ExtractFileName(OpenDialog.Files[i]);

  if (InputQuery('Programmname','Bitte geben sie ein neuen Namen ein:',DisplayName)) then

     try
         Listbox1.Items.AddObject(DisplayName,TObject(Opendialog.Files[i]));
         ImageList1.GetIcon(0, Icon);
         Image1.Canvas.Draw(0, 0, Icon);
         Icon := TIcon.Create;
         ImageList1.AddIcon (Icon);
         S := OpenDialog.FileName;
         h := IconFromFile(OpenDialog.FileName,0);
         Label2.Caption := ListBox1.Items.Text;
         Label9.Caption := GetFileVersion(s);
      with
          Image1.Canvas Do
          DrawIconEx(Handle, 0, 0,h, 32, 32, 0, Brush.Handle, di_Normal);
      begin
          Label3.Caption := S;
          FreeAndNil(Icon);
          Image1.Refresh;

       end;
    finally
         openDialog.Free;
      end;
    end;
  end;
end;
wäre toll wenn ihr mir helfen könntet.

Mfg Chris
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#2

Re: Programmsymbole in Imagelist einfügen?

  Alt 5. Jul 2008, 14:10
ich glaube nicht, dass du einen string einfach so nach TObject casten kann, und der danach noch verfügbar ist.erstelle doch beim einlesen pro item ein TIcon-Object und laden das icon dort hinein (Loadicon). dieses kannst du dann anhängen und im OnDrawCell entsprechend zeichnen (ggf. state prüfen).
wenn du mehr infos (wie den Dateinamen) brauchst, wirst du dir eine eigene Klasse basteln müssen (welche ggf. auch gleich ein TIcon enthält).

HTH Frank
  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 02:44 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