AGB  ·  Datenschutz  ·  Impressum  







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

Programmsymbol aus ListBox in TImage laden?

Ein Thema von Johnny Bravo · begonnen am 15. Jun 2008 · letzter Beitrag vom 17. Jun 2008
Antwort Antwort
Johnny Bravo

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

Re: Programmsymbol aus ListBox in TImage laden?

  Alt 16. Jun 2008, 18:36
Hi,
leider auch nicht.
wird kompiliert, es gibt aber sobald ich eine Datei in die Listbox Laden will eine Zugriffsverletzung.
Wenn ich auf Ok drücke, wird ein Icon angezeigt, aber leider nur das von der kopmilierten Anwendung...

Wie krieg ich die Fehlermeldung weg, und wieso wird das symbol vom programm selber geladen?

ich bin nicht mehr weit entfernt vom ziel, ein icon wird wenigstens angezeigt

EDIT:
so hab einen Fehler gefunden:
Delphi-Quellcode:
  finally
    FreeAndNil(Icon);
    OpenDialog.Free;
    Form4.Show;
  end;
end;
die Zugriffsverletzung ist nur vorhanden, wenn Form4.Show im Code ist.

Hab das dementsprechend, jetz in Form4 geschrieben:

Delphi-Quellcode:
function IconFromFile(const Filename: String; IconNr: Word): HICON;
var
  buffer: array[0..2*MAX_PATH]of Char;
begin
  StrPCopy(buffer, Filename);
  Result := ExtractAssociatedIcon(HInstance, buffer, IconNr);
end;

procedure TForm4.Button1Click(Sender: TObject);
 var IconIndex : Integer;
    h : hIcon;
    S : String;
    Icon : TIcon;
    Bitmap : TBitmap;
    OpenDialog : TOpenDialog;
 begin
     Icon := TIcon.Create;
     IconIndex := 0;
     S := OpenDialog.FileName;
     h := IconFromFile(OpenDialog.FileName,1);
     Icon.Handle := h;
     Form2.ImageList1.AddIcon (Icon);
 try
    Form2.ImageList1.GetIcon(0, Icon);
    Form2.Image1.Canvas.Draw(0, 0, Icon);

 begin
    Form2.ListBox1.Items.Add (Form4.Edit1.Text); //Fügt die ausgewählte Datei in die Listbox ein
    Form2.Label2.Caption := OpenDialog.FileName;
    Form2.ListBox1.MultiSelect :=False; //Mehrfach Auswahl ist nich möglich
    Form2.ListBox1.Sorted :=True;
    end; //Sortiert die Einträge
  finally
    FreeAndNil(Icon);
    OpenDialog.Free;
end;
end;
jetzt bekomme ich aber kein Icon Angezeigt, der sagt mir jetzt "Bild kann nur geändert werden, wenn es ein Bitmap enthält"
Aber wenn ich das normal auf Form2 anwende, funktionierts halbwegs.

PS:
Der TOpenDialog ist auf Form2.

EDIT:
Ich bekomme anstatt dem Icon einen 16x16 Ordner angezeigt
  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 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz