Главная страница
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.019 c
3-37514
Apolon
2003-12-16 20:02
2004.01.13
Table1.Modified при закрытии окна?


6-37836
Max_212_max
2003-11-11 23:41
2004.01.13
Вопрос по TcpClient1 ......


14-37933
KDS
2003-12-20 15:30
2004.01.13
Стоит ли переходить D6->D7 Ваше мнение.


1-37629
Pa5ha
2003-12-26 23:26
2004.01.13
Почему окно вспыхивает? :)


6-37822
DNT
2003-11-12 11:33
2004.01.13
Слишком много коннектов...