![]() |
Terminal Software?!
Hi ihrzz,
hab nen Problem mit dem Verständnis und der Ausführung meines Programms. Ich Kopiere mal den Code hier her sagt mal bitte was genau da falsch ist. Das ganze ist eine Terminal Software die Ausgabe soll in einem Memo sein. Kennt sich damit jemand aus?
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); private { Private-Deklarationen } public { Public-Deklarationen } function DoCommand(CMD : string): boolean; end; var DataModMain: TDataModMain; implementation uses Types, Controls, FrmMain; {$R *.dfm} procedure TDataModMain.ApdComPortTriggerAvail(CP: TObject; Count: Word); var I : Integer; c : Char; Zeile : array[0..255] of Char; begin FillChar(Zeile,SizeOf(Zeile),#0); for i := 1 to Count do begin Zeile := ApdProductName; c := ApdComPort.GetChar; Case c of #10, #13 : begin FormMain.Memo.Lines.Add(StrPas(Zeile)); FillChar(Zeile,SizeOf(Zeile),#0); end; else StrCat(Zeile, PChar(c)); end; end; end; function TDataModMain.DoCommand(CMD: string): boolean; begin // ApdComPort.PutString(CMD); end; end.
Delphi-Quellcode:
MfG
unit FrmMain;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DataMain, ExtCtrls, OoMisc, ADTrmEmu, StdCtrls; type TFormMain = class(TForm) Panel1: TPanel; ButtonHelp: TButton; Memo: TMemo; procedure FormCreate(Sender: TObject); procedure ButtonHelpClick(Sender: TObject); 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.ButtonHelpClick(Sender: TObject); begin DataModMain.DoCommand('H'); end; end. Sascha |
Re: Terminal Software?!
Es wäre unheinmich hilfreich, wenn du und sagen würdest, was für Fehlermeldungen du bekommst bzw. wo es klemmt ...
Bein Überfliegen des Codes ist mit aufgefallen das du DataModMain weder in Private noch in Public deklariert hast. Eventuell hilft dir das ja schon weiter ...
Delphi-Quellcode:
private
{ Private-Deklarationen } DataModMain:TDataModMain; // <----------------- wäre echt sinnvoll .... 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.ButtonHelpClick(Sender: TObject); begin DataModMain.DoCommand('H'); end; |
Re: Terminal Software?!
Zitat:
|
Re: Terminal Software?!
Zitat:
![]() |
Re: Terminal Software?!
Naja das is halt das Problem eine wikliche Fehlermedung bekomme ich halt nicht...
er zeigt halt einfach nichts in dem Memo feld an... und daher wusste ich auch nicht was ich als Fehlermedung hier her schreiben sollte. Er soll einfach das was das gerät zurückgibt im Memo feld anzeigen aber er macht es nicht. MfG Sascha |
Re: Terminal Software?!
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Vielleciht können andre Leute ja zum späteren Zeitpunkt noch was damit anfangen.
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. MfG Sascha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz