procedure TForm2.btnLoadClick(Sender: TObject);
begin
Form1.OpenFile;
Close;
end;
type
TForm1 =
class(TForm)
private
procedure ReadData;
procedure ReadTyp1(
var j: Integer);
procedure ReadTyp2(
var j: Integer);
procedure ReadTyp3(
var j: Integer);
procedure ReadTyp4(
var j: Integer);
public
procedure OpenFile;
end;
procedure TForm1.OpenFile;
begin
if OpenDialog1.Execute
then
begin
Zwischenspeicher.Lines.LoadFromFile(OpenDialog1.FileName);
ReadData;
Zwischenspeicher.Clear;
end;
end;
procedure TForm1.ReadData;
var
j, iTyp : integer;
anztxti, anzlbli, anzmemoi : integer;
begin
Memo1.Visible:=false;
pnlForm1.Destroy;
pnlForm1 :=
nil;
pnlForm1 := TPanel.Create(Self);
pnlForm1.Parent := Form1;
pnlForm1.SetBounds(8, Memo1.Top, Memo1.Width, Memo1.Height-5);
pnlForm1.Visible:=true;
CloseFormular := TSpeedButton.Create(pnlForm1);
CloseFormular.Parent := pnlForm1;
CloseFormular.SetBounds(pnlForm1.Width-20,0,20,20);
//CloseFormular.Glyph.LoadFromFile('menu_close.bmp');
CloseFormular.Font.Color:=clRed;
CloseFormular.Font.Bold:=true;
CloseFormular.Font.
Name:='
Arial';
CloseFormular.Caption:='
X';
CloseFormular.OnClick:=@CloseFormularClick;
CloseFormular.Caption:='
X';
CloseFormular.SetBounds(pnlForm1.Width-16,0,16,16);
anztxti := Zwischenspeicher[0];
//position der Anz txt
anzlbli := Zwischenspeicher[1];
//position der Anz lbl
anzmemoi := Zwischenspeicher[2];
j := 3;
while j < zwischenspeicher.Lines.Count
do
begin
iTyp := StrToIntDef(Zwischenspeicher[j], 0);
Inc(j);
case iTyp
of
1: ReadTyp1(j);
2: ReadTyp2(j);
3: ReadTyp3(j);
4: ReadTyp4(j);
else
raise Exception.CreateFmt('
Typ nicht unterstützt Zeile(%d)', [j]);
end;
end;
end;
procedure TForm1.ReadTyp1(
var j: Integer);
var
Edit4 : TEdit;
begin
Edit4 := TEdit.Create(pnlForm1);
Edit4.Parent := pnlForm1;
Edit4.
Name := Zwischenspeicher[j];
Edit4.Enabled := True;
Edit4.AutoSize := False;
Edit4.Text := Zwischenspeicher[j + 1]
Edit4.Setbounds(IntToStr(Zwischenspeicher[j + 2]),
IntToStr(Zwischenspeicher[j + 3]),
IntToStr(Zwischenspeicher[j + 4]),
IntToStr(Zwischenspeicher[j + 5]));
Inc(j, 8);
// <- so viele Zeilen, wie für diesen Typ erforderlich
end;