Passage entre formes et executable.
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:
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.