우선 답변이 늦어서 죄송합니다..
주말에는 자장면 배달을 -.-
여하튼 코드를 봐도..
별문제가 없어보입니다..
IntToStr하고 Integer 변수를 넘겨줬으니..
당현히 그 값이 표시되어야 하는데..
^, # 등이 표시된다는 것은 이해가 안가는 군요..
도움이 못되어서 죄송합니다..
From 류..
남바다 님이 쓰신 글 :
: 안녕하세요..
:
: 아래와같이 구현했고 StatusBar에 바이트값을 데이타들어오는만큼나타내고싶어요...?
: 그리고 특수기호 ^,#,$등이 나오는데 의미는 무엇인가요..
: unit Unit1;
:
: interface
:
: uses
: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
: ComCtrls, StdCtrls, CommInt, ExtCtrls;
:
: type
: TForm1 = class(TForm)
: Panel1: TPanel;
: Panel2: TPanel;
: Memo1: TMemo;
: Button1: TButton;
: Button2: TButton;
: Button3: TButton;
: Comm1: TComm;
: Button4: TButton;
: Button5: TButton;
: Button6: TButton;
: Edit1: TEdit;
: Edit2: TEdit;
: StatusBar1: TStatusBar;
: procedure Button1Click(Sender: TObject);
: procedure Button2Click(Sender: TObject);
: procedure Button3Click(Sender: TObject);
: procedure Comm1RxChar(Sender: TObject; Count: Integer);
: private
: LineData: String;
: { Private declarations }
: public
: { Public declarations }
: end;
:
: var
: Form1: TForm1;
: implementation
:
: {$R *.DFM}
:
: procedure TForm1.Button1Click(Sender: TObject);
: //Var
: //Sb: Integer;
: begin
: Comm1.Open;
: Memo1.Lines.add('통신시작 ' + Comm1.DeviceName);
: //StatusBar1.Panels[1].Text := 'RX COUNT:'+ IntToStr(Sb) + 'Bytes';
: end;
: procedure TForm1.Button2Click(Sender: TObject);
: begin
: Comm1.Close;
: Memo1.Lines.add('통신중지 ' + Comm1.DeviceName);
: Panel1.Color:= clGreen;
: end;
:
: procedure TForm1.Button3Click(Sender: TObject);
: begin
: Memo1.Lines.Clear;
: Panel1.Color:= clGreen;
: end;
:
: procedure TForm1.Comm1RxChar(Sender: TObject; Count: Integer);
: type
: CharBuf = array[0..40000] of Char;
: var
: Buffer: ^CharBuf;
: Bytes,nam: Integer;
: begin
: StatusBar1.Panels[1].Text := 'RX COUNT: '+ IntToStr(0) + 'Bytes';
: Panel1.Tag:= Panel1.Tag Xor 1;
: If Panel1.Tag = 1 Then Panel1.Color:= clRed
: Else
: Panel1.Color:= clGreen;
: GetMem(Buffer, Comm1.ReadBufSize);
: try
: Memo1.Lines.add('');
: Fillchar(Buffer^, Comm1.ReadBufSize, 0);
: Bytes := Comm1.Read(Buffer^, Count);
: if Bytes = -1 then
: Memo1.Lines.add('Error reading incoming data...')
: else
: begin
: Memo1.Lines.add('Reading ' + IntToStr(Bytes) + ' characters');
: for nam := 0 to Bytes - 1 do
: begin
: case Buffer^[nam] of
: #0, #10:;
: #13: begin
:
: Memo1.Lines.Add(LineData);
: LineData := '';
: end;
: else
: begin
: LineData := LineData + CharBuf(Buffer^)[nam];
: end;
: end; //case
: end; //for do
: end;
: Application.Processmessages;
: Finally
: FreeMem(Buffer);
: end;
: end;
: end.
:
|