Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Delphi¶àÏß³Ìѧϰ£¨10£©£ºLabel(VCL)ͬ²½µÄÎÊÌâ

ÉÏÎÄÖУ¬¶àÏß³Ìͬ²½Ö÷´°ÌåµÄLabelµÄCaptionÊôÐÔÖµ£¬·¢ÏÖÒ»¸öÎÊÌ⣺ʹÓÃSynchronizeÓÃÓÚͬ²½µÄʱºò£¬Ö÷´°ÌåºÃÏñËÀµôÒ»Ñù£»¶øÖ±½ÓÓÃ×Ó³ÌÐòΪLabelµÄÒýÓø³Öµ£¬ÔòÓÐʱ»á³öÏÖ“Canvas  does not allow drawing”´íÎó¡£ÊéÉÏ˵VCLͬ²½Ò»¶¨ÒªÓÃSynchronize£¬¶ø²»ÄÜÖ±½Ó·ÃÎÊ¡£
    ²âÊÔ£º
{Ö÷´°Ìå}
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

uses TestThread;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
TTestThread.Create(Label1);
//TTestThread.Create(Label2);
//TTestThread.Create(Label3);
end;

end.{¶àÏß³ÌÀà}
unit TestThread;

interface

uses
Classes,StdCtrls;

type
TTestThread = class(TThread)
private
{ Private declarations }
FLabel:TLabel;
Fstr:string;
procedure UpdateLabel;
protected
procedure Execute; override;
public
constructor Create(Lab:TLabel);
end;

implementation

uses Unit2,SysUtils,windows;

{ TTestThread }

constructor TTestThread.Create(Lab: TLabel);
begin
FLabel:=Lab;
Inherited Create(False);
FreeOnTerminate:=True;
end;

procedure TTestThread.Execute;
var
i:Integer;
begin
{ Place thread code here }
for i := 0 to 20000 do
begin
if Not Terminated then
begin
Fstr:=Format('Ïß³ÌID£º%d,µÚ%d¸öÑ­»·',[GetCurrentThreadID,i]);
//UpdateLabel;
Synchronize(UpdateLabel);
end;
end;

end;

procedure TTestThread.UpdateLabel;
begin
FLabel.Caption:=Fstr;
end;

end.
¾­¹ý²âÊÔ£¬Ö»´´½¨Ò»¸öỊ̈߳¬ÓÃSynchronizeͬ²½Ö÷´°ÌåµÄÒ»¸öLabel£¬ÄÇô³ÌÐòÎÞÎÊÌ⣬¿ÉÒÔ¼ûµ½Í¬²½µÄ¹ý³Ì¡£µ±Í


Ïà¹ØÎĵµ£º

Delphi Êý×éºÍ½á¹¹Ìå

¼¼Êõ½»Á÷,DH½²½â. ¼ÇµÃºÜÔç֮ǰÎÒ¾Í˵¹ý,Êý×éºÍ½á¹¹ÌåÔÚÄÚ´æÖÐÆäʵһÑùµÄ,ËûÃǶ¼ÊÇÁ¬Ðø·Ö²¼µÄ.
ÀýÈç: TMyStruct = record
A,B,C:Integer;
end;
T3IntArray = array[0..2]of Integer;
ÕâÁ½¸ö¶¼Õ¼12×Ö½Ú,¶øÇÒTMyStruct.A¾ÍÊÇT3IntArray[0].

¶øÎÒÃÇÖªµÀÔÚ·ÃÎÊÊý×éÖÐij¸öÔªËØµÄʱºò,Ö»ÊÇÔÚµ ......

delphi ¿ì½Ý¼üµÄʹÓÃ

