FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Dll permettant de gérer la souris Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Dll permettant de gérer la souris Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Dll permettant de gérer la souris Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Dll permettant de gérer la souris Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Dll permettant de gérer la souris Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Dll permettant de gérer la souris Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Dll permettant de gérer la souris Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Dll permettant de gérer la souris Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Dll permettant de gérer la souris Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Dll permettant de gérer la souris Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Dll permettant de gérer la souris Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Dll permettant de gérer la souris Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Dll permettant de gérer la souris Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Dll permettant de gérer la souris Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Dll permettant de gérer la souris Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 Dll permettant de gérer la souris

Aller en bas 
5 participants
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 21:20

J'avais fait une DLL permettant de gérer la souris. Je l'avais proposé dans une discussion sur la commande FREE. Suite à une remarque judicieuse de Cosmos70, je propose cette DLL dans un fil de discussion séparé. Donc voilà ce que j'ai fait:

J'ai mis sur mon WebDav un répertoire nommé MouseOperations. Ce répertoire contient 2 fichiers:
- MouseOperations.dll
- Test_MouseOperations.bas

La DLL contient les 7 fonctions suivantes:
Code:
  i%=dll_call2("MousePosition",x%,y%)
    place la souris en position (x%,y%) en coordonnées de la form en pixels
  i%=dll_call2("MouseLeftClick",x%,y%)
    place la souris en position (x%,y%) en coordonnées de la form en pixels
    et provoque un clic gauche
  i%=dll_call2("MouseLeftClick",x%,y%)
    place la souris en position (x%,y%) en coordonnées de la form en pixels
    et provoque un clic droit
  i%=dll_call2("AbsoluteMousePosition",x%,y%)
    place la souris en position (x%,y%) en coordonnées de l'écran en pixels
  i%=dll_call2("AbsoluteMouseLeftClick",x%,y%)
    place la souris en position (x%,y%) en coordonnées de l'écran en pixels
    et provoque un clic gauche
  i%=dll_call2("AbsoluteMouseLeftClick",x%,y%)
    place la souris en position (x%,y%) en coordonnées de l'écran en pixels
    et provoque un clic droit
  i%=dll_call3("MouseWheel",x%,y%,d%)
    place la souris en position (x%,y%) en coordonnées de l'écran en pixels
    et provoque un mouvement de la molette en fonction du paramètre d%.
    Valeur positive: vers le haut  valeur négative: vers le bas

Avec la 3ème (ou la 6ème) fonction, on peut même avoir le menu contextuel des objets Windows...
La 7ème fonction permet de gérer la molette de la souris.

La DLL seule est aussi dans le répertoire DLLs.

Modalités d'accès:
Site: http://www.mydrive.ch/
Identifiant: panoramic@klausgunther
Mot de passe: panoramic123
Dossier: MouseOperations

endroits spécifiques des objets à cliquer

Code:
Windows XP:
' BUTTON:  x%=left(n)  y%=top(n)

' MEMO:une ligne vers le haut: x%=left(n)+width(n)-10  y%=top(n)+15
' MEMO:une page vers le haut:  x%=left(n)+width(n)-10  y%=top(n)+20
' MEMO:une page vers le bas  : x%=left(n)+width(n)-10  y%=top(n)+height(0)-20
' MEMO:une ligne vers le bas : x%=left(n)+width(n)-10  y%=top(n)+height(0)-15
' MEMO:molette:                x%=left(n)+10  y%=top(n)+10

' COMBO:flèche:: x%=left(n)+width(n)-10  y%=top(n)+15

' OPTION:cocher:: x%=left(n)  y%=top(n)

' CHECK:cocher:: x%=left(n)  y%=top(n)


Dernière édition par Klaus le Ven 6 Juil 2012 - 18:05, édité 7 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 21:57

Klaus, si je ne me trompe pas, tu as mis sur le forum 2 fois la même fonction, il manque donc la 3 ème Wink
Sinon merci encore pour cette DLL qui accroit encore les possibilités
Revenir en haut Aller en bas
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 22:15

