11. januar 2005 - 20:49Der er
16 kommentarer og 1 løsning
Forme i DLL filer - Rødvin udloves for svar
Hej,
Jeg har lavet en række DLL-filer der alle indeholder forme... Når jeg starter en DLL-fil op med en form, så ser det ud som om jeg starter endnu et program op i windows ved at der kommer et nyt aktivt program (DLL-filen med formen) nederst i processlinien - hvordan undgår jeg det? - sådan at kun "hovedprogrammet" kan ses som værende aktivt?
Borrisholt svarede at man skulle sætte "Borderstyle" til "bsToolWindow", men det ændrer formens udseende så meget at jeg ikke kan bruge det...
Problemet er pt. så stort at der udloves 2 flasker god rødvin til nogle der kommer med et fyldestgørende svar! - se dog helst ovenstående spørgsmål (http://www.eksperten.dk/spm/545192) før I svarer...
Flere kommuner går nu i gang med at bruge AI-understøttet dokumentation. Målet er, at sagsbehandlere skal bruge mindre tid på referater og registrering – og mere tid på nærvær i mødet med borgeren.
Man kan da heller ikke vende ryggen til jeg 3 minutter uden i laver ulykker !!!!
Godt nok er jeg officielt stoppet men jeg kiggede lige lidt for sjov, og så dit spørgsmål. Nu har jeg løsningen (ental bestemt form). Send mig lige en mail på Jens@Borrisholt.com så retunerer jeg projektet!
Håber rødvinen ER god, for så vil jeg se frem til den. Pointsene kan du give til en der trænger ....
- og jeg har lige kigget på det... skal lige hjem og sidde og nørkle med det, så giver jeg et prej når jeg har fundet ud af det - skal nok ligge en forklaring her ud siden...
hvis alt virker (som det ser ud til her nu) så bestiller jeg rødvinen så den er der lørdag formmidag iflg. din mail...
procedure ShowForm(ParentApplication: TApplication; ParentForm: TForm); stdcall; external 'Project1dll.dll' name 'ShowDllForm'; function ShowFormModal(ParentApplication: TApplication; ParentForm: TForm): integer; stdcall; external 'Project1dll.dll' name 'ShowDllFormModal';
dll-filen hentes ved showmodal via: ShowFormModal(Application, SELF);
dll-filen hentes ved show via: ShowForm(Application, SELF);
bemærk at funktionen/procedure IKKE hedder det samme i DLL filen og exe filen. F.eks. hedder funktionen i exe filen ShowFormModal mens den i dll-filen hedder ShowDllFormModal... lidt specielt...
function ShowDllFormModal(ParentApplication: TApplication; ParentForm: TForm): integer; stdcall; begin Application := ParentApplication; // Jeg har været nødt til at medtage denne linie // for at få det til at virke - det har // borrisholt ikke frmDllForm := TfrmDllForm.Create(ParentForm); Result := frmDllForm.ShowModal; end;
hvor "frmDllForm" er navnet på formen i DLL-filen
tilføj desuden funktionen:
procedure DLLUnloadProc(Reason: Integer); register; begin if Reason = DLL_PROCESS_DETACH then Application := DllApplication; end;
... og tilføj i det nederst begin end. afsnit i dll filen
begin DllApplication := Application; DLLProc := @DLLUnloadProc; end.
Hvis Borrisholt ikke vil have point'ene, så er det vidst mest rimeligt at martinlind får point'ene, hvis altså ikke Borrisholt har vildt og voldsomt mange indvendinger...
- kan jeg ikke lige få et svar fra dig martinlind?
Hvis exe-filen henviser til en dll-fil med en form og denne dll-fil henviser igen til en ny dll-fil med en ny form, så skal ParentApplication og ParentForm være fra den forhenværende forms dll-fil og ikke ParentApplication og ParentForm fra exe-filen...
måske giver det sig selv, men det tog mig lige et par minutter (lavt sat..) at regne det ud...
OKI DET viste jeg ikke. Det ander er blot noget jeg har lavet fordi jeg havde brug for at ligge et MDI Child i en DLL fil. Og så så jeg tilfældigvis dit spm, og så vidste jeg at jeg kendte svaret.
friiiiis>> Tusinde tak for rødvinen !!!! Det er altid rart at kunne hjælpe. Må man spørge hvad du skal bruge det . Jeg er bare rasende nysgerrig, fordi det er sjælden man bliver tilbudt noget af vikrelig værdi for at besvare et spm. (Rødvin, kontanter etc)
lukker spm nu, når martinlind ikke vil have point'ene...
Synes godt om
Ny brugerNybegynder
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.