Einzelnen Beitrag anzeigen

Johnny Bravo

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

Re: Programmsymbol aus ListBox in TImage laden?

  Alt 16. Jun 2008, 19: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