@ klaus,

habe noch nicht getestet, bin noch auf Dienstreise.

Kannst du eine Funktion für das Mausrad einbauen, mit der ich meine
Clientarea scrollen kann. Über die Sidebar ist scrollen sehr langsam.
Da Jack meine Anfragen nicht mehr berücksichtigt, muss ich leider wieder auf
DLL zurück greifen. Aber las dir Zeit. Gute Arbeit braucht Zeit.

Werde am Wochenend die DLL testen.
Severin


@ Klaus
n'ont pas encore été testé, je suis toujours en voyage d'affaires.

Pouvez-vous adapter en fonction de la roue à laquelle je veux dire Espace client peut faire défiler.
Via la barre latérale est défiler très lentement.
Depuis que Jack n'est plus considéré comme mes recherches, je dois malheureusement encore Dll dessiner.
Mais la lecture de votre temps.
Bon travail prend du temps.
À la fin de semaine permettra de tester la DLL.
Severin
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 22:42

@jicehel:
Très juste ! Problème de recopie. J'ai corrigé dans mon premier post.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 23:07

Bien je vais vous montrer un exemple de ce qu'on peut faire avec la dll.
Il y a quelques mois j'avais demandé si vous connaissiez un moyen d'ouvrir et de fermer la connection réseau par programme. Nardo s'était penché sur ce problème, et n'a pas trouvé pour le résoudre, et surtout je lui ai demandé de laisser tomber. Il n'avait pas à perdre tout son temps pour cela.

Depuis que je me sers d'AutoIt, j'avais trouvé la solution, et depuis un bon moment, Internet est bloqué dès que je quitte.
J'ai fait un programme en AutoIt pour cela, et je viens d'essayer avec Panoramic, et ça marche.

D'abord, il faut connaitre l'endroit où la souris doit cliquer.
J'ai mis dans la barre de tâche rapide, un raccourcis qui se présente ainsi:
Dll permettant de gérer la souris 1156186685
Il faut aussi connaitre la position de la souris pour désactiver, et on a cette image là (sous XP)
Dll permettant de gérer la souris 1156187149

J'ai fait un premier programme très court pour savoir la position. En faite c'est une position approchante, vu que je clique sur la forme 0, mais par déduction, et tatonnement, on y arrive.

Code:
' pour facilité la recherche de la position de la souris
full_space 0
label souris
dim x%,y%
on_click 0,souris
end
souris:
  print "position x=", mouse_x_position(0)
  print "position y=", mouse_y_position(0)

Ensuite j'ai fait le programme suivant, à savoir qu'ayant peu de mémoire, j'ai supprimé Chrome pour mettre QtWeb à la place.

Ensuite, il suffit d'avoir ce programme (ici avec mes correspondance de position)

Code:

' essaye de refaire ce qui est fair en Autoit pour lancer Qtweb
border_hide 0 :full_space  0
dim x%,y% , x1%,y1%  ,dll$ ,ww%,hh% ,x0%,y0% ,i%
label  fin

button 1:caption 1,"off" :on_click 1,fin
width 0,width(1):height 0,height(1)

dll$="E:\COURS_Pano\LISTES\MouseOperations.dll"
ww%=screen_x : hh%=screen_y
dll_on dll$
  x0% = 172
  y0% = 740
  i% = dll_call4("MouseLeftClick",x0%, y0%, ww%, hh%) :' clic qur l'icône pour activer internet
  ' BIEN ENTENDU, C'est désactivé avant
  wait 12000 :' laisser le temps pour activer (pour mon oedi pas rapide, 10 secondes nécessaire)
  execute "F:\QtWeb\QtWeb\QtWeb.exe"
end

