Thema: Delphi Thread Error

Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 19. Nov 2002, 22:22
Delphi-Quellcode:
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.
  Mit Zitat antworten Zitat