HANDLE

jbanety Messages postés 30 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 30 juin 2011 - 23 déc. 2003 à 15:53
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008 - 23 déc. 2003 à 21:44
Salut, j'ai beaucoup cherché moi même je n'y arrive pas, ce que je voudrais faire c'est inscrire du texte dans un memo d'une fenêtre qui ne fait pas parti de mon programme :)

Alors si vous savez comment faire, laissez moi un message

Merci d'avance

+-+-+-+-+-+-+
IAM IS BACK
+-+-+-+-+-+-+

2 réponses

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
23 déc. 2003 à 21:41
il faut au départ que les 2 application soit bâtient pour se comprendre question code

1-l'application qui envoi le message

unit unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls,Forms,Dialogs,StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
UserMessage: UINT;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
UserMessage := RegisterWindowMessage(
'System Wide User Defined Message');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ReturnValue: LRESULT; //le resultat de SendMessage
begin
ReturnValue := SendMessage(FindWindow('TForm1','captiondelaFenetre'),UserMessage, x, y);
{
ici on doit se bâtir un code de commande
- x :Integer commande à envoyer au memo
1-memo.clear;
2-memo.add(char(y))
3-memo.append('') donc simple ajout de ligne

- y :le caractère à écrire (on devra nécessairement envoyer plusieur message ou avoir dans l'application receveur une banque de strings que l'on fera afficher .
}
end;
end.

2-l'application qui reçoi le message
unit unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs,StdCtrls, ExtCtrls;
var
UserMessage: UINT;

type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
procedure DefaultHandler(var Msg); override;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DefaultHandler(var Msg);
begin
inherited DefaultHandler(Msg);
if (TMessage(Msg).Msg=UserMessage) then
begin
case(TMessage(Msg).WParam)of
1:begin
memo1.Clear;
ReplyMessage(1);
end;
2:begin
memo1.Lines.Add(char(TMessage(Msg).LParam));
ReplyMessage(2);
end;
3:begin
memo1.Lines.Append('');
ReplyMessage(3);
end;
4:;
5:;
end;
Timer1.Enabled := TRUE;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
UserMessage := RegisterWindowMessage(
'System Wide User Defined Message');
Form1.caption:='captiondelaFenetre';
//doit correspondre avec l'envoyeur
end;

procedure TForm1.Timer1Timer(Sender: TObject);// 1 seconde
begin
Timer1.Enabled := FALSE;
end;

end.

sinon je sais vraiment pas !!!
bonne chance ;)
yve
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
23 déc. 2003 à 21:44
oups!!! le timer est inutile dsl...
yve
0
Rejoignez-nous