2
A
回答
4
不幸的是,由於TGridPanel的魔力,它比剛開上和左屬性更復雜一點......
這應該這樣做的任何操作,使其適應您的需求:
procedure GetRowColumn(const AControl: TControl; var ARow, AColumn: Integer);
var
I: Integer;
begin
if AControl.Parent is TGridPanel then
begin
I := TGridPanel(AControl.Parent).ControlCollection.IndexOf(AControl);
if I > -1 then
begin
ARow := TGridPanel(AControl.Parent).ControlCollection[I].Row;
AColumn := TGridPanel(AControl.Parent).ControlCollection[I].Column;
end;
end;
end;
procedure TForm1.ButtonClick(Sender: TObject);
var
Row, Column : Integer;
begin
GetRowColumn(Sender as TControl, Row, Column);
// do something with Row and Column
ShowMessage(Format('row=%d - col=%d',[Row, Column]));
end;
0
您可以使用發件人投作爲一個TButton,然後請它替其頂部和左側例如:
Procedure TForm1.OnClick(Sender:tObject);
var
X,Y : Integer;
begin
if Sender is TButton then
begin
X := TButton(Sender).Top;
Y := TButton(Sender).Left;
// do something with X & Y
end;
end;
或者,如果你只是想知道是什麼按鈕,您也可以使用TAG屬性在每個按鈕中插入一個數字,然後在onclick事件中檢索標籤值。只要記住首先將Tag屬性設置爲某個東西。如果您只是將按鈕放入網格面板或用於創建並插入按鈕的例程中,您可以在表單設計器中執行此操作。
Procedure TForm1.OnClick(Sender:tObject);
var
iButton : integer;
begin
if Sender is TComponent then
begin
iButton := TComponent(Sender).Tag;
// do something with iButton
end;
end;
您還可以使用標籤屬性來存儲不僅僅是一個整數更多,因爲一個指針目前使用相同的內存大小爲整數,你可以投一個指向整數,將該值插入標籤屬性。請注意,您在此字段中放置的任何指針仍被視爲整數。你對它指向的內存負責,它不會被組件管理。
相關問題
- 1. 在用戶控件中查找位置
- 2. 在網頁瀏覽器控件中查找控件的位置
- 3. 在C++中找到控件的位置
- 4. 在Chrome中查找文件的位置
- 5. 快速查找文件中的位置
- 6. 在佔位符中查找控件
- 7. 獲取TGridPanel中單擊的控件的列索引
- 8. 查找位置
- 9. 查找位置
- 10. 在java.io.FileNotFoundException中查找文件位置
- 11. 從api查找傳單和搜索控件的位置
- 12. 查找組件的x,y位置
- 13. 查找當前文件的位置
- 14. 查找.csr文件的位置
- 15. 查找程序/文件的位置Python
- 16. 查找位號碼位置
- 17. 查找位置 - PHP
- 18. 查找web.config位置
- 19. 查找手機的位置
- 20. 查找附近的位置
- 21. 查找設備的位置
- 22. mysql查找行的位置
- 23. 的XPath查找位置
- 24. 在angularJS2項目中放置/查找systemjs.config.js文件的位置?
- 25. 找到在GridView中點擊的控件的位置(WPF)
- 26. phpMyAdmin在哪個文件位置查找?
- 27. 查找Eclipse項目文件位置
- 28. 查找STRtree中的最近位置
- 29. 從java中查找oracle_home的位置
- 30. 使用pygame查找中心的位置
對於普通的TPanel來說不錯,但是沒有解決TGridPanel的具體問題,在這裏嵌入式控件有一個Row和Column屬性來代替Top和Left。 (如在對象檢查器中) – 2009-09-10 17:40:24