begin process at 2010 02 10 12:00:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Réccupérer des données sur un autre Unit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Réccupérer des données sur un autre Unit

lundi 9 mai 2005 à 14:20:30 | Réccupérer des données sur un autre Unit

m_cyril1

J'ai fait un petit programme, celui-ci mémorise des chiffres entier sur une première form et sur la deuxième le résultat de la somme des chiffres s'affiche. Moi ce que je voudrait faire c'est que le calcul s'effectue sur le Unit de la deuxième Form et non que tout le programme soit sur l'unit de la prmière Form. mais je ne vois pas comment faire
J'ai modifier mon programme en:


{Unit (nom :memorisation)  de la Form de la première form (nom:memo)}

procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Memo: TMemo;

var Memoire:array of Real;
var n:Integer;

implementation

{$R *.dfm}

procedure TMemo.FormCreate(Sender: TObject);
begin
  n:=0;
  SetLength(Memoire, n);
  MemoEd.Clear;
end;

procedure TMemo.MemoButClick(Sender: TObject);
begin
  inc(n);
  SetLength(Memoire, n);
  Memoire[n-1]:=StrToInt(MemoEd.Text);
  MemoEd.Clear;
end;

procedure TMemo.FermerButClick(Sender: TObject);
begin
  close;
end;


{Unit (nom :result)  de la Form de la segonde Form (nom:resultat)}
 procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Resultat: TResultat;

implementation

{$R *.dfm}

procedure TResultat.FormCreate(Sender: TObject);
var i:Integer;
begin
  For i=0 to ???
      begin
         ???
      end; 
  Resultat.Text:=IntToStr(???);
end;

procedure TResultat.FermerClick(Sender: TObject);
begin
  Close;
end;

Donc faudrait que j'arrive à réccupérer les données du tableau dynamique pour pouvoir faire la somme et à remplacer les ??? 

end.

lundi 9 mai 2005 à 19:15:47 | Re : Réccupérer des données sur un autre Unit

WhiteHippo

Membre Club

{Unit (nom :memorisation)  de la Form de la première form (nom:memo)}
type
  TMemo = class(TForm)
  private
    { Déclarations privées }
  public
   
// Déclaration de ton tableau ici !!
      Memoire:array of Real;
   end;

var
  Memo : TMemo ;

Utilisation :

Unit (nom :result)  de la Form de la segonde Form (nom:resultat)}
 procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Resultat: TResultat;

implementation

{$R *.dfm}


uses TMemo ;

procedure TResultat.FormCreate(Sender: TObject);
var i,Total:Integer;

begin
  Total := 0 ;
  For i=0 to Length(Memoire)-1 do
  begin
       Inc( Total,  Memoire[i] ) ;
    end; 
  Resultat.Text:=IntToStr(Total );
end;

procedure TResultat.FermerClick(Sender: TObject);
begin
  Close;
end;

Cordialement.

lundi 9 mai 2005 à 19:17:20 | Re : Réccupérer des données sur un autre Unit

WhiteHippo

Membre Club
oups uses Memorisation ; bien sur et pas uses TMemo ; 

Cordialement.
mardi 10 mai 2005 à 09:23:15 | Re : Réccupérer des données sur un autre Unit

m_cyril1

Ok! J'ai fait les modifications mais il n'apprécie pas la deuxième condition de la boucle For et ce qu'il y a dedans
Et en plus j'avais oublié un bouton pour lancer le calcul. Le Code ça donne:

{Unit (nom :memoriser)  de la Form de la première form (nom:memo)}
 public
    { Déclarations publiques }
    Memoire:array of Real;
  end;

var Memo: TMemo;
var n:Integer;

implementation

uses result;

{$R *.dfm}

procedure TMemo.FormCreate(Sender: TObject);
begin
  n:=0;
  SetLength(Memoire, n);
  MemoEd.Clear;
end;

procedure TMemo.MemoButClick(Sender: TObject);
begin
  inc(n);
  SetLength(Memoire, n);
  Memoire[n-1]:=StrToInt(MemoEd.Text);
  MemoEd.Clear;
end;

procedure TMemo.FermerButClick(Sender: TObject);
begin
  close;
end;

procedure TMemo.CalculerClick(Sender: TObject);
begin
  Resultat.show;
end;

{Unit (nom :result)  de la Form de la segonde Form (nom:resultat)}
var Resultat: TResultat;

implementation

uses Memoriser;

{$R *.dfm}

procedure TResultat.FormCreate(Sender: TObject);
var i,total:Integer;
begin
  Total:=0;
  For i=0 to Length(Memoire)-1 do
    begin
      Inc( Total,  Memoire[i] );
    end;
  Resultat.Text:=IntToStr(Total);
end;

procedure TResultat.FermerClick(Sender: TObject);
begin
  Close;
end;

Je sais que je ne suis pas doué, mais la j'ai juste fais un copier coller. J'ai essayer en déclarant n dans public et donc la boucle devient For i=0 to n-1 do, mais c'est pareil.

PS: Quel est l'avantage de déclarer ses tableaux ou certaines variables dans public

mardi 10 mai 2005 à 12:40:00 | Re : Réccupérer des données sur un autre Unit

WhiteHippo

Membre Club

Désolé mais je t'ai répondu rapidement et sans vérifier.
Comme toujours :
      "vite fait mal fait"

il faut écrire :

procedure TResultat.FormCreate(Sender: TObject);
var i,total:Integer;
begin
  Total:=0;
  For i=0 to Length(Memo.Memoire)-1 do
    begin
      Inc( Total,  Memo.Memoire[i] );
    end;
  Resultat.Text:=IntToStr(Total);
end;

En effet ton tableau mémoire est contenu dans ta fiche Memo.

On déclare Memoire en section public afin de pouvoir l'utiliser dans d'autres unités. On Aurait pu également le déclarer en variable globale, mais je ne suis pas pour...
 
Cordialement.

mardi 10 mai 2005 à 13:30:23 | Re : Réccupérer des données sur un autre Unit

m_cyril1

J'ai modifié et j'ai toujours les messages:
[Erreur] result.pas(37): La variable de contrôle de boucle FOR doit être une variable locale simple
[Erreur] result.pas(37): Types incompatibles : 'Boolean' et 'Integer'
[Erreur] result.pas(38): Expression attendu(e) mais 'BEGIN' trouvé(e)
[Erreur] result.pas(39): Types incompatibles
[Erreur fatale] memoriser.pas(32): Impossible de compiler l'unité utilisée 'result.pas'



mardi 10 mai 2005 à 19:03:02 | Re : Réccupérer des données sur un autre Unit

WhiteHippo

Membre Club
Il manque juste le : du := !!!

For i:=0

Cordialement.
mercredi 11 mai 2005 à 09:00:20 | Re : Réccupérer des données sur un autre Unit

m_cyril1

Ouais maintenant avec le := ça fonctionne plus ou moins
Explication : pas d'erreur de compilation le programme de mémorisation fonctionne, on mémorise quelques chiffres, on appui sur calculer et la c'est le drame le TEdit est vide
La partie {Unit (nom :memoriser)  de la Form de la première form (nom:memo)} n'a pas changé.
Et la partie  {Unit (nom :result)  de la Form de la segonde Form (nom:resultat)} devient:

    procedure FermerClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Resultat: TResultat;

implementation

{$R *.dfm}

uses Memoriser ;

procedure TResultat.FormCreate(Sender: TObject);
var i,Total:Integer;
begin
  Total:=0 ;
  For i:=0 to Length(Memo.Memoire)-1 do
  begin
       Inc( Total,  Memo.Memoire[i] ) ;
  end;
  Resultat.Text:=IntToStr(Total );
end;

procedure TResultat.FermerClick(Sender: TObject);
begin
  Close;
end;

end.



Cette discussion est classée dans : form, end, sender, procedure, tobject


Répondre à ce message

Sujets en rapport avec ce message

pb a creer un exe avec la principal form invisible [ par Winniez ] J'ai voulu au demarrage de exe afficher une autre form que la form principal. a l'execution sa me met une erreur, apres g mis le meme code dans un bou Newbie & TCPI/IP [ par Megafan ] Bonjour je suis complétement débutant en delphi, par contre je suis pas mauvais en VB.Pourquoi je change allez vous dire ?Parce que VB ne tourne pas s "Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ] Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d probleme avec sockets [ par PsyClown44 ] Salut!J'ai un prob avec le composant TClientSocket : je n'arrive pas a recevoir de paquets lors d'une connexion!Voila le code:unit Unit1;interfaceuses probleme de click entre un temps [ par maxioutils ] Voila le code presque complet :unit Unit6; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtr envoyé donnés au port usb [ par didi59650 ] Voila j'ai fait un programme qui fonctionne tres bien (stage). La liaison entre mon appareil de mesure et le PC est faite par le port serie. j'ai du c Inclure un graph sous delphi?? [ par bm3w325i ] Bonjours, je viens de me lancer dans delphi car j ai besoin d utiliser un media palyer pour diffuser la video par la sortie video de ma carte de decom Filtrer les données de DBGrid à partir de ADOQuery [ par Cobuce ] Salut,J'execute un module pour filtrer un DBGrid sur ADOQuery.  En fait j'ai deux problème :1. Utiliser le Filter à partir de RzEdit et garder juste l Récupération d'une valeur [ par ouaich85 ] Bonjour, voici mon code : unit Unit2; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrl afficher une ligne !!! [ par Hardouz ] salut voici un bou de Code que je vien de faire a l'aide de plusieur membres du Cs je vous remerci bien :) mais je veut faire afficher la ligne qui co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales