unit Speichern;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, EFPI_Steuerungsunit1, StdCtrls, ExtCtrls, ComCtrls;
type
TForm7 =
class(TForm)
Label1: TLabel;
ProgressBar1: TProgressBar;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form7: TForm7;
Fortschrittsanzeige: boolean;
implementation
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
randomize;
Form1.Enabled := true;
Fortschrittsanzeige := false;
// Variable anhand derer festgestellt wird, ob der Speichervorgang beendet ist
Excel.Worksheets[1].SaveAS('
D:\Tischsteuerung\Steuerungsprogramm Version 1.103\Sensoren.xls');
{ <---------- hier gibt es noch einen Fehler!!!}
Form1.OleContainer1.DestroyObject;
{Objekt muss aktualisiert werden sonst werden die Änderungen nach dem Schliesen des OleContainers nicht sichtbar}
Form1.OleContainer1.CreateObjectFromFile('
D:\Tischsteuerung\Steuerungsprogramm Version 1.103\Sensoren.xls', false);
// neu laden
Fortschrittsanzeige := true;
end;
procedure TForm7.Timer1Timer(Sender: TObject);
var iTemp: integer;
begin
//Fortschrittsanzeige wird nicht voll befüllt, wenn Speichern nicht abgeschlossen ist
if (Fortschrittsanzeige = False)
and (ProgressBar1.Position < 90)
then
begin
iTemp := random(5);
ProgressBar1.Position := Progressbar1.Position + iTemp;
end;
//Fortschrittsanzeige kann vollständig befüllt werden, wenn Speichern abgeschlossen ist
if (Fortschrittsanzeige = true)
then
begin
iTemp := random(10);
ProgressBar1.Position := Progressbar1.Position + iTemp;
end;
//wenn Progressbar vollständig befüllt ist, dann soll die Form wieder verlassen werden
if (ProgressBar1.Position >= 100)
then
begin
ProgressBar1.Position := 0;
Form1.Enabled := false;
close;
end;
end;
end.