Bonjour,

Voilà, j'ai un problème avec mes passages d'une unité (ou fiche) à une autre...
Je tiens à préciser que je débute en POO, et que j'ai appris sur le tas.
Voici un exemple de code où ça plante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//form principale
...
intreface
uses EcecutionMeca;
...
implementation
procedure TFormPrincipale.CalculElectrique1Click(Sender: TObject);
begin
  Form20.FormHide(Form20);
end;
end.
 
//form Appelée
unit ExecutionMeca;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ShellAPI,
  ConnectionBD, EditDate;
 
type
  TForm20 = class(TForm)
  procedure FormHide(Sender: TObject);
 private
    { Déclarations privées }
    pas : integer;
    const pFileElec:pchar = ('C:\Simalim\Simalim IHM\Elec\calculElec.exe');
    procedure TimeToSteptime;
  public
    { Déclarations publiques }
   Constructor Create(AOwner:TComponent); Override;
   Destructor Destroy; Override;
  end;
 
 
var
  Form20: TForm20;
 
implementation
 
{$R *.dfm}
 
{{--------------------------------------------------------------
----------------------------------------------------------------}
Constructor TForm20.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
end;
{{--------------------------------------------------------------
----------------------------------------------------------------}
Destructor TForm20.Destroy;
Begin
Inherited Destroy;
end;
{{---------------------------------------------------------------
----------------------------------------------------------------}
procedure TForm20.TimeToStepTime;
var temps:double;
begin
  With DataModule1.Source_SIM_ARRET.DataSet do
  begin
    Open;
    First;
      temps := FieldByName('temps').AsInteger;
      temps := temps / pas;
      DataModule1.QueryGenerale.SQL.Clear;
      DataModule1.QueryGenerale.SQL.Add('UPDATE Sim_Arret set temps='+FloatToStr(temps)+'');
      DataModule1.QueryGenerale.ExecSQL;
  end;
end;
{{--------------------------------------------------------------
----------------------------------------------------------------}
procedure TForm20.FormHide(Sender: TObject);
begin
  TimeToSteptime;
  ShellExecute(Application.handle,'Open',pFileElec,'','',SW_SHOWNORMAL);
 end;
 
end.
Ce qui est bizzarre c'est que tout fonctionne sur le PC qui dispose de Delphi. Mais dès que je crée un executable et que je le lance sur un autre PC, il n'y a pas moyen de lancer l'executable CalculElec(pour l'exemple ci-dessus)...

Merci d'avance.