Avatar billede michaelras Nybegynder
07. maj 2000 - 23:30 Der er 4 kommentarer og
3 løsninger

Form i DLL'er

Sidder og kæmper med et lille/stort problem som hindre mig i at komme videre i mit program:

Hvordan kan man have en Form i en DLL som jeg så kan sætte parent til at være en TPanel i hovedprogrammet uden at det giver fejl?

Altså noget a la (i DLL'en):
var Form : TMinForm;
procedure InitDll(var Panel : TPanel);
begin
    Form := TMinForm.Create(Panel);
    Form.Parent := Panel;
    osv. osv.


InitDll er defineret med export og stdcall

I hoved programmet kaldes den så:
InitDll(Panel1);

hvor Panel1 er en TPanel på hovedprogrammets form

Det skal også virke sådan at andre komponenter på formen i DLL virker med deres respektive events.

Har siddet og stirret mig blind på det... er efterhånden på kanten til at droppe det...

Vil også være glad for lidt nytænkning/inspiration som evt. hjælper til løsning af problemet, eller dokumentation for at det ikke kan lade sig gøre, så jeg må finde på en anden måde at løse det på

Michael
Avatar billede justincase Nybegynder
08. maj 2000 - 00:27 #1
Jeg skal blankt erkende at jeg ikke er nogen haj til dll'er.
Så jeg vil nøjes med at komme med et forslag.

http://www.uil.net/ finder du et gratis Plugin system, med source. Det kan være at du kan læse noget ud af det.

Jeg bruger selv UIL til de få plugin ting jeg har lavet, og har endnu ikke fundet nogen større bug i det. Det virker til hvad jeg vil ha' det til.
På den anden side har jeg heller aldrig stresset det.

Håber du kan få noget inspiration derfra.

:)

JustinCase
Avatar billede cybermike Nybegynder
08. maj 2000 - 08:36 #2
Du laver et projekt hvor du laver din formular med de ting der nu skal være, så laver du projekt filen til en unit fil og eksporterer hoved proceduren.


Tror jeg nok!
Ang, det med at sætte et TPanel til parent, så kan jeg anbefale dig at skaffe kildekoden til en pauseskærm, den laver et lille vindue i "Egenskaber for skærm" fanebladet "Pauseskærm", det eksempel du ser på pause skærmen, er en formular som kommer fra en anden applikation (*.SCR filer er bare exe filer med en anden endelse!)


Mike
Avatar billede blackthorne Nybegynder
08. maj 2000 - 09:25 #3
Har du sat sharemem ind i project source koden som den første unit du bruger?
Avatar billede cybermike Nybegynder
10. maj 2000 - 08:33 #4
blackthorne>Det er rigtigt nok, den havde jeg svedt ud. Men Sharemem, skal bruges hvis du operer med strenge over 255 tegn(standard i delphi).
Avatar billede jchris10 Nybegynder
11. maj 2000 - 09:31 #5
hvis man benytter "PChar" kan man spare sharemem.

/Jan
Avatar billede jchris10 Nybegynder
12. maj 2000 - 08:36 #6
Jeg har et lille eksempel jeg har fundet på nettet som jeg kan sende til dig, hvis jeg kan få din e-mail adresse. Eksemplet omhandler noget med at oprette MDI-child forms fra en dll.

/Jan
Avatar billede michaelras Nybegynder
14. maj 2000 - 13:49 #7
jchris: det eksempel har jeg også fundet, men der var ikke noget deri jeg kunne bruge.

ShareMem har jeg kørt med hele tiden, bare for en god ordens skyld, da jeg ikke ved om det ville være nødvendigt når metode-kald skulle kaldes mellem Program og DLL

Jeg har egentlig også fundet ud af hvordan det skal gøres ved at søge resten af nettet igennem temlig kraftigt, bl.a. hjælper det hvis man sætter DLL'ens Application object til det samme som Hovedprogrammets + jeg havde en bug andetsteds i koden som også havde noget at sige, da det var i Formen OnCreate.

Så jeg vil lukke spørgsmålet...

Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester