Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.55 MB
Время: 0.032 c
1-1097213654
NeyroSpace
2004-10-08 09:34
2004.10.24
Пару вопросов по VirtualStringTree и VirtualDrawTree


1-1097174259
RedDragon
2004-10-07 22:37
2004.10.24
Как проверить папку на наличие файл с определённым именем........


14-1097133970
Aleksey V.P.
2004-10-07 11:26
2004.10.24
Глюк или я тормоз?


4-1095850093
Laymer
2004-09-22 14:48
2004.10.24
Аутентификация пользователей


1-1097130242
serg!
2004-10-07 10:24
2004.10.24
Длина строки в RxRichEdit