1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174:
| unit COM_EInstellungen;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,registry;
type TCOM_Dialog = class(TForm) COMbox: TGroupBox; COM1Button: TRadioButton; COM2Button: TRadioButton; Com3Button: TRadioButton; COM4Button: TRadioButton; EinstellungenBox: TGroupBox; BaudBox: TComboBox; DatenBox: TComboBox; ParitaetBox: TComboBox; StopBox: TComboBox; ProtBox: TComboBox; Baudrate: TLabel; Datenbits: TLabel; Paritaet: TLabel; Stopbits: TLabel; Protokoll: TLabel; OK: TButton; Abbrechen: TButton; Uebern: TButton; procedure COM1ButtonClick(Sender: TObject); procedure COM2ButtonClick(Sender: TObject); procedure Com3ButtonClick(Sender: TObject); procedure COM4ButtonClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure UebernClick(Sender: TObject); procedure OKClick(Sender: TObject); procedure AbbrechenClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var COM_Dialog: TCOM_Dialog; regist : Tregistry; Cport,b,d : integer; s : single; p,o : string; x : pchar;
implementation
{$R *.dfm}
procedure TCOM_Dialog.COM1ButtonClick(Sender: TObject); begin Cport := 1; X := 'COM1'; end;
procedure TCOM_Dialog.COM2ButtonClick(Sender: TObject); begin Cport := 2; X := 'COM2'; end;
procedure TCOM_Dialog.Com3ButtonClick(Sender: TObject); begin Cport := 3; X := 'COM3'; end;
procedure TCOM_Dialog.COM4ButtonClick(Sender: TObject); begin Cport := 4; X := 'COM4'; end;
procedure TCOM_Dialog.FormActivate(Sender: TObject); begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CLASSES_ROOT; regist.Openkey('Delphin\Einstellungen',true); Cport := regist.ReadInteger('Comport'); b := regist.ReadInteger('Baudrate'); s := regist.ReadFloat('Stopbit'); d := regist.ReadInteger('Datenbits'); p := regist.ReadString('Parität'); o := regist.ReadString('Protokoll'); Baudbox.Text := inttostr(b); Stopbox.Text := floattostr(s); DatenBox.Text := inttostr(d); ParitaetBox.Text := p; ProtBox.Text := O; regist.Destroy; if cport = 1 then com1button.Checked := true; if cport = 2 then com2button.Checked := true; if cport = 3 then com3button.Checked := true; if cport = 4 then com4button.Checked := true;
end;
procedure TCOM_Dialog.UebernClick(Sender: TObject); var Handle :THandle; dcb : TDCB; s1 : byte; OSVersion : TOSVersionInfo; cc : TCommConfig; hComm : hFile; begin b := strtoint(Baudbox.Text); s := strtofloat(StopBox.Text); d := strtoint(Datenbox.Text); P := Paritaetbox.Text; O := ProtBox.Text; regist:=TRegistry.Create; regist.RootKey:=HKEY_CLASSES_ROOT; regist.Openkey('Delphin\Einstellungen',true); regist.WriteInteger('Comport',cport); regist.WriteInteger('Baudrate',b); regist.WriteFloat('Stopbit',s); regist.WriteInteger('Datenbits',D); regist.WriteString('Parität',P); regist.WriteString('Protokoll',O); regist.Destroy; Handle := CreateFile(X,GENERIC_READ OR GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL OR FILE_FLAG_OVERLAPPED, 0); if s = 1 then s1 := 0; if (s = 1.5) then s1 := 1; if s = 2 then s1 := 2; OSVersion.dwOSVersionInfoSize:= SizeOf(OSVersion); FillMemory(@CC,SizeOf(CC),0); CC.dwSize:= SizeOf(cc); GetVersionEx(OSVersion); if (OSVersion.dwPlatformId=VER_PLATFORM_WIN32_NT) and (OSVersion.dwMajorVersion < 4) then BuildCommDCB('baud=9600 parity=N Data=8 stop=1',DCB) else begin GetDefaultCommConfig(x,cc,cc.dwsize); DCB :=CC.DCB; end; GETCOMMSTATE(handle,DCB); with DCB do begin BaudRate := B; ByteSize := D; Parity := p1; StopBits := s1; end; SETCommState(handle,DCB);
end;
procedure TCOM_Dialog.OKClick(Sender: TObject); begin close; end;
procedure TCOM_Dialog.AbbrechenClick(Sender: TObject); begin close; end;
end. |