fin:
  ' reclique sur l'icône qui fait apparaitre le fenêtre de désactivation
  i% = dll_call4("MouseLeftClick",x0%, y0%, ww%, hh%)
  wait 100
  ' position du bouton désactivé:
  x0%=473
  y0%=539
  i% = dll_call4("MouseLeftClick",x0%, y0%, ww%, hh%)

  wait 5000
  ' on ferme QtWeb
  x0%=ww%-8 :' position de la croix de fermeture du navigateur
  y0%=8
  i% = dll_call4("MouseLeftClick",x0%, y0%, ww%, hh%)
  dll_off
terminate

Avec AutoIt j'ai un avantage suplémentaire: le bouton reste en avant plan, et je peux grace au handle du navigateur, fermer directement le programme avec une instruction spécifique.

Pour les essais, si ça vous tente, décalé l'éditeur Panoramic, pour le cas où le navigateur laisserai en arrière la croix de Panoramic et tenterai de le fermer en cliquant sur le bouton.

Ce qui serait bien, ce serait que la dll qui inclut la mise en avant plan ou arrière plan, soit avec celle-ci.
Revenir en haut Aller en bas
demenvil

demenvil


Nombre de messages : 171
Age : 34
Localisation : France Marseille
Date d'inscription : 30/06/2012

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyJeu 5 Juil 2012 - 23:12

Un super truc ! Merci à klaus ! Et à toi Cosmos pour cet exemple "vivant".
Sa me donne des idées pour mon projet Smile
Revenir en haut Aller en bas
http://www.newsd3v.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 10:46

Nouvelle version:

J'ai simplifié les routines. Mêmes fonctionnalités, mais il n'y a plus que 2 paramètres: les coordonnées x,y pour le positionnement de la souris. Les deux autres paramètres, dans lesquels on devait founir la résolution de l'écran, ont disparues.

Dans mon premier post, la doc est mise à jour, et la DLL et le programme de démo est actualisé sur le WebDav. Essayé-le, déplacéz et redimensionnez la form - ça marche dans tous les cas. Dans le programme de démo, je fais de sorte à repositionner le curseur sur le bouton qui a déclenché l'opération, de sorte qu'on puisse cliquer en série (sauf pour le clic droit dans le memo, bien sûr, sinon le menu contextuel disparaît).

Je suis en train d'élaborer une liste de coordonnées modificatreices (a ajouter aux coordonnées left,top qu'on passe en paramètre) pour viser plus précisément telle ou telle partie d'un objet.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 14:05

Voici un extrait des commentaires dans le programme de démo de cette DLL. On y trouve les adresses de points spécifiques à cliquer dans divers objets Panoramic. Si vous avez besoin d'autres points dans d'autres objets, faites-le-moi savoir, et je les ajouterai à la liste.
Code:
' endroits spécifiques des objets à cliquer

' Windows XP:
' BUTTON:  x%=left(n)  y%=top(n)

' MEMO:une ligne vers le haut: x%=left(n)+width(n)-10  y%=top(n)+15
' MEMO:une page vers le haut:  x%=left(n)+width(n)-10  y%=top(n)+20
' MEMO:une page vers le bas  : x%=left(n)+width(n)-10  y%=top(n)+height(0)-20
' MEMO:une ligne vers le bas  : x%=left(n)+width(n)-10  y%=top(n)+height(0)-15

' COMBO:flèche:: x%=left(n)+width(n)-10  y%=top(n)+15

' OPTION:cocher:: x%=left(n)  y%=top(n)

' CHECK:cocher:: x%=left(n)  y%=top(n)
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 14:33

Nouvelle version:

La doc dans le premier post a été mise à jour, la DLL et le programme de damo dans le WebDav aussi.

Nouveautés:
- le programme de démo permet maintenant de voir l'effet sur un combo, un check et un option
- il y a 3 nouvelles fonctions, similaires à celles déjà existantes, avec le mot "Absolu" devant le nom des fonctions. Alors que les 3 premières fonctions travaillent à l'intérieur de la form active de l'application, les 3 nouvelles fonctions agissent sur la totalité de l'écran, en coordonnées absolues en pixels. On peut donc intervenir en-dehors du programme Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
demenvil

