Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Ecrire sur un canvas Panoramic dans une DLL Jeu 28 Juin 2012 - 23:24 | |
| C'est une question à Jack: J'essaie d'interagir avec le canvas d'un objet PICTURE, à partir d'une dll. Pour cela, je passe le handle_canvas en paramètre, via une variable integer. Dans ma DLL, je fais ceci: - Code:
-
function test(DC:THandle):integer; stdcall; export; var canvas: TCanvas; TheRect: TRect; begin canvas := TCanvas.Create; Canvas.Handle:=DC; canvas.Rectangle(100,100,400,300); TheRect := Rect(10,10,100,100); Canvas.TextRect(TheRect,10,10,'Bonjour !'); canvas.Free; result := 0; end;
Et dans mon programme Panoramic, j'appelle comme ceci: - Code:
-
dim i% picture 1 : top 1,100 : left 1,100 : width 1,600 : height 1,400 dll_on "MaDLL.dll" i% = handle_canvas(1) i% = dll_call1("test",i%) message "Taper RETURN" dll_off end
Or, rien ne s'affiche. Mais si je fais - Code:
-
dim i% picture 1 : top 1,100 : left 1,100 : width 1,600 : height 1,400 dll_on "MaDLL.dll" i% = handle_canvas(0) i% = dll_call1("test",i%) message "Taper RETURN" dll_off end
cela s'affiche bien sur le canvas de la form 0. Il n'y a pas de message d'erreur. Qu'est-ce que j'ai manqué ? | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 28 Juin 2012 - 23:58 | |
| Salut....je me lance, Handle_canvas(0) renvoi le handle de la zone graphique N donc du form 0 si tu mets 1 et qu'il n'y a pas d'objet 1 ....error | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL Ven 29 Juin 2012 - 0:07 | |
| Ben non. Regarde la ligne 2 de mon code Panoramic: je définis le PICTURE 1, qui a un canvas, et handle_canvas est explicitement autorisé sur un picture. | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 29 Juin 2012 - 0:16 | |
| Peut être une erreur dans la doc de Panoramic car je ne vois pas picture dans celle de handle() | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL Ven 29 Juin 2012 - 0:20 | |
| Pas pour HANDLE - d'accord. Mais moi, je parle de HANDLE_CANVAS qui est une commande Panoramic différente, et là, on parle de PICTURE. | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL Ven 29 Juin 2012 - 0:25 | |
| Je ne connais pas grand-chose à Handle_canvas ni handle(), mais d’après l’aide de Panoramic : manuel de référence, il est indiqué que Handle(N) ne s’applique pas à Picture
Si ça peut t’aider…. | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL Ven 29 Juin 2012 - 0:31 | |
| Comme je l'ai dit à Ygeronimi, je n'utilise pas HANDLE qui effectivement ne s'applique pas à un PICTURE. J'utilise HANDLE_CANVAS, une commande Panoramic différente, dont l'aide est juste en-dessous de celle de HANDLE, et on peut y lire que HANDLE_CANVAS s'applique pour des objets COMBO, ALPHA, FORM, LIST, PICTURE.
Et de fait, sur FORM, ça marche bien, mais PAS sur PICTURE. | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL Ven 29 Juin 2012 - 1:04 | |
| Ok Klaus. Je vois un tout petit peu mieux maintenant, avec ceci - Code:
-
list 1 : picture 2 : combo 3 : alpha 4
message "HANDLE_CANVAS FORM" + chr$(10)+ chr$(10) + str$(handle_canvas(0)) message "HANDLE_CANVAS LIST" + chr$(10)+ chr$(10) + str$(handle_canvas(1)) message "HANDLE_CANVAS PICTURE" + chr$(10)+ chr$(10 )+ str$(handle_canvas(2)) message "HANDLE_CANVAS COMBO" + chr$(10)+ chr$(10)+ str$(handle_canvas(3)) message "HANDLE_CANVAS ALPHA" + chr$(10)+ chr$(10)+ str$(handle_canvas(4))
message "HANDLE FORM" + chr$(10)+ chr$(10) + str$(handle(0)) message "HANDLE LIST" + chr$(10)+ chr$(10) + str$(handle(1)) ' message "HANDLE PICTURE" + chr$(10)+ chr$(10) +str$(handle(2)) : ' erreur message "HANDLE COMBO" + chr$(10)+ chr$(10) +str$(handle(3)) ' message "HANDLE ALPHA" + chr$(10) + chr$(10) +str$(handle(4)) : ' erreur
A+ | |
|
Contenu sponsorisé
| Sujet: Re: Ecrire sur un canvas Panoramic dans une DLL | |
| |
|