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

Вниз

создать кнопку (на форме) во время работы программы   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.035 c
1-1097212070
Merlot
2004-10-08 09:07
2004.10.24
Разграничения прав пользователей


1-1097165028
Cosinus
2004-10-07 20:03
2004.10.24
Возможно ли в одном StringGrid сделать множественное выделение?


1-1097587244
aleshap
2004-10-12 17:20
2004.10.24
Панель задач


14-1096435740
cyborg
2004-09-29 09:29
2004.10.24
Хотят ввести цензуру на ТВ


14-1096917021
Piter
2004-10-04 23:10
2004.10.24
Кто-нибудь сможет сходу определить причину ошибки? :)





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