Le boulet

Soyez le premier à donner votre avis sur cette source.

Vue 3 324 fois - Téléchargée 259 fois

Description

autant d'utilité que pour BABALLE... aucune...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
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
Messages postés
6
Date d'inscription
vendredi 26 avril 2002
Statut
Membre
Dernière intervention
30 juin 2002

mais le decoupage n'est pas de moi... j'aurai pas reussi a faire ca...
Messages postés
6
Date d'inscription
vendredi 26 avril 2002
Statut
Membre
Dernière intervention
30 juin 2002

lol ben merci pour ces conseils... je vais corriger tout ca...
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
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 ;<)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.