Page 2 of 2 FirstFirst 1 2
Results 16 to 20 of 20

Thread: Icoon in melding via DLL

  1. #16
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Maar die FixMessagebox haalt het icon toch ook uit een resource lijkt me? En dat resource heeft dan als ik het goed begrijp de naam MAINICON? Volgens mij was dat ook waar Chinchi ook nog naar op zoek is..

    En wat ik niet snap is waarom die FisMessagebox de door de applicatie meegegeven Handle niet neemt..
    !

  2. #17
    Senior Member Thaddy's Avatar
    Join Date
    Dec 2004
    Location
    Amsterdam
    Posts
    2,180
    Overigens, heb je al hinstance gebruikt ipv application.handle?

  3. #18
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    En als het allemaal echt niet wil, dan zou je natuurlijk kunnen kijken of je de code van FisMessagebox zo kunt aanpassen dat je optioneel een (h)icon kunt meegeven
    !

  4. #19
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    FisMessageBox krijgt dus een window handle mee en haalt daar z'n icoon blijkbaar uit... en wat heeft een window als eigenschap? Juist, een icoon... en dat is precies waar Application.Icon terecht komt; in de semi-onzichtbare (alleen zichtbaar op de taakbalk normaal gesproken) window Application.Handle...

    Je DLL heeft z'n eigen instantie van Application, en dus ook een eigen window. Standaard heeft deze waarschijnlijk geen icoon omdat je DLL geen MAINICON resource heeft. Ik weet niet of deze resource toevoegen voldoende is, maar wat ook vrij vaak voorkomt is dat je de DLL de Application.Handle van de applicatie geeft (dit doe je blijkbaar al), en vervolgens deze handle toekent aan z'n eigen Application object... zoiets als:

    Code:
    procedure DLLFunctie(const AAppHandle: THandle);
    begin
      Application.Handle := AAppHandle;
      FisMessageBox(etc);
    end;

    ...volgens mij is het daarbij wel handig om de Application.Handle van de DLL op te slaan en deze achteraf weer netjes terug te zetten, anders heb je kans dat de DLL de Application.Handle van de applicatie wil gaan vrijgeven.

    Uiteraard, als FisMessageBox die handle meekrijgt kan je net zo goed AAppHandle direct aan FisMessageBox meegeven; handle van de applicatie betekent icoon van de applicatie...

    Wil je een aparte icoon voor je DLL dan zal Application.Icon.LoadFrom* ongetwijfeld ook helpen. Je hebt hierbij in principe weinig te maken met HICON's doorgeven of MemoryStreams, of FisMessageBox moet wel hele rare sprongen maken
    Qui custodiet ipsos custodes

  5. #20
    Registered User Chinchie's Avatar
    Join Date
    Mar 2004
    Location
    Genk,Belgium
    Posts
    19
    Ik heb het op de volgende manier opgelost. Bij het laden van de exe gaat deze de DLL opladen bij het eerste gebruik. In de initialisatie van de DLL word het icoon 1x opgelezen in de DLL met LoadFromFile, daarna is het niet meer nodig. Zo kan FisMessageBox het juiste icoon tonen.

    Bedankt voor al jullie reacties

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. DLL vrijgeven vanuit een DLL
    By Pray in forum Algemeen
    Replies: 6
    Last Post: 20-Nov-04, 12:25
  2. Replies: 9
    Last Post: 11-Oct-04, 16:05
  3. Replies: 11
    Last Post: 15-Jan-04, 15:54
  4. Replies: 16
    Last Post: 08-Jan-04, 09:35
  5. Database benaderen in DLL
    By Frodo in forum Databases
    Replies: 20
    Last Post: 19-Dec-02, 21:33

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •