2013-03-28 54 views
0

我需要創建多個編輯組件,但我遇到了1個問題。 我需要將寬度和高度設置爲一個固定值。 問題是,我不能改變身高,當我這樣做時根本沒有改變。 奇怪的是,當我改變寬度它完美的作品(所有的編輯都有我在這個函數中設置的寬度值)。Delphi動態創建多個編輯組件

這是我的該功能的代碼:

procedure Tform1.editcreate; 

var i,j: integer; 
    sud: array [1..9,1..9] of TEdit; 

begin 
for i:=1 to 9 do 
for j:=1 to 9 do begin 
    sud[i][j]:=TEdit.Create(form1); 
    sud[i][j].Height:=50; 
    sud[i][j].Width:=50; 
    sud[i][j].top:=50*i; 
    sud[i][j].left:=50*j; 
    sud[i][j].Parent:=form1; 
    end; 
end; 
+2

僅供參考您應該將「form1」替換爲「self」; o) –

+2

您應該對新窗體執行的第一件事是刪除全局窗體變量。那就不可能犯這個錯誤。 –

+1

你確實意識到你發佈的代碼沒有意義,對吧? 'sud'數組在程序'editCreate'中是局部的,所以在程序的最後'end;'它會超出範圍並且不再存在。這意味着數組的整個聲明以及編輯的添加不過是浪費代碼行而已。 (我也試圖不使用相同表單上的* 81編輯控件創建的用戶界面) –

回答

2

默認情況下,一個單一的行編輯控件的高度由字體規格自動確定。所以,如果你想你的編輯要大一些,或者:

  1. 請其字體較大,或
  2. 設置AutoSizeFalse

我認爲編輯控制AutoSize設置爲False將看起來很奇怪,由於額外的未使用的垂直空間。我不認爲我曾經使用過,甚至沒有見過這樣配置的編輯控件。