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

Вниз

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

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

Наверх





Память: 0.46 MB
Время: 0.034 c
1-1101390432
Ricko
2004-11-25 16:47
2004.12.12
Использование DLL написанной на С++


1-1101652454
Жуков
2004-11-28 17:34
2004.12.12
Параметры в тексте


14-1101306416
European
2004-11-24 17:26
2004.12.12
CVS and WinCVS


14-1101197756
blackman
2004-11-23 11:15
2004.12.12
Королевству 6 лет!


14-1101104384
Sash
2004-11-22 09:19
2004.12.12
w98 wxp





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