Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизForm1.Button1.Capton:=mas Найти похожие ветки [i]
← →
AlexZ_CRC © (2004-05-14 18:24) [0]Приветствую!
Что-то незнаю, как автоматизировать,например такое:
---------------CUT-------------
Form1.Button1.Caption:=mas[i];
Form1.Button2.Caption:=mas[i+1];
Form1.Button3.Caption:=mas[i+2];
etc.
Т.е. нужно чтобы типа Form1.Button[i]:=mas[i]; было... Извиняюсь за такое представление примера, но я не сильно разбираюсь.
Если кто-нить понял, что нужно, плз, объясните.
← →
miwa © (2004-05-14 18:55) [1]Есть статья на "Королевстве дельфи" - "Жизнь и смерть в режиме ран-тайм" - может она что поможет.
Я же с ходу разве что могу посоветовать сделать что-то вродеfor i:=0 to form1.ComponentCount do
if form1.Components[i] is TButton then
(form1.Components[i] is TButton).Caption:=mas[какое-то]
Может, ты точнее вопросс сформулируй. Что есть? Что надо?
← →
Mihey © (2004-05-14 19:07) [2]По форуму ищи, была такая ветка.
← →
TUser © (2004-05-14 22:11) [3][1] или динамически создавать массив Баттонов.
← →
Goida © (2004-05-14 22:52) [4]Или создать массив Баттонов. Каждому элементу массива присвоить существующий. И потом так, как ты хотел:
arrButtons[i].Caption := mas[i];
← →
student2 (2004-05-14 23:42) [5]Енто то ж варьянт
for i:=1 to n do
for j:=1 to n do
begin
b[i,j]:=TBitBtn.Create(self);
b[i,j].parent:=self;
b[i,j].Width:=s;
b[i,j].Height:=s;
b[i,j].Top:=i*s;
b[i,j].Left:=j*s;
b[i,j].OnClick:=myclick;
end;
← →
GuAV (2004-05-14 23:47) [6]я когда-то применял [1] для заполнения
массива из кнопок (вызов из TMyForm.Create)
какое-то = (form1.Components[i] is TButton).Tag
- проставляется в дезайнтайме
← →
GuAV (2004-05-14 23:53) [7]>GuAV (14.05.04 23:47) [6]
Вот и кусок кода (у меня не кнопки а фреймы):
procedure TMainForm.FrmEnum;
var I: Integer; C: TControl;
begin
for I:=0 to Pred(ControlCount) do
begin
C:=Controls[I];
if C is TFrmNum then
FrmNum[C.Tag]:=TFrmNum(C);
end;
end;
← →
Goida © (2004-05-14 23:58) [8]
> form1.Components[i] is TButton
Вам не кажется что это долго? Там ведь есть и не Баттоны...
← →
Style © (2004-05-15 00:19) [9]>>> Вам не кажется что это долго? Там ведь есть и не Баттоны...
Это что бы без Баттонов :))
type
TXControl = class TControl;
for i:=0 to form1.ComponentCount do
if form1.Components[i] is TControl then
TXControl(form1.Components[i]).Caption := mas[какое-то];
← →
GuAV (2004-05-15 00:22) [10]
> Вам не кажется что это долго? Там ведь есть и не Баттоны...
[7] - долго но один раз. а потом читаем из массива - быстро-быстро.
← →
GuAV (2004-05-15 00:26) [11]
> Там ведь есть и не Баттоны...
Ну тогда в if другое условия.
например, (... is TButton) or (... is TSpeedButton).
Или тот же Tag у остальных = 0.
← →
Style © (2004-05-15 00:32) [12]
> Ну тогда в if другое условия.
> например, (... is TButton) or (... is TSpeedButton).
> Или тот же Tag у остальных = 0.
Посмотрите Style © (15.05.04 00:19) [9]
не нужны эти проверки многочисленные (... is TButton) or (... is TSpeedButton).. Достаточно получить Protected свойства у TControl; Унаследовав их в класс TXControl;
← →
GuAV (2004-05-15 00:53) [13]> Style © (15.05.04 00:32) [12]
Я не так понял задачу. Я посчитал, что проверка нужна для выявления элементов подлежащих замене. Т. е. у кнопки меняем, у Label"a не трогаем.
Для доступа к Caption - Style © (15.05.04 00:19) [9] - согласен.
← →
AlexZ_CRC © (2004-05-15 13:05) [14]Спасибо за ответы.
Дело в том, что я пишу autorun.exe(с TabControl"ом) полностью настраиваемый из ини-файла. Текст на Баттонах берётся из того-же файла. Т.е. если для Button3 нету описания, то он невидим. И избежать такое хочу:
//здесь были всякие другие команды
Form1.Baner.Caption:=ini.ReadString(page,"baner","");
Form1.PDJButton1.Caption:=ini.ReadString(page,"1Caption","");
if ini.ReadString(page,"1Caption","")<>"" then Form1.PDJButton1.Visible:=true;
Form1.PDJButton2.Caption:=ini.ReadString(page,"2Caption","");
if ini.ReadString(page,"2Caption","")<>"" then Form1.PDJButton2.Visible:=true;
Ini.free;
Один раз скомпилил - и пользуйся на здоровье! Удобство.
Скоро начну думать, как сделать чтоб при нажатии на Кнопку исполнялась строка(прочтённая из файла) для этой кнопки.
Вот это уже будет жестоко...
← →
AlexZ_CRC © (2004-05-15 13:14) [15]т.е. то, что в этой строке написано. Типа что-то вроде ShellExecute "\Posts\TheBee.zip" . Будет трудно, но что-нить придумаю, надеюсь.
← →
evvcom © (2004-05-15 15:37) [16]
> Дело в том, что я пишу autorun.exe(с TabControl"ом)
И что? Вы эти баттоны в design-time кладете на форму? А потом есть описание - баттон остается видимым, нет - скрываете? Если так, то это неправильный подход. Мне для данной задачи куча баттонов вообще не нравится, но это на любителя. Все эти кнопки надо создавать динамически и сразу класть в массив. И не нужны будут никакие потомки от TControl, и никакие проверки и циклы до form1.ComponentCount - 1. И Parent-ом кнопок делать какой-нить компонент со скроллингом.
← →
GuAV (2004-05-15 17:35) [17]
> Дело в том, что я пишу autorun.exe(с TabControl"ом)
:-)
Ух ты а у меня уже есть такой, только
без TabControl"а. Тебе на мыло иль как?
PS: Рекомедую TSpeedButton прозрачный, а под ним картинку. Клёво смотристя. и создавать только динамически [5].
← →
AlexZ_CRC © (2004-05-17 06:58) [18]>>А потом есть описание - баттон остается видимым, нет - скрываете? Если так, то это неправильный подход.
Что-то я не понял в чём проблема. Дело в том, что этот авторан я для себя пишу, или для тех, кому понравится, но никак НЕ в КОММЕРЧЕСКИХ целях...
2GuAV
Если не трудно, на мыло плз.
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.061 c