Главная страница
    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.038 c
3-1100296583
SergP
2004-11-13 00:56
2004.12.12
Создание таблицы DBASE IV. Что посоветуете использовать?


3-1100532193
keymaster
2004-11-15 18:23
2004.12.12
Вопрос по QuickReport


14-1099947252
Piter
2004-11-08 23:54
2004.12.12
Что за shellhook.dll?


14-1101018661
Gero
2004-11-21 09:31
2004.12.12
Про память


1-1101515434
Sirakuz
2004-11-27 03:30
2004.12.12
Delphi 8: TBytes ??





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