CREER UNE DLL AVEC DES FORMS + APPEL DE CES FORMS DANS 1 PROG.
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005
-
14 juin 2004 à 16:40
cs_potiok
Messages postés2Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention 2 janvier 2007
-
18 juil. 2004 à 10:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_potiok
Messages postés2Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention 2 janvier 2007 18 juil. 2004 à 10:15
J'ai développé plusieurs applications basées sur le principe de TForm dans des DLL.
Elles ont toutes le TXPManifest. Je n'ai jamais eu d'erreur.
En fait, il manque quelque chose dans ta DLL.
En effet, tu dois lui passer au moins le handle de la fiche/application appelante.
function Montrer_couleurs(AppHdl : THandle; var Couleur: ShortString) : boolean; stdcall;
var
oldAppHdl : Hwnd;
begin
OldAppHdl := Application.Handle;
Application.Handle := AppHdl;
Application.CreateForm(TForm1, Form1);
RESULT :form1.ShowModal mrOk; // La montrer ...
If RESULT // Click sur le bouton Ok ?
Then Couleur := form1.ListBox1.Items[form1.ListBox1.ItemIndex]; // Retourner la couleur ...
form1.Release; // Detruire la form ...
Application.Handle := OldAppHdl;
end;
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 15 juin 2004 à 10:18
Personne n' a essayé la dll avec le composant XPMan dans l' executable?
Il serait interessant de constater qu' en fermant l' executable après avoir ouvert la form dans la dll, il se produit une erreur ...
Je pense que c' est un bug (qui me pourrit la vie).
Si quelqu' un sait pourquoi ...
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 15 juin 2004 à 00:35
ok thanks !
j'ai essayé ca marche c cool, on peut aussi retirer ou ajouter des composants dans Uses, c bien ca (moi j'passe de VB a Delphi) donc j'fais un peu les comparaisons, mais c sympa par exemle de coder de dll en delphi et de les utiliser en VB car certaiens choses sont difficiles et lente a faire en VB et delphi propose des fonctions deja tt faites.
mais Delphi est hyper intuitif quand tu connais VB.
aller @+ et merci.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 14 juin 2004 à 18:14
Alors c très facile:
tu fais nouveau projet de type dll ...
MAIS, tu ne crées pas de Tform pour ta dll.
Le reste fonctionne comme dans mon exemple,
il faut juste que tu enleves le code de creation et de destruction de la form !!!
Dans ton programme tu déclare la fonction de la dll comme dans mon exemple.
Ex, tu peux créer une fonction qui fait l' addition de 2 nombres:
function FAIT_ADDITION(param1, param2: integer): Integer; stdcall;
begin
RESULT := param1 + param2;
end;
C tout simple : )
A+
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 14 juin 2004 à 16:40
sais tu comment faire un DLL sans form ?
j'crois avoir trouvé l'option, mais une fois dedans j'pige aps comment coder, ou déclare rles var etc....
18 juil. 2004 à 10:15
Elles ont toutes le TXPManifest. Je n'ai jamais eu d'erreur.
En fait, il manque quelque chose dans ta DLL.
En effet, tu dois lui passer au moins le handle de la fiche/application appelante.
function Montrer_couleurs(AppHdl : THandle; var Couleur: ShortString) : boolean; stdcall;
var
oldAppHdl : Hwnd;
begin
OldAppHdl := Application.Handle;
Application.Handle := AppHdl;
Application.CreateForm(TForm1, Form1);
RESULT :form1.ShowModal mrOk; // La montrer ...
If RESULT // Click sur le bouton Ok ?
Then Couleur := form1.ListBox1.Items[form1.ListBox1.ItemIndex]; // Retourner la couleur ...
form1.Release; // Detruire la form ...
Application.Handle := OldAppHdl;
end;
15 juin 2004 à 10:18
Il serait interessant de constater qu' en fermant l' executable après avoir ouvert la form dans la dll, il se produit une erreur ...
Je pense que c' est un bug (qui me pourrit la vie).
Si quelqu' un sait pourquoi ...
15 juin 2004 à 00:35
j'ai essayé ca marche c cool, on peut aussi retirer ou ajouter des composants dans Uses, c bien ca (moi j'passe de VB a Delphi) donc j'fais un peu les comparaisons, mais c sympa par exemle de coder de dll en delphi et de les utiliser en VB car certaiens choses sont difficiles et lente a faire en VB et delphi propose des fonctions deja tt faites.
mais Delphi est hyper intuitif quand tu connais VB.
aller @+ et merci.
14 juin 2004 à 18:14
tu fais nouveau projet de type dll ...
MAIS, tu ne crées pas de Tform pour ta dll.
Le reste fonctionne comme dans mon exemple,
il faut juste que tu enleves le code de creation et de destruction de la form !!!
Dans ton programme tu déclare la fonction de la dll comme dans mon exemple.
Ex, tu peux créer une fonction qui fait l' addition de 2 nombres:
function FAIT_ADDITION(param1, param2: integer): Integer; stdcall;
begin
RESULT := param1 + param2;
end;
C tout simple : )
A+
14 juin 2004 à 16:40
j'crois avoir trouvé l'option, mais une fois dedans j'pige aps comment coder, ou déclare rles var etc....