的數組這是我的全部代碼:德爾福:TImage中
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Images: array[0..29,0..39] of TImage; //array
implementation
{$R *.dfm}
//form create
procedure TForm1.FormCreate(Sender: TObject);
var xx,yy: Integer; //local variables
begin
for xx:=0 to 29 do
for yy:=0 to 39 do
begin
Images[xx,yy]:=Timage.Create(Form1);
Images[xx,yy].Canvas.Rectangle(0,0,17,17);
Images[xx,yy].Left:=xx*16;
Images[xx,yy].Top:=yy*16;
end;
end;
end.
,我總是得到錯誤:「項目PROJECT1.EXE已經引發的異常類EClassNotFound與消息‘未找到的TImage’過程停止使用步驟或運行繼續「
我已經嘗試過其他的代碼在互聯網上像:
Delphi: TImage.Create causes Access violation
http://www.delphi-central.com/tutorials/memory_game_2.aspx
沒有什麼幫助!這是爲什麼發生?
謝謝。
當您創建圖像,使用'TImage.Create(個體經營)'。切勿使用表單變量作爲參考。 – 2012-04-26 08:01:13
@TLama,假設你是從程序與TForm1'的'一個局部變量創建表單。會發生什麼 ?圖像將綁定到全局Form1參數,這不是一個好習慣。其實很糟糕。 Images var應該在表單類中聲明。 – 2012-04-26 08:43:07
@TLama的另一個問題是,如果您在飛行(代碼)創建TForm1'的'一個實例,並將其分配給不同名稱的變量,你就麻煩了。例如:'var TheForm:TForm1; begin TheForm:= TForm1.Create(nil);嘗試TheForm.ShowModal;最後TheForm.Free;結束;'。如果在構建'TheForm'的時候,如果還沒有創建「Form1」的實例,則會得到一個AV。總是使用'Self',它會引用對象**的**當前實例。 – 2012-04-26 12:36:36