Текущий архив: 2004.10.24;
Скачать: CL | DM;
Внизсоздать кнопку (на форме) во время работы программы Найти похожие ветки
← →
456 (2004-10-06 11:55) [0]Вот никогда не было необходимости, а теперь есть: надо на форме на этапе работы программы создать столько кнопок, сколько указано в файле конфигурации. Подскажите, как сделать (если можно, код и раздел описаний). Заранее спасибо.
← →
begin...end © (2004-10-06 11:56) [1]TButton.Create(...)
← →
456 (2004-10-06 12:05) [2][Error]Unit1.pas(36):Undeclared identifier: "TButton"
как описать-то? мне ведь не нужны эти кнопки в design-time
← →
begin...end © (2004-10-06 12:06) [3]var
Button: TButton;
begin
button := TButton.Create(...)
end.
← →
TUser © (2004-10-06 12:07) [4]TButton, F1 выдаст тебе, в каком модуле он описан.
← →
Jay (2004-10-06 12:12) [5]procedure button_create;
begin
TButton.Create(Self).Name := "Button1";
with TButton(FindComponent(Button1)) do
begin
Left := 10;
Top := 20;
Parent := self
end
end;
← →
Jay (2004-10-06 12:13) [6]Удалено модератором
← →
begin...end © (2004-10-06 12:16) [7]
> [5] Jay (06.10.04 12:12)
Сначала создаём; потом то, что только что создали, ищем... Это зачем так?
← →
Jay (2004-10-06 12:17) [8]Чтобы сделать с ним что-либо :)
← →
Плохиш © (2004-10-06 12:20) [9]
> Jay (06.10.04 12:17) [8]
А переменную использовать религия не позволяет?
← →
456 (2004-10-06 12:23) [10]БОЛЬШОЕ СПАСИБО!!!!!!!!!!!!!!
← →
Jay (2004-10-06 12:24) [11]А если не знаешь заранее, как будет кнопка называться (например создаешь в цикле)?
← →
Мастер © (2004-10-06 12:25) [12]>Плохиш © (06.10.04 12:20) [9]
А переменную использовать религия не позволяет?
А зачем создавать глобальную переменную ради динамически создаваемых объектов?
← →
Плохиш © (2004-10-06 12:26) [13]
> Jay (06.10.04 12:24) [11]
> А если не знаешь заранее, как будет кнопка называться (например
> создаешь в цикле)?
Ээээ, можно ешё раз по-медленней?
← →
Плохиш © (2004-10-06 12:27) [14]
> Мастер © (06.10.04 12:25) [12]
Глобальную? 8-O
← →
Мастер © (2004-10-06 12:28) [15]>Плохиш © (06.10.04 12:27) [14]
Глобальную? 8-O
А как ты предлагаешь обращаться к кнопке из других мест программы?
← →
Jay (2004-10-06 12:29) [16]Создаешь кнопки допустим в цикле, и имя у нее соответственно Button + IntToStr(i).
← →
456 (2004-10-06 12:33) [17]Да-да, всё так и есть, как Jay говорит
← →
Плохиш © (2004-10-06 12:34) [18]
> Мастер © (06.10.04 12:28) [15]
Вы потеряли нить разговора :-(
> Jay (06.10.04 12:29) [16]
И что?
← →
Gero © (2004-10-06 12:38) [19]
> procedure button_create;
> begin
> TButton.Create(Self).Name := "Button1";
> with TButton(FindComponent(Button1)) do
> begin
> Left := 10;
> Top := 20;
> Parent := self
> end
> end;
А что такое self?
← →
Gero © (2004-10-06 12:39) [20]
> with TButton(FindComponent(Button1)) do
И что такое Button1?
← →
begin...end © (2004-10-06 12:40) [21]
> А что такое self?
Глобальная переменная, видать ;-)
← →
Плохиш © (2004-10-06 12:41) [22]
> Gero
Фи, дотошный ;-)
← →
Gero © (2004-10-06 12:43) [23]
> Плохиш © (06.10.04 12:41)
Угу, я такой.
← →
Jay (2004-10-06 12:43) [24]> Gero
Спросил-бы ещё что такое Delphi
← →
Gero © (2004-10-06 12:48) [25]
> Jay (06.10.04 12:43)
LOL
P.S.
Ответь мне на [19] и [20].
P.P.S. А что такое Delphi?
← →
Плохиш © (2004-10-06 12:52) [26]Пора бы ветку или в потрепаться, или закрыть
← →
Jay (2004-10-06 12:57) [27]Self говорит что родительский объект у кнопки она-же, а Button1 - это name объекта, который ищем, в данном случае кнопки :)
← →
Gero © (2004-10-06 13:03) [28]
> Self говорит что родительский объект у кнопки она-же
Бред сивой кобылы.
Вобщем сам набери и попытайся скомпилировать то, что написал.
← →
Anatoly Podgoretsky © (2004-10-06 13:08) [29]Jay (06.10.04 12:57) [27]
А какой "родительский" объект у ординарной процедуры?
← →
Мастер © (2004-10-06 13:13) [30]1.
>Плохиш © (06.10.04 12:34) [18]
Вы потеряли нить разговора :-(
ты не ответил на Мастер © (06.10.04 12:28) [15]
← →
456 (2004-10-06 13:13) [31]что такое ординарная процедура?
← →
Anatoly Podgoretsky © (2004-10-06 13:19) [32]Это когда не метод класса.
← →
Мастер © (2004-10-06 13:19) [33]Gero © (06.10.04 13:03) [28]
Вобщем сам набери и попытайся скомпилировать то, что написал.
Вот этот код рабочий на 100%.
Здесь нет бреда.
var
i: Integer;
const
NamePrefix = "MyEdit";
begin
for i := 1 to 20 do begin
TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
end;
>Jay
У тебя неправильно перенесен в функцию пример из Help.
← →
Gero © (2004-10-06 13:23) [34]
Мастер © (06.10.04 13:19)
> Вот этот код рабочий на 100%.
> Здесь нет бреда.
Охотно верю.
Только:
1. Что такое Self в твоем примере?
2. Вызывать в цикле FindComponent это круто?
← →
456 (2004-10-06 13:24) [35]>Мастер
У меня всё так же
← →
Плохиш © (2004-10-06 13:30) [36]
> Мастер © (06.10.04 13:13) [30]
> 1.
> >Плохиш © (06.10.04 12:34) [18]
>
> Вы потеряли нить разговора :-(
> ты не ответил на Мастер © (06.10.04 12:28) [15]
Отвечаю: В этой ветке не обсуждается обращение к созданным кнопкам из других частей программы, а осуждается только создание этих кнопок.
← →
Плохиш © (2004-10-06 13:31) [37]
> Плохиш © (06.10.04 13:30) [36]
Хм, осуждается = обсуждается
← →
Мастер © (2004-10-06 13:43) [38]>Gero © (06.10.04 13:23) [34]
1. Что такое Self в твоем примере?
Self - владелец кнопки, которая была нажата.
2. Вызывать в цикле FindComponent это круто?
Это супер-круто.
Здесь демагоию разводим или как?
Ясно, что это тпример из хелпа без проблем преобразуется вvar
i: Integer;
const
NamePrefix = "MyEdit";
begin
for i := 1 to 20 do begin
with TEdit.Create(Self) do
begin
Name := NamePrefix + IntToStr(i);
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
>Плохиш © (06.10.04 13:30) [36]
Отвечаю: В этой ветке не обсуждается обращение к созданным кнопкам из других частей программы, а осуждается только создание этих кнопок.
Интересно, для чего тогда создаются эти кнопки, как не для того, чтобы обращаться к ним?
← →
Anatoly Podgoretsky © (2004-10-06 13:44) [39]Мастер © (06.10.04 13:19) [33]
Говоришь нет бреда.
← →
Мастер © (2004-10-06 13:46) [40]>Anatoly Podgoretsky © (06.10.04 13:44) [39]
Мастер © (06.10.04 13:19) [33]
Говоришь нет бреда.
Конечно, нет.
Неоптимальный код всего лишь.
Страницы: 1 2 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.042 c