demenvil


Nombre de messages : 171
Age : 34
Localisation : France Marseille
Date d'inscription : 30/06/2012

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 14:35

J'ai une question.
Quand tu parles du menu contextuel de windows.

Avec cette DLL quand on fait un clique droit on a obligatoirement par défaut celui du système ?
Ou alors alors est-ce on peut créé un événement lié à un label ? Et gérer nous même ce menu ?
Revenir en haut Aller en bas
http://www.newsd3v.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 14:57

Pour le moment, Panoramic ne sait pas encore gérer de clic droit comme évènement à prendre en charge.

Donc, un clic droit est intercepté par Windows qui ne peut pas de dispatcher à Panoramic parce que rien n'est prévu pour cela, et exécute donc l'action par défaut, qui est l'affichage du menu contextuel système.

Le menu contextuel du système dépend de la nature de l'objet, et certains objets n'en ont pas, comme CHECK et OPTION.



Je travaille à la génération du double clic qui est pris en compte par Panoramic. En gestation aussi: simulation de la molette...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyVen 6 Juil 2012 - 18:03

Nouvelle version.

Ajout:
Code:
  i%=dll_call3("MouseWheel",x%,y%,d%)
    place la souris en position (x%,y%) en coordonnées de l'écran en pixels
    et provoque un mouvement de la molette en fonction du paramètre d%.
    Vaeur positive: vers le haut  valeur négative: vers le bas

Cette routine permet de simuler des mouvements de la molette. Le programme de démo montre cette fonction dans un mémo. Info technique: pour un mémo, pour que la molette soit prise en compte, il faut que le mémo soit le contrôle actif. Pour forcer cela, il suffit de faire un clic dans le texte du mémo. La routine de la DLL le fait de façon automatique.

INFO: dans le premier post, j'ai ajouté une section qui donne la liste des adresses (x,y) spécifiques pour un certain nombre d'objets. Pour avancer un mémo d'une ligne, par exemple, il est important de cliquer au bon endroit.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
demenvil

demenvil


Nombre de messages : 171
Age : 34
Localisation : France Marseille
Date d'inscription : 30/06/2012

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 7 Juil 2012 - 0:24

C'est fou ce que tu peut nous pondre ^^
Il faut vraiment que je me mette à la conception de DLL Smile
Tu veux pas nous écrire un petit tuto ? ^^

Si faut apprendre un langage pas de problème. Sa me plait bien tous ça !
Revenir en haut Aller en bas
http://www.newsd3v.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 7 Juil 2012 - 0:39

Un cours ? Dans un premier temps, je peux te dire ceci:

J'utilise Delphi 6. Ce langage est mis à disposition gratuitement par Borland, auteur du langage Delphi. Aujourd'hui, les versions commerciales sont bien plus récentes. Il y a 4 ou 5 versions de Delphi qui sont devenues officiellement gratuites, et j'ai choisi Delphi 6 qui me convient parfaitement.

Dans le monde de Delphi, il y a des millions (sans exagération !) de contributions, tutos etc. Et il y a en particulier des tutos très bien faits pour la réalisation de DLLs, à commencer par ce qui est dit dans l'aide intégré de l'IDE de Delphi 6. Là, tu auras de la lecture devant toi ! Ceci dit, j'ai mis quelques jours à prendre en main le langage pour des besoins élémentaires, et j'ai fait ma première DLL dans la foulée.

A titre d'exemple, voici le source de ma DLL LoadProgram.dll:
Code:
library LoadProgram;

uses
  ShellApi,
  Windows,
  Messages,
// pour showmessage Dialogs, Sysutils,
  Classes;

{$R *.res}

function XSetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;  external 'user32.dll' name 'SetParent';

function SetFormParent(child,parent: HWND; flag: integer): integer; stdcall; export;
var
  hnd: HWND;
  dwStyle : LongWord;
