Главная страница
    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.45 MB
Время: 0.008 c
14-37853
Ozone
2003-12-23 05:40
2004.01.13
Оформление программ


1-37765
Оки
2003-12-29 16:23
2004.01.13
Как отправить на выполнение txt


14-37868
Maga MS
2003-12-21 18:57
2004.01.13
Папка-ярлык или феномен


4-37990
Ranger
2003-11-10 18:33
2004.01.13
Создание диалога


3-37533
User_OKA
2003-12-16 10:33
2004.01.13
Триггер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский