Announcement

Collapse
No announcement yet.

Icon der Hauptanwendung an DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Icon der Hauptanwendung an DLL

    Hallo,

    wie kann man erreichen, dass das Icon der Hauptanwendung auch bei Formularen erscheint, die in DLL's vorhanden sind und von der Hauptanwendung aufgerufen werden?

    Vielen Dank für jede Hilfe

    MfG

    Marco.

  • #2
    Hallo,

    das folgende Beispiel demonstriert die Herangehensweise. Zuerst wird über die API-Funktion <b>ExtractIcon</b> das Standard-Icon der Anwendung geladen, um es dann über einen WM_SETICON-Aufruf an das Fenster (Formular) der DLL zu schicken:
    <pre>
    unit DLLFormIconFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

    type
    TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    private
    { Private-Deklarationen }
    FIcon : HICON;
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    procedure ShowDllForm; stdcall;

    implementation

    {$R *.DFM}

    uses ShellAPI;

    procedure ShowDllForm;
    begin
    with TForm1.Create(nil) do
    begin
    ShowModal;
    Release;
    end;
    end;

    { TForm1 }

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    FIcon := ExtractIcon(hInstance, PChar(Application.ExeName), 0);;
    SendMessage(Handle, WM_SETICON, ICON_SMALL, FIcon)
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    DestroyIcon(FIcon);
    end;

    end.
    </pre&gt

    Comment

    Working...
    X