[DLL] Afficher le contenu d'une dll dans un Tpanel
Salut,
Voila mon souci, auquel je n'est aucune idée pour le résoudre.
Mon prog utilisera des dll
Dans ces dll il y aura une fenêtre principale ou l'utilisateur fera ce qu'il doit faire.
Or quand j'appel la dll, j'aimerai que le contenu s'affiche non pas dans une nouvelle fenêtre, mais dans une zone prévu a cet effet dans le programme principale,...
Et je n'est réellement aucun idée comment faire.
Ma seule intuition est d'utiliser un TFrame.
Merci
@+
Fabs
utilise une procédure de classe sur un TWinControl
Citation:
Envoyé par antp
Et ça plante pas ?
Le Handle à passer c'est celui de la form parent ?
Il me dit qu'il est invalide :/
dans la section public de ta classe TForm tu place une fonction procédure de classe comme suit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
TMyForm = class(TForm)
private
............
public
............
class function Execute(const MyParent: TWinControl): Boolean;
end;
implementation
class function TMyForm.Execute(const MyParent: TWinControl): Boolean;
var MyForm: TMyform;
begin
Application.createForm(TMyForm, MyForm);
with MyForm do
try
Parent:= MyParent;
Result:= ShowModal = mrOk;
finally
FreeAndNil(MyForm);
end;
end;
ensuite ta fonction d'export
function ShowMyFormInMyParent(const MyParent: TMyParent): Boolean; export;
begin
Result:= TMyForm.Execute(MyParent);
end; |
( regarde sur les sites (google) comment on export des fonctions dans une dll si tu sais pas comment ;-) )
et dans ton programme
Code:
ok:= MaDLL_ShowMyFormInMyParent(MonPanel); // par exemple
si t'as besoin d'explications, n'hésites pas
ShowMyFormIn