Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Динамическое создание объекта   Найти похожие ветки 

 
Брат   (2004-11-29 12:43) [0]

Подскажите пожалуйста, как создать объект, к примеру кнопку, не объявляю при этом переменную TButton?


 
Ega23 ©   (2004-11-29 12:46) [1]

function ShowMessagesString(const aMessage:String; aCaption:String="";
                           FormWidth:Integer=750; FormHeight:Integer=500):Boolean;
var
aForm:TForm;
begin
Result:=False;
try
 Application.CreateForm(TForm, aForm);
 try
  With aForm do
   begin
    Caption:=aCaption;
    BorderStyle:=bsDialog;
    Height:=FormHeight;
    Width:=FormWidth;
    Position:=poScreenCenter;
   end;
  With TMemo.Create(aForm) do
   begin
    Parent:=aForm;
    Font.Name:="Courier New";
    Name:="memSQLLogMonitor";
    Align:=alTop;
    ScrollBars:=ssBoth;
    WantReturns:=False;
    Height:=aForm.ClientHeight-40;
    Clear;
    Lines.Text:=aMessage;
   end;
  With TButton.Create(aForm) do
   begin
    Parent:=aForm;
    Cancel:=True;
    Height:=25;
    Width:=100;
    Font.Size:=10;
    Top:=aForm.ClientHeight-30;
    Left:=aForm.ClientWidth-110;
    Caption:="Закрыть";
    ModalResult:=mrCancel;
   end;
  aForm.ShowModal;
 finally
  aForm.Free;
 end;
except on E:Exception do
 raise Exception.Create("ShowMessagesString "+E.Message);
end;
end;



 
Брат   (2004-11-29 13:35) [2]


> With TButton.Create(aForm) do
>    begin
>     Parent:=aForm;
>     Cancel:=True;
>     Height:=25;
>     Width:=100;
>     Font.Size:=10;
>     Top:=aForm.ClientHeight-30;
>     Left:=aForm.ClientWidth-110;
>     Caption:="Закрыть";
>     ModalResult:=mrCancel;
>    end;

а как к этой кнопке в дальнейшем обратиться по имени?


 
begin...end ©   (2004-11-29 13:42) [3]

> [2] Брат   (29.11.04 13:35)

> а как к этой кнопке в дальнейшем обратиться по имени?

Найти её c помощью aForm.FindComponent, только при создании нужно указать ей имя.


 
Ega23 ©   (2004-11-29 13:48) [4]

А что тебе мешает в var ещё и btn:TButton добавить??? Это же всего лишь указатель?


 
Брат   (2004-11-29 13:50) [5]

Понял спасибо :)


 
Брат   (2004-11-29 13:55) [6]


> Ega23 ©   (29.11.04 13:48) [4]
> А что тебе мешает в var ещё и btn:TButton добавить??? Это
> же всего лишь указатель?

дело в том что я незнаю сколько у меня будет таких компонентов - может быть один а может быть и сто
не хочется объявлять сто переменных TButton :(


 
Ega23 ©   (2004-11-29 14:02) [7]

А, ну тогда давай кнопке имя. Или Tag свойство используй, по integer"у быстрее искать будет, чем по String


 
KSergey ©   (2004-11-29 14:03) [8]

> [6] Брат   (29.11.04 13:55)
> дело в том что я незнаю сколько у меня будет таких компонентов
> - может быть один а может быть и сто
> не хочется объявлять сто переменных TButton :(

Оборжаться.
А грузить процессор FindComponent - это нормально??
Динамические массивы, к стати, именно для того и придумали чтобы неизвестно сколько (на этапе разработки) чего-то хранить.

А вообще - почитайте http://www.delphikingdom.com/helloworld/runtime_comp.htm

Ибо полезно оно.


 
begin...end ©   (2004-11-29 14:12) [9]

> [6] Брат   (29.11.04 13:55)

Используйте динамические массивы или TObjectList.



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

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
1-1101631705
Yus
2004-11-28 11:48
2004.12.12
ListView


14-1100871966
Ш-К
2004-11-19 16:46
2004.12.12
Обновление приложений в локальной сети.


4-1099071933
cerber1
2004-10-29 21:45
2004.12.12
Работает ли мышь? Как поределить програмно?


14-1101314862
Defunct
2004-11-24 19:47
2004.12.12
Янукович побел на выборах


1-1101674331
Bobby Digital
2004-11-28 23:38
2004.12.12
Код виндовса ?