DLL et Creation Dynamique

meandcat Messages postés 5 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 8 juillet 2005 - 30 juin 2005 à 02:42
meandcat Messages postés 5 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 8 juillet 2005 - 8 juil. 2005 à 17:39
Hi,
J'ai une fiche principale (FORM1) et j'aimerai via une DLL y rajouter dynamiquement un bouton qui appelera une procedure perso a la DLL.

// Programme principale //
procedure Affichebouton(Sender : TObject); external 'plugin.dll';

var
Form1 : TForm;

procedure Button1.Onclick(Sender : TObject);
begin
AfficheBouton(Form1);
end;

// Dll //

procedure AfficheBouton(Form:TForm);
var
Lance : TButton;
begin
Lance = TButton.Create(Form);
with Lance do
begin
Parent := Form;
Left := 80;
Top := 41;
Height := 25;
width := 75;
caption := '&Lire';
end;
end;

Cette procedure affiche l'erreur Tfont non assignable a TFont ???
Ou est mon erreur ? y a t'il plus simple ?
De plus je ne sais pas comment assigner la propriete OnClick depuis la DLL...

En vous remerciant,

meandcat

2 réponses

cs_neko Messages postés 135 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 octobre 2006 1
5 juil. 2005 à 09:49
J'avou que je vois pas bien pourquoi le Parent:=Form ne marche pas...
Mais je sais comment passer outre

procedure AfficheBouton(Form:TForm); stdcall;
var
Lance : TButton;
begin
Lance := TButton.Create(Form);
With Lance Do Begin
ParentWindow := Form.Handle;
Left := 80;
Top := 41;
Height := 25;
width := 75;
caption := '&Lire';
OnClick:=OnClick;
End;
end;

bouh
0
meandcat Messages postés 5 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 8 juillet 2005
8 juil. 2005 à 17:39
Bien, merci, déja un point de résolu....
Me reste a comprendre pourquoi le OnClick en question n'appelle pas celui creé dans la DLL.
vu que pour le programme principale la procedure ne sera pas connu, comment la declarer dynamiquement dans le programme principal ou utiliser un Pointer sur la procedure event a utiliser.

Merci encore a Neko pour son aide.

(si quelqu'un a un meilleur procedure je la prend)

merci

meandcat
0
Rejoignez-nous