Télécharger le zip
Pas si inutile que celà ! Cet exemple illustre des concepts intéressants : création de fiches de forme quelconque, déplacement sans utiliser la barre de titre (elle n'existe pas) et interactivité (vitesse réglable) et le tout bien documenté (sauf dans Timer1Timer mais le code est vraiment facile à comprendre). Quand tu écris : if image1.Visible = false then begin image1.visible := true; image2.visible := false; end; personnelement, pense qu'il est plus lisible d'écrire (et plus rapide à l'éxécution) de mettre : if not image1.visible then begin image2.Visible := Image1.Visible; image1.Visible := not image1.Visible; end; De même, tu fais fréquemment référence à Form1, comme par exemple : if abs(form1.top+25 - mouse.CursorPos.y) > speed +1 then alors que, par défaut, c'est la fiche qui est l'objet en cours et il suffirait d'écrire : if abs(top+25 - mouse.CursorPos.y) > speed +1 then Dans FormKeyPress, tu écris : case key of '+' : inc(speed); '-' : speed := speed - 1 ; end; Si Inc incrémente la valeur d'un variable, Dec réalise l'inverse : ainsi speed := speed + 1 est équivalent à Dec(Speed) mais est optimisé ! Pour info, tu peux déclarer et initialiser des variables directement dans la partie interface (depuis Delphi 4). Ainsi la variable speed déclarée n'et initialisée qu'à la création de la fiche pourrait être initialisée directement lors de sa déclaration : var speed : integer = 2; Je n'ai plus le temps d'étudier le reste mais d'autres le feront sûrement... Félicitations pour cette brillante démo ;<)
lol ben merci pour ces conseils... je vais corriger tout ca...
mais le decoupage n'est pas de moi... j'aurai pas reussi a faire ca...
Il n'y a pas de programme inutile. Les sources présentés ici n'ont pas tous une utilité directe mais présente toujours des exemples de programmation sur des points particuliers, c'est ça qui est utile. Dans Timer1Timer, plutôt qu'écrire : if (abs(top+12 - mouse.CursorPos.y) < speed +2) and (abs(left+12 - mouse.CursorPos.x) < speed +2) then begin if image2.Visible then begin image1.visible := image2.Visible; image2.visible := not image2.Visible; end; end else begin if image1.Visible then begin image2.visible := image1.Visible; image1.visible := not image1.Visible; end; end; On peut simplement écrire : Image1.Visible:=(abs(top+12 - mouse.CursorPos.y) < speed +2) and (abs(left+12 - mouse.CursorPos.x) < speed +2); Image2.Visible:=Not Image1.Visible; Bonne continuation, Nono
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte