unit Hauptformular;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Menus, CPort, StdCtrls, Buttons, Einstellungen, Info, Inifiles;
type
TForm1 =
class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
ComPort: TComPort;
MainMenu: TMainMenu;
ButtonSX0auf0: TButton;
ButtonSX1auf0: TButton;
ButtonSX0auf1: TButton;
ButtonSX1auf1: TButton;
Datei: TMenuItem;
Extras: TMenuItem;
MenueEinstellungen: TMenuItem;
Hilfe1: TMenuItem;
MenueHilfe: TMenuItem;
N1: TMenuItem;
MenueInfo: TMenuItem;
GroupBox3: TGroupBox;
BitBtnEin: TBitBtn;
BitBtnAus: TBitBtn;
BitBtnSX0und1auf0: TBitBtn;
BitBtnBeenden: TBitBtn;
MenueBeenden: TMenuItem;
MenueNeustart: TMenuItem;
BitBtnSX0und1auf1: TBitBtn;
procedure FormShow(Sender: TObject);
procedure BitBtnEinClick(Sender: TObject);
procedure BitBtnAusClick(Sender: TObject);
procedure BitBtnSX0und1auf0Click(Sender: TObject);
procedure BitBtnSX0und1auf1Click(Sender: TObject);
procedure MenueNeustartClick(Sender: TObject);
procedure MenueEinstellungenClick(Sender: TObject);
procedure MenueInfoClick(Sender: TObject);
procedure ButtonSX0auf0Click(Sender: TObject);
procedure ButtonSX1auf0Click(Sender: TObject);
procedure ButtonSX0auf1Click(Sender: TObject);
procedure ButtonSX1auf1Click(Sender: TObject);
procedure BitBtnBeendenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
CPPort:
string;
CPBaud:
string;
// CPForm: string;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
//Befehle die beim Start ausgeführt werden
var
ini: TIniFile;
begin
if not (FileExists('
SXSETZER.ini'))
then //wenn die Datei noch nicht angelegt ist
begin
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '
.ini'));
try //Standardwerte schreiben
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '
.ini'));
ini.WriteString('
Einstellungen', '
Port', '
COM1');
ini.WriteString('
Einstellungen', '
Baud', '
9600');
// ini.WriteString('Einstellungen', 'Format', '2');
CPPort := ini.ReadString('
Einstellungen', '
Port', '
');
//Standardwerte lesen und setzen
CPBaud := ini.ReadString('
Einstellungen', '
Baud', '
');
// CPForm := ini.ReadString('Einstellungen', 'Format', '');
finally
ini.Free;
//Datei schliessen/freigeben
end;
end
else if FileExists('
SXSETZER.ini')
then //falls Datei schon vorhanden
begin
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '
.ini'));
try //Werte lesen
CPPort := ini.ReadString('
Einstellungen', '
Port', '
');
CPBaud := ini.ReadString('
Einstellungen', '
Baud', '
');
// CPForm := ini.ReadString('Einstellungen', 'Format', '');
finally
ini.Free;
//Datei schliessen/freigeben
end;
end;
BitBtnBeenden.SetFocus;
ComPort.Port := CPPort;
//ComPort Port setzen
ComPort.CustomBaudRate := StrToInt(CPBaud);
//ComPort BaudRate setzen
ComPort.Open;
end;
procedure TForm1.BitBtnEinClick(Sender: TObject);
//Gleis EIN
begin
ComPort.WriteStr(#255#128);
end;
procedure TForm1.BitBtnAusClick(Sender: TObject);
//Gleis AUS
begin
ComPort.WriteStr(#255#0);
end;
procedure TForm1.BitBtnSX0und1auf0Click(Sender: TObject);
//SX0 und SX1 auf 0 setzen
begin
ComPort.WriteStr(#114#2);
end;
procedure TForm1.BitBtnSX0und1auf1Click(Sender: TObject);
//SX0 und SX1 auf 1 setzen
var
i: integer;
begin
for i := 128
to 231
do
begin
ComPort.WriteStr(#254#0 + chr(i) + #255);
ComPort.WriteStr(#254#1 + chr(i) + #255);
end;
end;
procedure TForm1.MenueNeustartClick(Sender: TObject);
//Neustart der Zentrale
begin
ComPort.WriteStr(#114#0);
end;
procedure TForm1.MenueEinstellungenClick(Sender: TObject);
//Das Einstellungen-Fenster öffnen
begin
Einst.ShowModal;
end;
procedure TForm1.MenueInfoClick(Sender: TObject);
//Das Info-Fenster öffnen
begin
About.ShowModal;
end;
procedure TForm1.ButtonSX0auf0Click(Sender: TObject);
//Adressen 0 - 103 bei SX0 auf 0 setzen
var
i: integer;
begin
for i := 128
to 231
do
begin
ComPort.WriteStr(#254#0 + chr(i) + #0);
end;
end;
procedure TForm1.ButtonSX1auf0Click(Sender: TObject);
//Adressen 0 - 103 bei SX1 auf 0 setzen
var
i: integer;
begin
for i := 128
to 231
do
begin
ComPort.WriteStr(#254#1 + chr(i) + #0);
end;
end;
procedure TForm1.ButtonSX0auf1Click(Sender: TObject);
//Adressen 0 - 103 bei SX0 auf 1 setzen
var
i: integer;
begin
for i := 128
to 231
do
begin
ComPort.WriteStr(#254#0 + chr(i) + #255);
end;
end;
procedure TForm1.ButtonSX1auf1Click(Sender: TObject);
//Adressen 0 - 103 bei SX1 auf 1 setzen
var
i: integer;
begin
for i := 128
to 231
do
begin
ComPort.WriteStr(#254#1 + chr(i) + #255);
end;
end;
procedure TForm1.BitBtnBeendenClick(Sender: TObject);
begin
ComPort.Close;
Close;
end;
end.