Calcule de deplacement [Résolu]

tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 28 déc. 2008 à 03:54 - Dernière réponse : tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention
- 14 janv. 2009 à 15:47
bonjour

voici mon petit probleme

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

merci encore pour ceux qui ce pancherons sur cela
Afficher la suite 

Votre réponse

21 réponses

cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 28 déc. 2008 à 14:33
+3
Utile
bonjour,


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.

cantador
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 28 déc. 2008 à 14:48
+3
Utile
oui  je sais bien  jai donc fait cela  sur excel comme je les posté plus haut
 ma demande est  comment mettre cela   dans delphie  etant  novice  

jaimerais ne pas passer par excel mais que cela soit completement dans une form ..

merci pour vos réponce  
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 28 déc. 2008 à 16:00
+3
Utile
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.

ce n'est qu'un début...

cantador
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 28 déc. 2008 à 17:02
+3
Utile
ç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

http://ghostiens.free/tribal/c5.xls

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

voila  adepte du jeu tribalwars  tous y est dit
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 28 déc. 2008 à 17:04
+3
Utile
a oui je présise ma demande est porter sur le bouton attaque et attaque seule lol

titi
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
Caribensila 2674 Messages postés jeudi 15 janvier 2004Date d'inscription 11 mai 2018 Dernière intervention - 29 déc. 2008 à 02:45
+3
Utile
Oh lala!
C'est un récidiviste de longue date!
Il voudrait passer de Excel à Delphi sans faire le moindre effort.
C'est tout !



VOIR
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Caribensila
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 8 janv. 2009 à 01:36
+3
Utile
bonjour !! bon  jai essayer me cresé un peu avec ce qui  ma ete soumis par cantador !!

du reste  merci ..

voila ce que jai fait  ba rien extraordinaire sa marche pas lol
je crois que le calcul  des racine et vecteur  ouaaa !! aill enfin bref

voila  ce que jai  fait pourriez vous me corrigé ??

--------------------------------------------------------

unit test;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Math;


type
  TForm1 = class(TForm)
    bFermer: TBitBtn;
    Button1: TButton;
    coorXA: TEdit;
    coorYA: TEdit;
    coorXB: TEdit;
    coorYB: TEdit;
    depTEMP: TEdit;
    reponce: TEdit;
    TempDepart: TEdit;
    TempArrivee: TEdit;


    procedure Button1Click(Sender: TObject);
    procedure coorXAChange(Sender: TObject);
    procedure coorXBChange(Sender: TObject);
    procedure coorYAChange(Sender: TObject);
    procedure coorYBChange(Sender: TObject);
    procedure depTEMPChange(Sender: TObject);
    procedure reponceChange(Sender: TObject);
    procedure TempDepartChange(Sender: TObject);
    procedure TempArriveeChange(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;


var
  Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);


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;


end.
-------------------------------------------------------------------

merci
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 8 janv. 2009 à 17:10
+3
Utile
//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.

cantador
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 8 janv. 2009 à 22:48
+3
Utile
merci cantadore je  mis colle voir

je vous informe de l évolution
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 9 janv. 2009 à 01:06
+3
Utile
eu !! si jai bien compris

il faut que je  mette comme cela ?

//saisi coordonné XA    ((du village A))
procedure TForm1.coorXAChange(Sender: TObject);
var
stoCoorA :real;
begin

coorXA.Text;
end;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 9 janv. 2009 à 01:13
+3
Utile
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 ;-)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 9 janv. 2009 à 01:14
+3
Utile
titi
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 9 janv. 2009 à 01:15
+3
Utile
a oui je n'oublirais pas  d'ajouté les nom de ceux qui m'aurons  aidée lol
je m'approprirais pas  les mérites ;-)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 10 janv. 2009 à 17:10
+3
Utile
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;

implementation

{$R *.dfm}

cantador
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 10 janv. 2009 à 20:20
+3
Utile
voici le résultat :

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

voici ce que cela donne

unit Unit10;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, math, StdCtrls, ComCtrls, Buttons, Menus, ExtCtrls, Spin;


type
  TForm10 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    GroupBox3: TGroupBox;


    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    GroupBox4: TGroupBox;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker1: TDateTimePicker;
    GroupBox5: TGroupBox;


    Panel2: TPanel;
    MainMenu1: TMainMenu;
    Ouvrir1: TMenuItem;
    Quiter1: TMenuItem;
    BitBtn1: TBitBtn;
    Button2: TButton;
    SpinEdit1: TSpinEdit;
    Timer1: TTimer;
    Label5: TLabel;
    Edit6: Tedit;
    BitBtn2: TBitBtn;
    GroupBox6: TGroupBox;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    Image11: TImage;
    Edit5: TEdit;


    procedure BitBtn1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Quiter1Click(Sender: TObject);


 


 


  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;


var
  Form10: TForm10;


implementation


{$R *.dfm}


 




procedure TForm10.BitBtn1Click(Sender: TObject);
 var
 d: real;
  ax, ay, bx, by, vitesse, temps: Extended;
   heure, minute : Extended;
  seconde : integer;
begin
  ax := StrToInt(Edit1.Text);
  ay := StrToInt(Edit2.Text);


  bx := StrToInt(Edit3.Text);
  by := StrToInt(Edit4.Text);
  vitesse := StrToInt(Edit5.Text);




  // calcul de la distance entre A et B
  d := sqrt(power(ax - bx, 2) + power(ay - by, 2));


  temps := d * vitesse;


  heure :=  temps / 60 ;
  minute := temps - (Floor(heure) * 60);
  seconde := round((temps - (Floor(heure) * 60) - Floor(minute)) * 60);


  DateTimePicker3.Time := DateTimePicker2.Time + (heure / 24);
  DateTimePicker4.Date := DateTimePicker1.Date + (heure / 24);


  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;


end.

voila trop cool
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 10 janv. 2009 à 21:00
+3
Utile
 re:

nouvelle demande

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

Image1: TImage;
    Image2 : =12
    Image3 : =15
    Image4: = 12
    Image5: =6
    Image6:= 6.5
    Image7: =7.5   
    Image8: =20
    Image9: =24
    Image10: 6.5
    Image11: 30
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 14 janv. 2009 à 15:47
+3
Utile
lol  en cherchant un peu  jai fini par trouver  ce que je voulais  donc  fini  plus besoin  explication  enfin pour l'instant

merci a tous
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 29 déc. 2008 à 11:11
0
Utile
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

voili voilou !!!
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 29 déc. 2008 à 11:22
0
Utile
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é

titi
Commenter la réponse de tsainvet
tsainvet 96 Messages postés samedi 27 mars 2004Date d'inscription 14 décembre 2017 Dernière intervention - 5 janv. 2009 à 19:43
0
Utile
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

merci a tous
Commenter la réponse de tsainvet

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.

calcule de deplacement - page 2