PDA

View Full Version : نوشتن یک برنامه مثل "هایپر ترمینال" ویندوز با دلفی؟



Zahed2008
چهارشنبه 28 خرداد 1393, 11:47 صبح
با سلام، من یک برنامه مثل هایپر ترمینال ویندوز با دلفی بنویسم. کسی میتونه کمک کنه؟

pezhvakco
چهارشنبه 28 خرداد 1393, 16:29 عصر
سلام
برنامه هایپرترمینال با پورت ها کار می کنند .
بهتره همین موضوع رو جستجو نمایید .

من پیش از اینها از این ها کمک گرفتم :
http://barnamenevis.org/showthread.php?28746-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%BE%D9%88%D8%B1%D8%AA-%D9%87%D8%A7%DB%8C-%D9%88%D8%B1%D9%88%D8%AF%DB%8C-%D9%88-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C

http://barnamenevis.org/showthread.php?245373-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%BE%D9%88%D8%B1%D8%AA-%D8%B3%D8%B1%DB%8C%D8%A7%D9%84-%D8%AF%D8%B1-%D8%AF%D9%84%D9%81%DB%8C

http://barnamenevis.org/showthread.php?38209-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%BE%D9%88%D8%B1%D8%AA-%D9%87%D8%A7-%28%D9%BE%D8%A7%D8%B1%D8%A7%D9%84%D9%84-%D9%88-usb%29

و ...

Zahed2008
شنبه 31 خرداد 1393, 09:18 صبح
سلام، ممنون از راهنماییتون. ولی من منظورم نوشتن کد با دلفی هستش، نمیخوام از کامپوننت استفاده کنم. من خودم این کد رو پیدا کردم که با Com کار میکنه. ولی یه اشکالی داره اینه که ارسال میکنه ولی نمیتونم خوب دریافت کنم. میتونید بگید اشکال کار کجاست؟ :عصبانی++:
unit rs2; interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
send: TMemo;
Button2: TButton;
Button3: TButton;
receive: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ComFile: THandle;
implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const
CommPort = 'COM1';
var TimeoutBuffer: PCOMMTIMEOUTS;
begin
ComFile := CreateFile(PChar(CommPort), GENERIC_WRITE + GENERIC_READ,
0, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0);
GetMem(TimeoutBuffer, sizeof(COMMTIMEOUTS));
GetCommTimeouts (ComFile, TimeoutBuffer^);
TimeoutBuffer.ReadIntervalTimeout := 300;
TimeoutBuffer.ReadTotalTimeoutMultiplier := 300;
TimeoutBuffer.ReadTotalTimeoutConstant := 300;
SetCommTimeouts (ComFile, TimeoutBuffer^);
FreeMem(TimeoutBuffer, sizeof(COMMTIMEOUTS));
end;
procedure TForm1.Button1Click(Sender: TObject);
var NumberWritten: cardinal;
rtn:Boolean;
s: string;
begin
s:=send.Lines.Text + #13 + #10;
rtn:=WriteFile(ComFile, PChar(s)^,Length(s), NumberWritten, nil);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
var InputBuffer:string;
MaxBytesToRead, NumberOfBytesRead: cardinal;
begin
if ReadFile(ComFile, PChar(InputBuffer)^, Length(InputBuffer),NumberOfBytesRead, nil) = false then
begin
ShowMessage('Error');
closehandle(ComFile);
exit;
end
else
receive.lines.text:=inttostr(NumberOfBytesRead) + inputbuffer;
end;
end.

Zahed2008
شنبه 31 خرداد 1393, 10:21 صبح
نمونه کد کاملترش در این مسیر میتونید پیدا کنید: http://www.swissdelphicenter.ch/en/showcode.php?id=841

SayeyeZohor
یک شنبه 01 تیر 1393, 18:16 عصر
یک نگاهی بنداز

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#es_th=1&ie=UTF-8&q=send%20and%20receive%20serial%20port%20delphi&sourceid=chrome-psyapi2

من دلفی ندارم تست کنم

SayeyeZohor
یک شنبه 01 تیر 1393, 18:16 عصر
http://www.activexperts.com/serial-port-component/howto/delphi/