Главная страница
    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]
Говоришь нет бреда.


Конечно, нет.
Неоптимальный код всего лишь.


 
Anatoly Podgoretsky ©   (2004-10-06 13:52) [41]

Мастер ©   (06.10.04 13:46) [40]
Тут вообще нет предмета обсуждения, пока не будут приведены строчка/и перед var

Мастер ©   (06.10.04 13:43) [38]
Интересно, для чего тогда создаются эти кнопки, как не для того, чтобы обращаться к ним?

Ты не представляешь, но кнопки могут работать и без обращения к ним, есть такае штуки как Default, Cancel, ModalResult


 
Мастер ©   (2004-10-06 13:54) [42]

>Anatoly Podgoretsky ©   (06.10.04 13:52) [41]
Тут вообще нет предмета обсуждения, пока не будут приведены строчка/и перед var

Пожалуйста, я в Мастер ©   (06.10.04 13:43) [38]
написал, что здесь есть Self -

procedure TForm1.Button2Click(Sender: TObject);


 
456   (2004-10-06 13:58) [43]

Удалено модератором
Примечание: Offtopic


 
Мастер ©   (2004-10-06 14:01) [44]

Удалено модератором
Примечание: Offtopic


 
Gero ©   (2004-10-06 14:28) [45]


> Интересно, для чего тогда создаются эти кнопки, как не для
> того, чтобы обращаться к ним?

Например, чтобы юзер на них нажимал.


 
Jay   (2004-10-06 14:46) [46]

Ну нажал ты на созданную кнопку и что, получил удовольствие, надо-же еще как-то её оформить, прописать что-бы она что-то делала :)


 
Gero ©   (2004-10-06 15:33) [47]


> Jay   (06.10.04 14:46)

Ну и что?



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

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

Наверх





Память: 0.56 MB
Время: 0.038 c
14-1097074167
Knight
2004-10-06 18:49
2004.10.24
Вопрос к москвичам... у которых даже Мегафон не как у всех...


8-1091106607
DimKa
2004-07-29 17:10
2004.10.24
Метаданные Jpeg


14-1096798972
Jdmh
2004-10-03 14:22
2004.10.24
нужна небольшая утилита, в обмен на музыку


1-1097500696
XYZ
2004-10-11 17:18
2004.10.24
MDIChild - формы


4-1095577813
SergP.
2004-09-19 11:10
2004.10.24
Как в Delphi обработать аппаратное прерывание?





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