ÔÚWIN32ÖеĴ®¿ÚͨѶ£¨Delphi£©
ÔÚWIN32ÖеĴ®¿ÚͨѶ£¨Delphi£©
ÓÉÔÚWIN32²Ù×÷ϵͳÖнûÖ¹Ó¦ÓóÌÐòÏóDOSÖÐÄÇÑùÖ±½Ó·ÃÎʼÆËã»úÓ²¼þ£¬Òò´Ë£¬ÎÞ·¨ÏóÒÔǰÄÇÑù²ÉÓÃÖж϶Áд´®¿Ú¡£µ«ÊÇÔÚWIN32ÖÐÎÒÃǿɷ¢²ÉÓÃÁ½ÖÖ·½·¨·ÃÎÊ´®¿Ú£º1¡¢Ê¹ÓÃVBÖеÄMSCOMM´®¿Ú¿Ø¼þ£»2¡¢²ÉÓÃAPIº¯Êý£¬±¾ÎÄÖ÷Òª½éÉܲÉÓÃAPIº¯ÊýʵÏÖ´®¿ÚͨѶ¡£
ÓÉÓÚWM_COMMNOTIFYÏûÏ¢Òѱ»È¡Ïû£¬¹Ê±¾ÎÄ×Ô¶¨ÒåÁËWM_COMMNOTIFYÏûÏ¢£¬ÔÚWIN32Öм¸¸ö³£ÓõĴ®¿ÚͨÐÅAPIº¯ÊýÈçÏ£º
CreateFile ´ò¿ª´®¿Ú
CloseHandle ¹Ø±Õ¾ä±ú£¬ÓÃÓÚÊÍ·ÅÄÚ´æ
SetComm ÉèÖûº³åÇø´óС
ReadFile ¶Á´®¿Ú
WriteFile д´®¿Ú
SetCommState ÉèÖÃͨÐŲÎÊý
GetCommState »ñȡͨÐŲÎÊý
ClearCommError Çå³ý´®¿Ú´íÎó²¢»ñÈ¡¶Á¡¢Ð´»º³åÇøµ±Ç°×Ö½ÚÊý
SetCommMask ÉèÖô®¿ÚÆÁ±Îʼþ
PurgeComm Ïû³ý´®¿Ú¶Áд»º³åÇøµÄËùÓÐ×Ö·û£¬ÓÃÒÔÖÕÖ¹Ðü¶øÎ´¾öµÄ¶Áд²Ù×÷¡£
PostMessage ·¢ËÍÏûÏ¢
WaitCommEvent µÈ´ý´®¿Úʼþ·¢Éú
ÓÉÓÚ²ÉÓöàÏ̲߳Ù×÷´®¿Ú£¬»¹Óõ½ÒÔÏÂAPIº¯Êý
CreateEvent ½¨Á¢Í¬²½Ê¼þ
ResetEvent ͬ²½Ê¼þ¸´Î»
SetEvent ͬ²½Ê¼þÖÃλ
WaitForSingleObject µÈ´ýͬ²½Ê¼þ
GetOverLappedResult »ñÈ¡²¢ÐвÙ×÷µÄ½á¹û]
GetLastError »ñÈ¡´íÎó´úÂë
ÓÉÓÚWIN32È¡ÏûÁËWM_COMMNOTIFY£¬ËùÒÔ±ØÐë×Ô¼º´´½¨£¬Èç¹û±àд´®¿Ú¿Ø¼þ£¬ÄÇôӦ¸ÃÔÚ´®¿Úʼþ·¢Éúʱ¼´WaitCommEvent·µ»ØTrueʱ»òGetLastError·µ»Ø½á¹ûΪError_IO_Pending£¬ÇÒGetOverLappedResult·µ»ØTrueʱ´¥·¢¶Á´®¿Úʼþ¡£±ÈÈ磺´®¿Ú¿Ø¼þΪTcomm,ÄÇôÔÚ´®¿Úʼþ·¢Éúʱµ÷ÓÃTcomm.RXChar·½·¨£¬Tcomm.RXChar¶¨ÒåÈçÏ£º
Procedure Tcomm.RXChar;
begin
if Assigned(FOnRXChar) then FonRxChar(self);
SetEvent(Post_Event);
End;
DelphiµÄÇ¿´óºÍ¶àÏß³ÌÖ§³Ö£¬Ê¹µÃʵÏÖ´®¿ÚͨÐŷdz£·½±ã¼òµ¥£¬Ê×ÏÈ£¬ÓÃCreateFile´ò¿ª´®¿Ú,Æä´Î£¬Í¨¹ýGetCommState»ñÈ¡´®¿Ú²ÎÊý£¬²¢ÓÃSetCommStateÉèÖô®¿Ú²ÎÊý£¬È»ºó´´½¨Ïß³ÌÓÃÒÔ¼àÊÓ´®¿Ú£¬´Ëºó¾Í¿ÉÒÔ½øÐд®¿ÚͨÐÅÁË£¬×îºóÓÃClosehandle ÊÍ·ÅËùÓÐ×ÊÔ´£¨Çмǣ¬ÒÔÃâËÀ»ú£©¡£
ÔÚÕâÆäÖУ¬Ê¹Óõ½Ò»¸öÖØÒªµÄ½á¹¹DCB£¬Æä³£ÓõÄһЩ¶¨ÒåÈçÏ£º
BaudRate:²¨ÌØÂÊ£¬¿ÉÖ±½ÓÉ
Ïà¹ØÎĵµ£º
function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer; stdcall;
begin
if uMsg = BFFM_INITIALIZED then
begin
SendMessage(Wnd, BFFM_SETSELECTION, 1, lpData);
SetWindowText(Wnd, 'Ñ¡ÔñÒ»¸öÄ¿±ê');
end;
Result := 0;
end;
//hdl: ´°¿Ú¾ä±ú
//Root: ¸ùÄ ......
Delphi Öн«¶ÔÏó×÷Ϊ²ÎÊý´«µÝµÄʹÓà ¾ÙÀý·ÖÎö
2009-07-24 13:40
ÏÂÃæµÄµ¥»÷ʼþ£¬½«Òªµ÷ÓÃÒ»¸öÒÔ¶ÔÏóΪ²ÎÊýµÄ·½·¨£¬²¢½«½á¹ûÏÔʾ³öÀ´¡£
procedure TForm1.btn1Click(Sender: TObject);
var
lStrings: TStrings;
begin
lStrings:= TStringList.Create;
try
lStrings.Add('chen');
&nbs ......
Êý×éÊÇ¿ÉÒÔͨ¹ýË÷ÒýÀ´ÒýÓõÄͬÀàÐÍÊý¾ÝµÄÁÐ±í¡£°´ÕÕ´æ´¢¿Õ¼äµÄ»ñÈ¡·½Ê½£¬Delphi
Ö§³ÖµÄÊý×éÀàÐÍÓÐÁ½ÖÖ£¬¼´¾²Ì¬Êý×éºÍ¶¯Ì¬Êý×é¡£Ëùν¾²Ì¬Êý×é¾ÍÊÇÔÚÉùÃ÷ʱ¾ÍÒѾȷ¶¨´óСµÄÊý×éÀàÐÍ£¬¶ø¶¯Ì¬Êý×éÊÇÖ¸Æä´óСÔÚÉùÃ÷ʱ²»ÄÜÈ·¶¨µÄÊý×飬¶¯Ì¬Êý×éµÄ´óСÔÚʹÓÃʱȷ¶¨¡£
ÉùÃ÷¾²Ì¬Êý×éµÄ·½Ê½·Ç³£¼òµ¥£¬Ö»ÒªÖ¸Ã÷Êý×鳤¶ÈºÍÊý¾ÝÀàÐÍ ......
֮ǰ×öÒ»¸ö³ÌÐò£¬ÓÃListBox¶ÁÈëÒ»¸öÎı¾Îļþ£¬µ«Îı¾ÖÐÓпÕÐУ¬ÎªÁËɾ³ýÆäÖеĿÕÐУ¬ÕÛÌÚÁ˺ó¤Ê±¼ä¡£
Ïȸø³öÒ»¶Î´úÂë¸ø´ó¼Ò¿´
var
i:Integer;
begin
ListBox1.Items.LoadfromFile('data.txt');
for i:=0 to ListBox1.Count - 1 do
begin
  ......
DELPHI²ÎÊý¼¸¸ö¸ÅÄîÉϵÄÇø±ð ÊÕ²Ø
ÒýÓòÎÊý£º
ÒýÓòÎÊýÓÃvar¹Ø¼ü×Ö±êʾ
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;ÔÚÕâÖÖÇé¿öÏ£¬²ÎÊý¼È°ÑÒ»¸öÖµ´«µÝ¸ø¹ý³Ì£¬ÓÖ°ÑÐÂÖµ·µ»Ø¸øµ÷Óùý³ÌµÄ´úÂë¡£µ±ÄãÖ´ÐÐÍêÒÔÏ´úÂëʱ£º
var
X: Integer;
begin
X : ......