Главная страница
    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.47 MB
Время: 0.05 c
4-1099204232
X-shadow
2004-10-31 09:30
2004.12.12
Как установить на фаил специфическую иконку?


1-1101579193
Sur
2004-11-27 21:13
2004.12.12
RT_MENU


14-1100976426
Ivolg
2004-11-20 21:47
2004.12.12
Longhorn


1-1101055819
Гаврилов В.А.
2004-11-21 19:50
2004.12.12
Почему не работает ссылка с рабочего стола


14-1101062985
ArMellon
2004-11-21 21:49
2004.12.12
Кому нечего делать....выскажите мнение о моем чате





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