Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Вниз

tag   Найти похожие ветки 

 
Glonia Zbanov   (2002-03-27 10:44) [0]

Как через tag обратится к нескольким компонентам - скажем у части меню и кнопок поменять enable на false


 
kull   (2002-03-27 10:51) [1]

Не понял. Переведи...


 
Glonia Zbanov   (2002-03-27 10:55) [2]

Могу я при запуске программы сказать менюитема с tag=3 enable=false
но не перечислять их поочереди а сразу ко всем.


 
kull   (2002-03-27 11:17) [3]

Нет, мне кажется, это из области фантастики.
Прийдется все таки перебрать нужные пункты.


 
PVOzerski   (2002-03-27 11:33) [4]

Можно сделать другое:
Поскольку в Delphi32 tag 4-байтовый, как и pointer, можно через него организовать связанный список
тех же MenuItems.
В FormCreate делаем что-то типа

MenuItem1.tag:=longint(MenuItem2);
MenuItem2.tag:=longint(MenuItem3);

и т.д.,
а потом по рекурсии:

procedure Form1.MenuItem1Click(Sender:tObject);
begin
if Sender is tMenuItem then
with tMenuItem(Sender)do
begin
Enabled:=not Enabled;
if Tag<>0 then
MenuItem1Click(tObject(Tag));
end;
end;

Не проверял, но, IMHO, должно сработать.


 
reonid   (2002-03-27 11:39) [5]

for i := 0 to {MainForm.}ComponentCount-1 do
begin
if (Components[i] is TMenuItem) and (Components[i].Tag = 3) then
TMenuItem(Components[i]).Enabled := False;
end;


 
PVOzerski   (2002-03-27 11:45) [6]

2reonid:
А у меня быстрее работать будет :^). Особенно, если компонентов на форме много. Тогда уж надо
считать, сколько MenuItem"ов нашли и вовремя break делать...


 
reonid   (2002-03-27 12:05) [7]

2PVOzerski
Зато у меня проще :)
Хотя, если там будет порядка нескольких сотен тысяч компонент,
думаю, будет тормозить :)



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

Форум: "Основная";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
7-22869
АндрейФ.
2002-01-10 18:40
2002.04.08
Чтение секторов на дисках


4-22881
AlexanderS
2002-01-22 15:45
2002.04.08
Как получить selected text


1-22662
ruslan_as
2002-03-28 11:19
2002.04.08
просуммировать ClientDataSet


1-22663
snoup
2002-03-28 10:50
2002.04.08
А как сделать так что бы например когда я запускаю таймер сек. ме


14-22809
Sergo
2002-02-27 12:23
2002.04.08
Описание звукашки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский