jai fais une petite application sous excel calcule de déplacement d'un point A a un point B.
imaginons un cadriage de 200 carrés par 200 carrés chaques carrés de ce cadriage est repérer par une coordonnée x et y
je voulais pouvoir calculé le deplacement en temp d'un carré a un autre en déterminant la vitesse de mon déplacement
voici ce que jai fais sous excel
point de depart sur une carte (point A)
dans la celule (c7) coordonnée x
dans la celule (c13) corrdonée y
point arrivé sur une carte (point B)
dans la celule (E7) coordonnée x
dans la celule (E13) coordonée y
dans la celule (D3) 00:00:00 ((heures et jours de départ))
dans la celule (h13) 00:12 ((temp de deplacement))
dans la celule (D17) =SOMME.X2PY2(C7-C13;E7-E13)
dans la celule (E17) =RACINE(D17)
dans la celule (J5) =SOMME(E17*H3) ((resulta du deplacement du point A au point B ))
dans celule (k3) =SOMME(D3+J3) résultal de l'heure et jours arrivé
qui marche tres tres bien .
ma demande est toute simple jaimerais re transcrir cela sous delphi
avoir une form dans la quel j'aurais le choix de mettre les coordonnées que je veus pour chaque points A et B
idem pour le temp de déplacement
idem pour l'heure de départ
et cela m'afficherais le résulta temp de deplacement et heure arrivé
si quelqu'un est en mesure de me faire un petit exemple ce serais hiper cool !!
vous pouvez m'envoyer eventuelement votre idé sur mon msn tsainvet@hotmail.fr
Le plus court chemin entre deux points étant la ligne droite...
Donc cela revient à calculer le temps de déplacement d'un objet entre deux points connaissant leurs coordonnées (départ et arrivée) et la vitesse de déplacement.
un petit exemple..
------
uses Math;
------
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR TempDepart, TempArrivee, d: real;
xa, ya, xb, yb, vitesse, temps: Extended;
BEGIN xa := 3; xb := 12;
ya := 5; yb := 7;
vitesse := 3;
// calcul de la distance entre A et B
d := sqrt(power(xb - xa, 2) + power(yb - ya, 2));
temps := d / vitesse;
showmessage(floatToStr(temps));
END;
Reste à faire un formulaire afin de saisir, les coordonnées des points de départ et d'arrivée ainsi que la vitesse.
Il faudrait aussi faire un test afin de vérifier si le point est bien dans la cellule EXCEL.
ça ma l'air d'etre génial serait un debut merci merci
de prété attention a ma demande mais le gros problem c'est que je suis vraiment novice
ce que je te propose voici le lien ou ce trouve mon fichier excel que jai fait afin que tu comprene dans un premier temp mon objectif qui selon moi est important pour comprendre ce que je veux faire voila le lien
le but est de pouvoir reproduire la meme chose mais sans excel
jai dejas commencer la structure de mon aplication voici
le lien pour te faire une idée
http://ghostiens.free.fr/tribal/tribalwars.exe
VAR
TempDepart, TempArrivee, d: real;
coorXA, coorYA, coorXB, coorYB, depTEMP, reponce: Extended;
begin
coorXA:= coorXA;
coorYA:= coorYA;
coorXB:= coorXB;
coorYB:= coorYB;
depTEMP:=depTEMP;
// calcul de la distance entre village A et village B
d := sqrt(power(coorXA - coorXB, 2) + power(coorYA - coorYB, 2));
reponce := d / depTEMP;
showmessage(floatToStr(reponce));
END;
//saisi coordonné XA ((du village A))
procedure TForm1.coorXAChange(Sender: TObject);
begin
coorXA.Text;
end;
//saisi du point YA ((du village A))
procedure TForm1.coorXBChange(Sender: TObject);
begin
coorYA.Text;
end;
//saisi du point XB ((du village B))
procedure TForm1.coorYAChange(Sender: TObject);
begin
coorXB.Text;
end;
//saisie du point YB ((du village B))
procedure TForm1.coorYBChange(Sender: TObject);
begin
coorYB.Text;
end;
//saisie du temp de déplacement exemple 00:12 en minute et second
procedure TForm1.depTEMPChange(Sender: TObject);
begin
depTEMP.Text;
end;
//affiche la réponce du calcule
procedure TForm1.reponceChange(Sender: TObject);
begin
reponce.Text;
end;
//affiché en heure:minute:second
procedure TForm1.TempArriveeChange(Sender: TObject);
begin
TempArrivee.Text;
end;
// saisi en heure:minute:second
procedure TForm1.TempDepartChange(Sender: TObject);
begin
TempDepart.Text ;
end;
//saisi coordonné XA ((du village A))
procedure TForm1.coorXAChange(Sender: TObject);
begin
coorXA.Text;
end;
cette écriture en fonctionne pas car en fait tu ne stockes rien !
il faut stocker la valeur de la saisie dans les edit dans des variables que tu peux utiliser ensuite dans ta formule.
variable valeur saisie dans l'edit
stoCoorA := coorXA.text;
Il y d'autres solutions bien sûr, mais c'est la plus simple à comprendre.
mais j'aime cette outils delphi ces terrible la je test la version 2009
et je vous pouvoir réalisé cette applie histoire de me motivé
jai repris tous les encien lien que javais et aussi hiere je suis allez rechercher tous ce qui pouvais m aidé a mieu comprendre delphie jai trouver un site bien pour les nul ..
voila ppour dir que je suis vraiment novice tous ce que jai apris de delphie est attraver les sources que jai pu explorer ici
jai pas encore trouver de doc expliquant chaque fonction de code ..
mais je vais encore chercher et si entre temp jai réussi a faire mon petit programe je vais p'etre bien acheter une bible pour delphi ;-)
procedure TForm1.coorXAChange(Sender: TObject);
var
stoCoorA :real; begin
coorXA.Text;
end;
non, ce n'est toujours pas correct...
procedure TForm1.coorXAChange(Sender: TObject);
begin
stoCoorA := coorXA.text;
end;
et la déclaration doit être en global et non en local :
var
Form1: TForm1;
stoCoorA :real;
j e remerci cantadore pour les solution proposé qui mon permis avancé dans mes explication ..
je remerci Nirou ami delphien !! qui a apres lui avoir donné la formule mathématique de ce que je voulais ma permis de poursuivre mon proger en me solutionnant mon problement
Edit6.Text := IntToStr(Floor(heure))+' h '+
IntToStr(Floor(minute))+' min '+
IntToStr(seconde)+' sec';
end;
procedure TForm10.Button2Click(Sender: TObject);
begin
if strtoint(spinedit1.Text)<101 then begin//evite que ca deborde de la fenetre
panel2.Width:=strtoint(spinedit1.Text)*2;//je multiple par 2 pour que le resultat
soit pair ca evite une sacade quand il repars a 0 (voir timer1timer)
panel2.Left:=round((Form10.Width-Panel2.Width)/2)-5;//pour centrer le panel sur
la fiche
while label5.Width
procedure TForm10.Timer1Timer(Sender: TObject);
begin
if label5.Left <=4-label5.Width/2 then //si tu es un pixel avant la moitié du texte
label5.left:=3 else //reviens au debut du texte
label5.Left := label5.Left-1;//sinon decale de 1 pixel
end;
procedure TForm10.BitBtn2Click(Sender: TObject);
begin
form10.close;
end;
1) quand je met dans le Edit5 un chiffre a virgue ou point il me dit que
mon chiffre n'est pas une valeur entiere correcte
jaimerais que la valeur soit pas forcement entiere COMENT FAIRE
2) comment affecté un nombre a deux chiffre a une image ?
voila jai 11 images aux quel je voudrais affecté un nombre
et que lorsque je clic sur une des images son nombre affecté ce mette dans le edit5.txt
effectivement c'est vieu et j avais finalement fini par abandonné le sujet car comme etant novice ce que je suis toujours bien que maintenant je comprend mieu l'outil delphi
je ne suis pas je l'avous un chevroné de la programation mais tous ce donc je connais de delphi aujourdhuit je doit a codes-sources et quelque membres ici
et surtous grace a tous les sources qui mon servi exemple car je comprend mieu les les fonctions lorsqu'un exemple est donné sa ma beaucoup beaucoup servi ;-)
du reste puis que tu re sort les vieux chiffons du placard je ne vois pas pour quoi du reste lol
j'en profite pour remercié l'ensemble de la comunoté delphifr pour les conseil et aide qui mon apporté !! et aussi pour celle quils m apporterons
bon et bien n'empeche que je suis toujours dans la gallere lol
je tien aprécisé que je ne veu plus de excel mais simplement tranformer la composition de ce que jai fait sur excel et reproduire la meme chose sur delphie
ça c'est juste pour evité les erreures de compréantion ...!!
merci a tous pour vos exemple qui me serais proposé
bonne année 2009 a tous !! vive la nouvelle anné en esperant quelle soit meilleur !! lol
bon je revien sur mon probleme posté bien en faite il ne me manque que mon petit calcule pour finalisé mon application et une petite chose.
voila javais posté mon fichier excel afin de vous montrer ce que je voulais reproduire sur dephi 7 alors a votre bon coeur pour un peti coup de pouce
pour la nouvelle année svp helppppp!!
jai chercher un peu par tous des explications jai trouver du code ? mais je ne sais pas du tous le posé sur dephie
donc voila je reformule ma demande
imaginon une form dans la quel il y aurais 5 TComboBox 2 tedit
dans tcombobox1 =cordonnée X village 1
dans tcombobox2 =cordonnée Y village1
dans tcombobox3 =cordonnée X village2
dans combobox4 =cordonnée Y village2
dans combobox5 = temp de déplacement (choix du temps( 00:12) en minute
dans tedit1 = date+heures ((choix heures et date de depart))
dans tedit2 = temp déplacement calculé (dep de village 1 a 2)00:00:00
dans tedit 3 = heure et date arrivé
voila pour la présentation simple
mon probleme ces de posé le calcule !!
je vous remet ma formule fait sous excel !!
point de depart sur une carte (village 1)
dans la celule (c7) coordonnée x
dans la celule (c13) corrdonée y
point arrivé sur une carte (village 2)
dans la celule (E7) coordonnée x
dans la celule (E13) coordonée y
dans la celule (D3) 00:00:00 ((heures et jours de départ))
dans la celule (h13) 00:12 ((temp de deplacement))
dans la celule (D17) =SOMME.X2PY2(C7-C13;E7-E13)
dans la celule (E17) =RACINE(D17)
dans la celule (J5) =SOMME(E17*H3) ((resulta du deplacement du point A au point B ))
dans celule (k3) =SOMME(D3+J3) résultal de l'heure et jours arrivé
voila le but etant de transformer mon code excel en delphi 7
pour appliqué a ma form
merci pour vos proposition de code !! ou exemple
je vous redonne mon mail perso pour eventuelement me contacté ;-) tsainvet@hotmail.fr