CTRL+SPACE ´úÂ벹ȫ£¬ºÜºÃÓõÄ(ÏȸÄÁËÊäÈë·¨Èȼü)
CTRL+SHIFT+C ±àдÉêÃ÷»òÕß²¹ÉϺ¯Êý
CTRL+SHIFT+↑(↓) ÔÚ¹ý³Ì¡¢º¯Êý¡¢Ê¼þÄÚ²¿, ¿ÉÌøÔ¾µ½ÏàÓ¦µÄ¹ý³Ì¡¢º¯Êý¡¢Ê¼þµÄ¶¨Ò壨ÔÚINTERFACEºÍIMPLEMENTATIONÖ®¼äÀ´»ØÇл»£©
CTRL+SHIFT+G ²åÈëGUID
CTRL+J (µ¯³öDELPHIÓï¾äÌáʾ´°¿Ú£¬Ñ¡ÔñËùÐèÓï¾ä½«×Ô¶¯Íê³ÉÒ»Ìõ ......

Delphi¶àÏß³Ìѧϰ£¨4£©£ºÁÙ½çÇø

 ÁÙ½çÇøÊÇÒ»¶Î´úÂ룬һ´ÎÖ»ÔÊÐíÒ»¸öÏß³ÌÖ´ÐÐÕâ¶Î´úÂë¡£µ±°ÑÒ»¶Î´úÂë·ÅÈëÒ»¸öÁÙ½çÇø, Ïß³ÌÖ´Ðе½ÁÙ½çÇøÊ±¾Í¶ÀÕ¼ÁË, ÆäËûÏß³ÌÈç¹ûÒª·ÃÎÊÕâ¶Î´úÂ룬һ¶¨ÒªµÈǰһ¸ö·ÃÎʵÄÏ߳̽áÊø²ÅÐС£½èÓÃÇ°ÃæµÄ±ÈÓ÷±È×÷ͼÊé¹Ý£¬ÁÙ½çÇø¾ÍÏñ°ÑͼÊé¹ÝÉè¼Æ³ÉÖ»ÓÐÒ»¸öλÖã¨ÏÖʵÖкÃÏñ²»Ì«ºÏÀí£¬²»¹ÜÁË£¬·´ÕýÕâô¸öÒâ˼£©£¬µ±ÓÐÒ»¸öÈËÕýÔÚ°ì ......

Delphi¶àÏß³Ìѧϰ£¨6£©£ºÐźÅÁ¿Semaphore

ÐźÅÁ¿Êǽ¨Á¢ÔÚ»¥³âÁ¿µÄ»ù´¡Ö®ÉÏ£¬Í¬Ê±¼ÓÈëÖØÒªÌØÐÔ£ºÌṩÁË×ÊÔ´¼ÆÊý¹¦ÄÜ£¬Òò´ËÔ¤¶¨ÒåÊýÁ¿µÄÏß³Ìͬʱ¿ÉÒÔ½øÈëͬ²½µÄ´úÂë¿éÖС£
      ÐźÅÁ¿ÊÇά»¤0µ½Ö¸¶¨×î´óÖµÖ®¼äµÄ¼ÆÊýÆ÷µÄͬ²½¶ÔÏ󣬵±Ïß³ÌÍê³ÉÒ»´ÎÐźÅÁ¿µÄµÈ´ýʱ£¬¼ÆÊýÆ÷×Ô¼õ1£¬µ±Ïß³ÌÊÍ·ÅÐźÅÁ¿¶ÔÏóʱ£¬¼ÆÊýÆ÷×ÔÔö1¡£
    ......

Delphi¶àÏß³Ìѧϰ£¨7£©£ºÊ¼þEvent

EventʼþÓ÷¨ÓëMutex²î²»¶à£¬µ«Ëü¿ÉÒÔʹÓãºSetEvent£¨Æô¶¯ÔËÐУ©ResetEvent£¨ÔÝÍ£ÔËÐУ©¡¢PulseEvent£¨Ö´ÐÐÒ»´ÎºóÁ¢¼´ÔÝÍ££©¡£
       ÏÈ¿´Ò»Ï´´½¨º¯Êý£ºCreateEvent(
                   ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