habe wieder einmal ein Problem das ich einfach nicht in den Griff bekomme.
Ich habe ein neues Projekt erstellt, mit zwei Formen.
Beide Fenster sollen sich öffnen wenn ich die exe starte. Auf meinem PC (auf dem ich auch programmiert habe) funktioniert das wunderbar, auf allen anderen PC´s leider nicht. Es öffnet sich immer nur Form1 beim starten des Programms. Alle PC´s laufen mit gleichem Betriebssystem und Servicepack.
Hat jemand eine Idee wo der Fehler sein könnte?
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, RTTICtrls, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, MMSystem;
type
{ TForm1 }
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ScrollBox1: TScrollBox;
Timer1: TTimer;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
counter1:integer;
implementation
uses
Unit2;
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Timer1.Enabled:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Height:=63;
Form1.Width:=282;
Timer1.Enabled:=False;
Label1.Caption:='00:';
Label2.Caption:='00:';
Label3.Caption:='00';
Label4.Color:=clScrollBar;
procedure TForm1.Timer1Timer(Sender: TObject);
var
SS,MM,HH:String;
intSS, intMM, intHH:Integer ;
begin
//Integer-Variable Counter um 1 herunterzählen
dec(Counter1);
//Stunden, Minuten und Sekunden für die Anzeige berechnen
intHH:=Trunc(Counter1/60/60);
intMM:=Trunc((Counter1-intHH*60*60)/60);
intSS:=Trunc(Counter1- intMM*60 -intHH*60*60);
SS:=IntToStr(intSS);
MM:=IntToStr(intMM);
HH:=IntToStr(intHH);
//Aus optischen Gründen wird hier bei Bedarf eine "0"
//vor die Zeitangabe gesetzt
If Length(SS)=1 Then SS:='0' + SS ;
If Length(MM)=1 Then MM:='0' + MM ;
If Length(HH)=1 Then HH:='0' + HH ;
//Doppelpunkt nach Stunden und Minuten anzeigen
HH:= HH + ':';
MM:= MM + ':';
//Hier wird den Labels die Beschriftung zugewiesen
Label3.Caption:=SS;
Label2.Caption:=MM;
Label1.Caption:=HH;
//Anzeigefeld Farbe zuordnen bei bestimmter Laufzeit
//Wenn Zeit zwischen 24h und 15min dann Farbe grün
if (Counter1 <= 86400) and (Counter1 >= 900) then
begin
Label4.Color:=clgreen;
end;
//Wenn Zeit zwischen 15min und 1sek dann Farbe orange
if (Counter1 <= 899) and (Counter1 >= 1) then
begin
Label4.Color:=clyellow;
end;
//Wenn der Counter auf "0" steht, ist die Zeit abgelaufen
//Der Timer wird abgeschaltet und der OnStopTimer-Event ausgelöst
//Außerdem wird das akustische Signal ausgegeben
If Counter1=0 Then
begin
Timer1.Enabled:=False;
Label4.Color:=clred;
PlaySOUND(PChar('.\sound.wav'),hInstance,snd_ASync );
end;
end;
end;
end.
Code: Alles auswählen
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Unit1;
type
{ TForm2 }
TForm2 = class(TForm)
btnStart1: TButton;
btnStop1: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
procedure btnStart1Click(Sender: TObject);
procedure btnStop1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.lfm}
{ TForm2 }
// Wenn "Abkühlen" gedrückt wird, wird der Timer gestoppt falls er noch
// läuft. Der Counter wird auf 3600 Sekunden gesetzt (60min) und anschließend
// der Timer wieder gestartet
procedure TForm2.btnStart1Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
Counter1:= 86400;
Form1.Timer1.Interval:=1000;
Form1.Timer1.Enabled:=True;
Form1.Label4.Caption:=' Aushärten ';
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
Form2.Width:=422;
Form2.Height:=896;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.Visible:=True;
end;
procedure TForm2.FormResize(Sender: TObject);
begin
Form2.Width:=422;
Form2.Height:=896;
end;
procedure TForm2.btnStop1Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
Form1.Label4.Caption:=' ';
Form1.Label4.Color:=clScrollBar;
Form1.Label3.Caption:='00';
Form1.Label2.Caption:='00:';
Form1.Label1.Caption:='00:';
end;
end.