maison
Top.Mail.Ru Yandeks.Metrika
Forum: "Main";
Archive actuelle: 2004.12.12;
Télécharger: [xml.tar.bz2];

vers le bas

FormMouseMove Trouver des branches similaires


начинающий 2   (2004-11-27 15:53) [0]

Dites-moi quelle est l'erreur, voici le code:

procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState; X,
Y: entier);
commencer
Si GetCapture = 0 alors
SetCapture (Form1.Handle);
si PtInRect (Rect (Form1.Left, Form1.Top,
Form1.Left + Form1.Width, Form1.Top + Form1.Height),
ClientToScreen (Point (x, y))) commence alors
........
........
fin d'autre commence
........
........
fin
fin;

En bref, je détermine si le curseur est sur un formulaire ou non, et selon l'endroit où il se trouve, telle ou telle action est effectuée. Cela fonctionne donc, si vous ne comptez pas que les boutons du formulaire ne sont pas activés dès le premier clic, comme les autres composants. Si je mets * SetCapture (Form1.ClientHandle); *, alors tout va bien avec les composants, et les actions après * end else begin * ne sont pas effectuées. Ou qui connaît l'autre option.



Пыч   (2004-11-27 17:04) [1]

> Bref, je détermine si le curseur est sur un formulaire ou non ...

Pour déterminer si le curseur sur le formulaire n'est pas nécessaire:
...
Si GetCapture = 0 alors
SetCapture (Form1.Handle);
si PtInRect (Rect (Form1.Left, Form1.Top,
Form1.Left + Form1.Width, Form1.Top + Form1.Height),
ClientToScreen (Point (x, y))) puis commencez ...

si le curseur est sur un formulaire, l'événement FormMouseMove se produit,
sinon ce n'est pas le cas ...



Начинающий2   (2004-11-27 17:35) [2]

> Pych (27.11.04 17: 04) [1]
si le curseur est sur un formulaire, l'événement FormMouseMove se produit,
sinon ce n'est pas le cas ...


Le problème est que je dois savoir exactement où se trouve le curseur. Et si vous le faites différemment, les actions sont répétées constamment tant que le curseur est sur le formulaire. Et j'en ai besoin une fois.
Exemple:

procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState; X,
Y: entier);
commencer
Si x ou y> = 0 alors commencez
label1.Caption: = "Curseur sur la fiche";
hauteur: = 400;
largeur: = 600;
fin d'autre commence
hauteur: = 10;
largeur: = 20;
fin;
fin;

La forme changera sa taille tant que le curseur est sur la forme.



Пыч ©   (2004-11-27 18:28) [3]

...
var
Form1: TForm1;
CursorOnForm: Boolean = False;

la mise en oeuvre

{$ R * .dfm}

procedure TForm1.Timer1Timer (Sender: TObject);
var
Pt: TPoint;
commencer
Pt: = ScreenToClient (Mouse.CursorPos);
si PtInRect (ClientRect, Pt) alors
commencer
sinon CursorOnForm alors
Windows.Beep (50, 50);
CursorOnForm: = True;
fin du reste
commencer
si CursorOnForm alors
Windows.Beep (100, 50);
CursorOnForm: = False;
fin
fin;
...



начинающий 2   (2004-11-28 13:42) [4]

> Pych © (27.11.04 18: 28) [3]

Bon sang, quelque chose à propos de * CursorOnForm * Je ne pensais pas que cela devrait marcher. Merci pour le tuyau.



Pages: 1 branche entière

Forum: "Main";
Archive actuelle: 2004.12.12;
Télécharger: [xml.tar.bz2];

à l'étage





Mémoire: 0.56 MB
Heure: 0.051 c
1-1101732165
Bobby numérique
2004-11-29 15:42
2004.12.12
recommencer


4-1099042237
Était
2004-10-29 13:30
2004.12.12
Simuler la frappe F2 non par key_event


3-1100239591
Layner
2004-11-12 09:06
2004.12.12
Et avec développé sous MSSQLServer, personne n'a travaillé?


3-1100225895
peGaZ
2004-11-12 05:18
2004.12.12
DB en fichier texte


1-1101718296
Huître
2004-11-29 11:51
2004.12.12
Problèmes avec un groupe de BP





afrikaans albanais Arabic arménien azerbaïdjanais basque Biélorusse Bulgare catalan Chinois simplifié) Chinois (traditionnel) croate Tchèque Danois Néerlandais Anglais estonien Filipino Finlandais Française
galicien géorgien Allemand Grecque Créole haïtien hébreu Hindi Hongrois Islandais Indonesian irlandais Italienne Japonais Coréen letton lituanien macédonien Malay maltais Norvégienne
persan Polonais Portugais Roumain Russe serbe Slovaque Slovène Espagnol Swahili Suédois Thai turc ukrainien Urdu vietnamien gallois yiddish bengali bosniaque
Cebuano espéranto gujarati Hause hmong Igbo Javanais Kannada Khmer lao latin maori Marathi mongol népalais punjabi somali tamil telugu yoruba
zoulou
Английский Français Allemand Italien Португальский Русский Espagnol