Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

Как найти компонент на форме, зная его Top и Left?   Найти похожие ветки 

 
Delphi_Ghost   (2003-12-30 15:31) [0]

На форме много TSpeedButton"ов. И каждого разный Top и Left. Как
(и можно ли) создать ф-цию типа TSpeedButton, чтобы она вовращала TSpeedButton соответствующий переданоыйм её Top и Left.
Например:
GetElement( Top, Left : Integer ) : TSpeedButton


 
Dimman1 ©   (2003-12-30 15:40) [1]

пробегаешься по всем компанентам формы и ищеть с какой тебе надо, например:

for i:=0 to form1.controls.count-1 do
if (form1.controls[i] is TSpeedButton) then
if ((form1.controls[i] as TSpeedButton).Left=Left)and
((form1.controls[i] as TSpeedButton).Left=Left) then
begin
Result:=form1.controls[i];
exit;
end;

Не помню точно, то ли controls, то ли companents


 
Тимохов ©   (2003-12-30 15:43) [2]

for i:=0 to form1.controls.count-1 do
if (form1.controls[i] is TSpeedButton) then
if ((form1.controls[i] as TSpeedButton).Left=Left)and
((form1.controls[i] as TSpeedButton). Top=Top) then
begin
Result:=form1.controls[i];
exit;
end;

и надо пользоваться components


 
Dimman1 ©   (2003-12-30 15:44) [3]

ну не один ли фик, не в этом суть, с головы писал :)


 
Тимохов ©   (2003-12-30 15:58) [4]

В данной конкретной задаче можно и conrols, т.к. все кнопки лежат на форме.
Но вообще components правильнее, т.к. через components могут быть найдены и кнопки лежащие на панельках, например.


 
Бегемот   (2003-12-30 16:12) [5]

for i:=0 to form1.controls.count-1 do
if (form1.controls[i] is TSpeedButton) then
if ((form1.controls[i] as TSpeedButton).Left=Left)and
((form1.controls[i] as TSpeedButton).Top=Top) then
begin
Result:=form1. TSpeedButton(controls[i]);
exit;
end;
Cм условия задачи ;)


 
Dead   (2003-12-30 18:14) [6]

Спасибо, все работает (Правда не controls.count или components.count а просто: Form1.ComponentCount)


 
tchn ©   (2003-12-31 03:47) [7]

еще один метод идентификации компонентов - присваивать свойству tag каждому компоненту свое значение.
плохо, конечно, что эти значения нужно будет потом всегда помнить.. но хорошо, что можно нужный компонент быстро вычислить


 
Романов Р.В. ©   (2003-12-31 06:20) [8]

F1 - ControlAtPos



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
3-37534
denis24
2003-12-16 11:00
2004.01.13
AdoQuery.close


3-37573
Ozone
2003-12-11 12:33
2004.01.13
ADO + Access97


1-37736
serg128
2003-12-30 13:07
2004.01.13
Kak получить номер (индекс) выбранного узла в TTreeView?


1-37769
АМБ
2003-12-29 16:22
2004.01.13
TSimpleDataSet


4-37991
Dunmer
2003-11-10 11:31
2004.01.13
Как оптимизировать Ресолв ДНС