Thema: Delphi Terminal Software?!

Einzelnen Beitrag anzeigen

NewTimeLive

Registriert seit: 31. Jan 2005
Ort: Namborn
29 Beiträge
 
#6

Re: Terminal Software?!

  Alt 18. Jul 2005, 14:33
Da ich ja doch ein fluckses Burschi bin hab ich es dann doch noch geschaft das ganze zum laufen zu bekommen... ich hab euch mal den Quelltext darunter Kopiert und die Dateien Angehängt um zu zeigen wat ich da machen wollte (Einfache Kommunikation mit einem Gerät über eine Schnittstelle *g*)

Die Main Form
Delphi-Quellcode:
unit FrmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,
  DataMain,
  ExtCtrls, OoMisc, ADTrmEmu, StdCtrls, Buttons;

type
  TFormMain = class(TForm)
    Memo: TMemo;
    Panel2: TPanel;
    Edit1: TEdit;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormMain: TFormMain;

implementation

uses AdPort;


{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
begin
  DataModMain := TDataModMain.Create(Self);
end;

procedure TFormMain.Edit1Change(Sender: TObject);
var CMD : String;
begin
  CMD := Edit1.Text;
  //DataModMain.DoCommand(CMD);
  Edit1.Text := ''
end;

procedure TFormMain.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
// Zeichen an COMPort senden
  DataModMain.ApdComPort.PutChar(Char(Key));
end;

end.

[b]Das DataMod
Delphi-Quellcode:
unit DataMain;

interface

uses
  SysUtils, Classes, AdWnPort, OoMisc, AdPort, Dialogs;

type
  TDataModMain = class(TDataModule)
    ApdComPort: TApdComPort;
    ApdWinsockPort: TApdWinsockPort;
    procedure ApdComPortTriggerAvail(CP: TObject; Count: Word);
    procedure ApdComPortTriggerData(CP: TObject; TriggerHandle: Word);
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    Zeile : string;
    CRTrig : word;
  public
    { Public-Deklarationen }
    function DoCommand(CMD : string): boolean;
  end;

var
  DataModMain: TDataModMain;

implementation

uses Types, Controls, FrmMain;


{$R *.dfm}

procedure TDataModMain.DataModuleCreate(Sender: TObject);
begin
  ApdComPort.Open := true;
  CRTrig := ApdComPort.AddDataTrigger(#13, False);
end;

procedure TDataModMain.ApdComPortTriggerData(CP: TObject; TriggerHandle: Word);
begin
  if TriggerHandle = CRTrig then begin
    FormMain.Memo.Lines.Add(Zeile);
    Zeile := '';
    // ApdComPort.RemoveTrigger(TriggerHandle);
  end;
end;

procedure TDataModMain.ApdComPortTriggerAvail(CP: TObject; Count: Word);
var i : Integer;
    c : Char;
begin
  for i := 1 to Count do begin
    c := ApdComPort.GetChar;
    case c of
      #10 :;
      #13 :;
    else Zeile := Zeile + c;
    end;
  end;
end;

function TDataModMain.DoCommand(CMD: string): boolean;
begin
  //
  ApdComPort.PutString(CMD);
end;


end.
Vielleciht können andre Leute ja zum späteren Zeitpunkt noch was damit anfangen.

MfG

Sascha
Angehängte Dateien
Dateityp: zip termnal_client_187.zip (6,2 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat