Delphi¶àÏß³Ìѧϰ£¨11£©£º¶àÏß³ÌͼÐβÙ×÷
VCL¶ÔÏó²»ÊÇḬ̈߳²È«µÄ£¬¶øÇÒËüÃǵÄÊôÐԺͷ½·¨±ØÐëÒª´ÓVCLÖ÷Ïß³ÌÖнøÐзÃÎÊ»ò±»Ö´ÐУ¬µ«ÓÐÁ½ÖÖVCL¶ÔÏóÊÇÀýÍâµÄÇé¿ö£¬ËüÃÇÊÇḬ̈߳²È«µÄ¡£Ò»ÖÖÊÇÈκÎͼÐζÔÏó£¬ÁíÒ»ÖÖÊÇTThreadList¡£
ÕâÒâζ×Ų»±Ø·ÇµÃÔÚÖ÷VCLÏß³ÌÖвÅÄÜÉèÖÃÒ»¸ö»²¼µÄ»±ÊÑÕÉ«£¬»ò»Ë¢ÀàÐÍ£¬¿ÉÒÔÔÚÁíÒ»¸öÏ̵߳Ļ·¾³ÖÐÍê³ÉÒ»µã¡£¶ÔÓÚͼÐζÔÏó£¬Ê¹ÓÃLockºÍUnLock£¬¶ø¶ÔÓÚThreadList£¬ÔòʹÓÃLockListºÍUnLockList£¬ÕâЩ·½·¨µÄÐÐΪÀàËÆÓÚÁÙ½çÇø£¬ÔÚµ÷ÓÃËüÃǵÄʱºò»á×èÖ¹ÆäËûÏ̵߳ÄÖ´ÐС£ÒòΪLock»áÖжÏËùÓÐÏ̵߳ÄÖ´ÐУ¬ËùÒÔÈç¹ûʹÓò»ÕýÈ·µÄ»°£¬Ó¦ÓóÌÐòÐÔÄÜ»áÓкܴóϽµ¡£±ÈÈ磺
Form1.Canvas.Lock;
For i := 0 to 10000 do
begin
Form1.Canvas.TextOut(20,20,str);
end;
Form1.Canvas.UnLock;ÉÏÃæÕâ¸ö´úÂëÖУ¬LockºóÔÙÑ»·£¬ÔòÑ»·½á¹¹¹ýÓÚÓµ¼·£¬Ëø¶¨Ê±¼ä¹ý³¤¡£ËùÒÔÓ¦¸Ã½«LockÓëUnLock·ÅÔÚÑ»·ÀïÃæ¡£
ÏÂÃæµÄÀý×Ó£¬Í¨¹ý¶àÏ̶߳Դ°Ì廲¼½øÐлÏß¡£µã“¿ªÊ¼”²Ëµ¥´´½¨N¸öÏß³ÌͬʱÍù´°Ìå»Ïߣ¬µã“½áÊø”ͬʱÖÕÖ¹N¸öÏ̡߳£
{Ö÷´°Ìå´úÂë}
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, Menus;
type
TForm2 = class(TForm)
MainMenu1: TMainMenu;
S1: TMenuItem;
T1: TMenuItem;
procedure S1Click(Sender: TObject);
procedure T1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
List:TList;
implementation
uses DrawThread;
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
List:=TList.Create;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
List.Free;
end;
//“¿ªÊ¼”²Ëµ¥
procedure TForm2.S1Click(Sender: TObject);
var
value:string;
i: Integer;
begin
value:=InputBox('Ìáʾ','ÇëÊäÈëÐèÒª´´½¨¶àÉÙỊ̈߳º','3');
try
for i := 0 to StrToInt(value) - 1 do
List.Add(TDrawThread.create(self));
except
on e:Exception do
Ïà¹ØÎĵµ£º
¼¼Êõ½»Á÷,DH½²½â. ¼ÇµÃºÜÔç֮ǰÎÒ¾Í˵¹ý,Êý×éºÍ½á¹¹ÌåÔÚÄÚ´æÖÐÆäʵһÑùµÄ,ËûÃǶ¼ÊÇÁ¬Ðø·Ö²¼µÄ.
ÀýÈç: TMyStruct = record
A,B,C:Integer;
end;
T3IntArray = array[0..2]of Integer;
ÕâÁ½¸ö¶¼Õ¼12×Ö½Ú,¶øÇÒTMyStruct.A¾ÍÊÇT3IntArray[0].
¶øÎÒÃÇÖªµÀÔÚ·ÃÎÊÊý×éÖÐij¸öÔªËØµÄʱºò,Ö»ÊÇÔÚµ ......
TThreadÊÇÒ»¸ö³éÏóÀà,ÓÃÓÚÔÚdelphiÖд´½¨Ï̡߳£
´´½¨Ò»¸öTThreadµÄ×ÓÀà¶ÔÏó¼´Ï൱ÓÚ´´½¨Ò»¸öÏ̡߳£¡¡¡¡
µ±Ò»¸öÓ¦ÓóÌÐòÔËÐÐʱ£¬Ó¦ÓóÌÐò¾Í±»ÔØÈëÄÚ´æ×¼±¸Ö´ÐС£´Ëʱ£¬Ëü³ÉΪ°üº¬Ò»¸ö»ò¶à¸öÏ̵߳Ľø³Ì¡£Ïß³ÌÖ´ÐÐÓ¦ÓóÌÐòµÄ²¿·ÖÄÚÈÝ£¬²¢ÓɲÙ×÷ϵͳ·ÖÅäCPUʱ¼ä¡£Í¬Ò»½ø³ÌµÄËùÓÐÏ̹߳²ÏíͬһµØÖ·¿Õ¼ä£¬¿ÉÒÔ·ÃÎʽø³ÌµÄÈ«¾Ö±äÁ¿ ......
DelphiʹÓÃ×ÊÔ´ÎļþÈ«¹¥ÂÔ
ÔÚͨ³£Çé¿öÏÂʹÓÃdelphiÉè¼Æ³ÌÐò£¬¶¼Êǽ«×Ö·û´®¡¢Í¼ÏñµÈ×ÊÔ´Ö±½ÓʹÓÃdelphiÌṩµÄvcl¿Ø¼þ¼Óµ½*.dfmÖУ¬ÕâÑù×ö»áºÏÐÞ¸ÄÕâЩ×ÊԴʱ´øÀ´²»±ã£¬Èç¹û×ÊÔ´±»¶à´ÎÒýÓã¬ÕâЩ×ÊÔ´ÔÚ³ÌÐòÆô¶¯Ê±¶¼±»¼ÓÔØµ½ÄÚ´æÖУ¬·Ç³£ºÄ·Ñϵͳ×ÊÔ´¡£Òò´Ë£¬Õâ¾ÍÐèÒªÒ»ÖÖеÄÒýÓÃ×ÊÔ´µÄÎļþ£º×ÊÔ´Îļþ¡£×ÊÔ´ ......
ÔÚʹÓöàÏ̵߳Äʱºò£¬Èç¹û¶àÏ̶߳Ôij¸öÌØ¶¨µÄ¹«¹²Êý¾Ý»ò×ÊÔ´½øÐзÃÎÊ£¬ÐèÒª¶Ô¶àÏ߳̽øÐÐе÷²Ù×÷£¬½Ð×öÏß³Ìͬ²½¡£
ÀýÈ磺Èý¸öÏ̷ֱ߳ðÑ»·µØÏòListBoxÖÐдÈëÊý¾Ý¡£Ã»ÓнøÐÐͬ²½Ê±£¬Ð´ÈëµÄ˳ÐòÊDz»È·¶¨µÄ¡£
{Ö÷´°Ìå´úÂë}
unit Unit2;
interface
uses
Windows, Messages, SysUtils, V ......
ADO¶àÏß³ÌÊý¾Ý¿â²éѯͨ³£»á³öÏÖ3¸öÎÊÌ⣺
1¡¢CoInitialize ûÓе÷Óã¨CoInitialize was not called£©£»ËùÒÔ£¬ÔÚʹÓÃÈκÎdbGo¶ÔÏóǰ£¬±ØÐëÊÖ µ÷ÓÃCoInitializeºÍCoUninitialize¡£µ÷ÓÃCoInitializeʧ°Ü»á²úÉú"CoInitialize was not called"ÀýÍâ¡£
2¡¢»²¼²»ÔÊÐí»æ»£¨Canvas does not allow drawing£©£»ËùÒÔ£¬±ØÐëͨ¹ýSynch ......