Ajouter un control sur une autre fenêtre

ZeWaren Messages postés 24 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 22 février 2005 - 22 févr. 2005 à 13:44
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 23 févr. 2005 à 00:11
Bonjour.
Voici mon problème.
J'ai créer un button grace a CreateWindow, mais sur une fenetre d'une autre application.
Et je voudrai savoir comment lui assigner une fonction (un onclick quoi).
En réalité le veux qu'il ouvre un popup menu (un peu comme le menu demarrer).

Merci de votre aide.

3 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
22 févr. 2005 à 20:53
Le fait d'utiliser Createwindow, tu ne peux plus utiliser les propriétés et méthodes des objets Delphi.

Un exemple simple avec 2 fiches réalisés en moins de 3 min.

dans la première fiche :

interface

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


var
Form1: TForm1;


implementation


{$R *.dfm}


uses Unit2 ; // unité de la seconde fiche



procedure TForm1.FormShow(Sender: TObject);
begin
Form2.Show ;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
b : tbutton ;
begin
b : = tbutton.Create( Form2 ) ;
if (b<>NIL) then
begin
b.Parent := Form2 ;
b.Left := 100 ;
b.Top := 100 ;
b.caption := 'button2' ;
b.OnClick := Form2.OnClick ;
end ;


end;

dans la seconde fiche :

interface

type
TForm2 = class(TForm)
private
{ Déclarations privées }
public
{ Déclarations publiques }
procedure OnClick ( sender : tobject ) ;
end;


var
Form2: TForm2;


implementation


{$R *.dfm}


{ TForm2 }


procedure TForm2.OnClick(sender: tobject);
begin
Messagedlg('OnClick OK',mtInformation,[mbYes],0);
// code de création et/ou d'ouverture du popup menu ici
end;

Dans ton cas, si tu utilise CreateWindow, il va falloir écrire une procédure WindowProc pour intercepter et gérer les messages associés à ton bouton; bref retour aux fonctions windows.

Cordialement.
0
ZeWaren Messages postés 24 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 22 février 2005
22 févr. 2005 à 22:31
Le bouton à déja été créé grace aux API windows, avec un truc du
style createwindow('BUTTON', .....
Mon probleme est justement de créer une windowproc pour ce bouton.
Mais comme il est situé dans une autre application, je ne voit pas comment faire.

Je me vois pas mal utiliser un TForm2.OnClick sur une form d'une autre application, qui ci ça se trouve n'est même pas faite en delphi!
0
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
23 févr. 2005 à 00:11
cherche dans les hook d'application, tu doit pouvoir hooker le button
en question, et triater le message WM_CLICK, mais je suis pas très calé
la dessus.
0
Rejoignez-nous