begin
  hnd := SetParent(child,parent);

  if flag=1 then begin
    dwStyle := GetWindowLong( child, GWL_STYLE ); //GetWindowStyle( h_Wnd );
    dwStyle := dwStyle and not (WS_SIZEBOX or WS_CAPTION);
    SetWindowLong( child, GWL_STYLE, dwStyle );
  end;

  result := hnd;
end;

function LoadProgramMinimized(xcode:integer; hnd:HWND): integer; stdcall; export;
{
    xcode:    1=Notepad
              2=Calc

}
var
    hnd1, hnd2, hnd3: Hwnd;
begin
    case xcode of
    1:    ShellExecute(0, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ;
    2:    ShellExecute(0, 'open', 'c:\Windows\System32\Calc.exe', nil, nil, SW_SHOWNORMAL) ;
    end;
    hnd1 := hnd;
    repeat
        case xcode of
        1:    hnd2 := FindWindow('Notepad',nil);
        2:    hnd2 := FindWindow('SciCalc','Calculatrice');
        else
            result := 0;
            exit;
        end;
    until hnd2<>0;
    hnd3 := XSetParent(hnd2,hnd1);
    ShowWindow(hnd2,SW_MINIMIZE);
    result := hnd2;        { retourner le handle du process qu'on vient de lancer }
end;

function KillProcessByHandle(hWindowHandle: HWND):integer; stdcall; export;
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
    SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0, SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
    if isWindow(hWindowHandle) then begin
        { Get the process identifier for the window}
        GetWindowThreadProcessID(hWindowHandle, @hprocessID);
        if hprocessID <> 0 then begin
            { Get the process handle }
            processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION, False, hprocessID);
            if processHandle <> 0 then begin
                { Terminate the process }
                TerminateProcess(processHandle, 0);
                CloseHandle(ProcessHandle);
            end;
        end;
    end;
    result := 0;
end;

exports
    LoadProgramMinimized ,
    KillProcessByHandle ,
    SetFormParent
    ;

begin
end.

Pour info: la combinaison // sur une ligne signifie que tout ce qui suit sur cette ligne est un commentaire. Et les commentaires plus vastes sont inclus engtre accolades { et }. C'est assez lisible, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Dll permettant de gérer la souris Empty
MessageSujet: re   Dll permettant de gérer la souris EmptySam 7 Juil 2012 - 0:52

Je rajoute une petite précision sur les versions de delphi :

Si OS = Wista ou W7 : La version delphi 7 gratuite ne passe pas il faut prendre delphi 6

Petit bug d'installation de delphi 6 ( rien de méchant )

Au demarrage delphi 6 nous dit qu'il ne peut pas renommer un fichier scratch
C'est normal ...il est déjà renommé
donc , il suffit de renommé le fameux fichier avec l'extension qu'il souhaite renommé et tout roule...


voilà c'était juste un petit encart , mais ca peut être déroutant... Laughing
Revenir en haut Aller en bas
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 16:01

@ Klaus


Klaus ich brauche deine Hilfe. Ich möchte das Mausrad
auf meinen 360 Formen anbinden

Ich habe folgendes übernommen:

Mausrad:
dll_on "MouseOperations.dll"
x0% = left(Form_nr%) + 10
y0% = top(Form_nr%) + 10
i% = dll_call3("MouseWheel",x0%, y0%, 1)
x0% = left(no_b_sup%)
y0% = top(no_b_sup%)
i% = dll_call2("MousePosition",x0%, y0%)
dll_off
return

Dabei ist Form_nr% die Formnummer.
Ich verstehe no_b_sup% nicht.
Severin
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 17:15

Die 3 Zeilen
Code:
x0% = left(no_b_sup%)
y0% = top(no_b_sup%)
i% = dll_call2("MousePosition",x0%, y0%)
in meinem Demonstrations-Programm dienen nur dazu, den Mauskusor NACH der Mausradaktion wieder auf die Ausgansposition zu bringen - auf den Button, mit dem man die Aktion ausgelöst hat. Das ermöglicht es, einfach nur zu kilcken, um die Mausradsimulation zu wiederholen. In Deinem Anwendungsprogramm ist das selbstverständlich NICHT notwendig !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 20:12

@ Klaus

das ist mein Aufruf für die DLL:

Beim erstellen der Form:

no_form% = Form_nr%

dann:

Gosub Mausrad

Mausrad:
dll_on "MouseOperations.dll"
x0% = left(no_form%) + 10
y0% = top(no_form%) + 10
i% = dll_call3("MouseWheel",x0%, y0%, 1)
dll_off
return


Muss die DLL beim erstellen der Form aufgerufen werden oder
erst wenn die Form im Programm aufgerufen wird ?

Ich bekomme einfach die Maus nicht angezeigt.
Severin


Entschuldige meine Fragen aber die Sprache
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 20:56

Dein Mausrad Unterprogramm erscheint mir völlig korrrect. Es bewirkt Folgendes:
- Positionnierung des Cursors auf (x0%,y0%)
- Maus-Rad Aktion "1 pixel nach open"

Ist es das, was Du willst ?

Es ist nicht notwendig, die DLL vorher zu laden. So wie Du es in dem Unterprogramm tust, ist es in Ornung.

Sollte die DLL aber häufig aufgerufen werden, wäre es vielleicht ratsam, sie einmal am Anfang su laded, und sie auszuladen, wenn sie nicht mehr gebraucht wird. Es sei denn, Du verwendest andere DLL's gleichzeitig - dann ist Deine Technik natütlich angebracht. Dann kannst Du aber auch DynamicallyLoadDLL.dll verwenden, um das stetige Ein- und Ausladen zu vermeiden.

EDIT

Die MouseWheel Funktion des DLL funktioniert in "Fenster-Koordinaten" ! Sie bezieht sich auf das AKTIVE Fenster. Sollte das gewünschte Fenster nicht das aktuelle aktive Fenster sein, musst Du vor dem Aufruf Deiner Mausrad Routine das TO_FOREGROUND Kommando verwenden, um das Fenster zum Aktiven zu machen. Eventuell kannst Du auch SET_FOCUS verwenden, allerdings nicht mit der Objektnummer des betreffenden Fensters, sondern mit der Nummer eines Objekts, das sich auf diesem Fenster befindet. Dadurch wird die zugehörige Form automatisch sur aktiven Form, und dann kannst Du Deine Routine verwenden.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 22:17

@ Klaus

es geht einfach nicht. Hier noch mal der Weg.
Ich möchte ca. 9000 Pixel nach unten scrollen.

Code:
' ******************************************************************************
' *** Clientformen variabel 001 bis 020 auf Clientform fix 0004 erstellen  *****
CLIENTFORM001:
no% = 1500
For k% = 1 To 20                                        :' max. 360 Clientformen
COMMAND_TARGET_IS 0004
no%      =        no%+1
Form_nr% =        no%
Form              no%
hide              no%
top              no%,0
left              no%,0
WIDTH            no%,SCREEN_X-12
height            no%,SCREEN_Y-177
FONT_NAME        no%,"Courier NEW"
FONT_SIZE        no%,06
COLOR            no%,222,222,222
BORDER_HIDE      no%
' *** Mausrad aktivieren *******************************************************
no_form%  =  Form_nr%
Gosub Mausrad
' ***  Clientform no% auf Form 0004 befestigen *********************************
PARENTNUMMER1% = HANDLE(Form_nr%)    :' Clientform no% auf Form 0004 befestigen
PARENTNUMMER2% = HANDLE(0004)        :' Clientform fix 0004
GOSUB OBJEKT_AN
' *** Anzeige Form Nummer ******************************************************
COMMAND_TARGET_IS Form_nr%
no% =            no% + 1
alpha            no%
parent          no%,client_area%(n_client_area%)
font_size        no%,20
font_color      no%,255,0,0
top              no%,500
left            no%,10
font_bold        no%
caption          no%,Form_nr%
' *** vertikales und horizontales Scrollen *************************************
GOSUB add_object                            : ' ermöglicht vertikales Scrollen
GOSUB add_hor_object                        : ' ermöglicht horizontales Scrollen
' *** Objekte auf FormXXX erstellen ********************************************
if k% = 001 THEN GOSUB FORM001                  :' Objekte auf FormXXX erstellen
if k% = 002 THEN GOSUB FORM002                  :' Objekte auf FormXXX erstellen
if k% = 003 THEN GOSUB FORM003                  :' Objekte auf FormXXX erstellen
if k% = 004 THEN GOSUB FORM004                  :' Objekte auf FormXXX erstellen
' if k% = 005 THEN GOSUB FORM005                                Trennungsstrich
if k% = 006 THEN GOSUB FORM006                  :' Objekte auf FormXXX erstellen
if k% = 007 THEN GOSUB FORM007                  :' Objekte auf FormXXX erstellen
if k% = 008 THEN GOSUB FORM008                  :' Objekte auf FormXXX erstellen
if k% = 009 THEN GOSUB FORM009                  :' Objekte auf FormXXX erstellen
if k% = 010 THEN GOSUB FORM010                  :' Objekte auf FormXXX erstellen
' ***                                          ********************************
if k% = 011 THEN GOSUB FORM011                  :' Objekte auf FormXXX erstellen
if k% = 012 THEN GOSUB FORM012                  :' Objekte auf FormXXX erstellen
if k% = 013 THEN GOSUB FORM013                  :' Objekte auf FormXXX erstellen
if k% = 014 THEN GOSUB FORM014                  :' Objekte auf FormXXX erstellen
if k% = 015 THEN GOSUB FORM015                  :' Objekte auf FormXXX erstellen
if k% = 016 THEN GOSUB FORM016                  :' Objekte auf FormXXX erstellen
if k% = 017 THEN GOSUB FORM017                  :' Objekte auf FormXXX erstellen
' if k% = 018 THEN GOSUB FORM018                                Trennungsstrich
if k% = 019 THEN GOSUB FORM019                  :' Objekte auf FormXXX erstellen
if k% = 020 THEN GOSUB FORM020                  :' Objekte auf FormXXX erstellen
' ***  Bildschirmabgrenzung mit SEITENTRENNER **********************************
GOSUB SEITENTRENNER                                      :' Bildschirmabgrenzung
' ***  Bar Horizontal und Vertical auf AREA erstellen **************************
 GOSUB BAR_HORIZONTAL_H                    :' Bar Horizontal auf AREA erstellen
 GOSUB BAR_VERTICAL_VE                      :' Bar Vertical auf AREA erstellen
' ***
Next k%
' *** Rücksprung für die Erstellung der nächsten 20 Formen *********************
Pause 10                                    :' zur Erholung von Windows
RETURN                                      :' Rücksprung
' ******************************************************************************

Gosub Mausrad

Mausrad:
dll_on "MouseOperations.dll"
x0% = left(no_form%) + 200
y0% = top(no_form%) + 200
i% = dll_call3("MouseWheel",x0%, y0%, 1)
dll_off
return


Über DynamicallyLoadDLL.dll reden wir später, das muss ich erst genau ansehen.
Severin

Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptySam 14 Juil 2012 - 22:27

Könnte es so gehen ?
Code:
Mausrad:
dll_on "MouseOperations.dll"
x0% = left(no_form%) + 200
y0% = top(no_form%) + 200
to_foreground no_form%  : ' Mache die Form sur aktiven Form
i% = dll_call3("MouseWheel",x0%, y0%, 1)
dll_off
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyDim 15 Juil 2012 - 0:59

@ klaus

ich habe ein Testprogramm.
Geht der Befehl den auf eine Form ?


Code:

 label weiter, weiter2
 dim no_memo%
 dim no%, no1%, no2%, i%, x0%, y0%

' Form 0

top    0000,0000
left  0000,0000
width  0000,1600
height 0000,800
'
command_Target_is 0000
Form  0002
top    0002,0010
left  0002,0010
no_memo% =  0002
width  0002,1500
height 0002,700

gosub weiter

command_Target_is 0002
button 0003
caption 0003,"stop"

on_click 0003,weiter2
end

weiter:
  dll_on "MouseOperations.dll"
  x0% = left(no_memo%) + 100
  y0% = top(no_memo%) + 100
  i% = dll_call3("MouseWheel",x0%, y0%, 1)
'  x0% = left(no_b_sup%)
'  y0% = top(no_b_sup%)
'  i% = dll_call2("MousePosition",x0%, y0%)
  dll_off
  return

weiter2:
terminate
end
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyDim 15 Juil 2012 - 1:13

Citation :

EDIT

Die MouseWheel Funktion des DLL funktioniert in "Fenster-Koordinaten" ! Sie bezieht sich auf das AKTIVE Fenster.

Diese Funktion wirkt wirklich auf das AKTIVE Fenster ! Was Du sieht, wenn Du folgende Änderung machst:
Code:
' on_click 0003,weiter2
on_click 0003,weiter
end

weiter:
Dei Klick auf "stop" springt der Kursor auf die adressierte Stelle. Das Scroll kann allerdings nicht ausgeführt werden - dafür ist dir Form 0002 nicht ausgelegt.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyDim 15 Juil 2012 - 15:38

@ Klaus

ja, die Maus stellt sich in den angegebenen Bereich.
muss ich die gesamte Größe der Clientform angeben ?

Du schreibst die Form 2 ist nicht für scroll. ok

Aber ich habe ja client Formen die ich mit Bar scrollen kann.

Größe ca. 2x Bildschirmbreite und 16x Bildschirmhöhe.
Ich dachte wenn ich einen links klick mache , kommt das kontexmenü.

Braucht die DLL weiter aufrufe ?

Fazit:

ich möchte scrollen und das Kontxmenü zum kopieren einstellen.

Danke für deine Geduld
Severin

Hier die definition der Clientarena:
' *** KONSTANTE FÜR CLIENTARENA ************************************************
constantes:
DIM max_client_area%
DIM max_height%
DIM max_width%
' ***** Abmessung der Clientarea festlegen ************************************
max_client_area% = 385 :' Maximale Anzahl Clientarea
max_height% = (SCREEN_Y-190) * 16 :' Maximale Seitenzahl 16
' max_height% = 9700 :' Maximale Pixel für Höhe
max_width% = (SCREEN_X) * 2 :' Maximale Pixel für Breite
' ******************************************************************************
DIM option_left_hide%(max_client_area%)
DIM option_top_hide%(max_client_area%)
RETURN





Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris EmptyDim 15 Juil 2012 - 16:36

Dir Grösse der Form, die die Client Area enthält, ist unwictig. Was zählt, ist, dass die betreffende Form die aktive Form ist, wenn dir DLL-Funktionen für die Maus aufgerufen werden, jedenfalls was alle Funktionen anbetrifft, die NICHT das Wort ABSOLUTE im Namen haben.

Das Kontext-Menu wird normalerweise mit dem Rechts-Kick aufgerufen - ich meine das Windows-Kontextmenu. Wenn Du Dein eigenes schreiben willst, musst Du es natürlich mit dem Links-Klick aufrufen, damit das On_click Ereignis kommen kan.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Dll permettant de gérer la souris Empty
MessageSujet: Re: Dll permettant de gérer la souris   Dll permettant de gérer la souris Empty

Revenir en haut Aller en bas
 
Dll permettant de gérer la souris
Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Outil interactif pour gérer un fichier ILB
» Gérer les fenêtres Internet
» Gérer les dates de péremption
» V2.82 du 15/02/2014 - possibilité de gérer plusieurs WB
» Gérer un moteur 2D utilisant DirectX dans KGF ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: