Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по динамическому созданию компонеты / 25 сообщений из 37, страница 1 из 2
21.11.2002, 12:57
    #32070699
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Есть на форме Panel1 с некими компонетами
Вызываю
procedure TForm1.Button2Click(Sender: TObject);
begin
Panel1.Free;
end;
Как правильно возвращать обратно ?
Большое спасибо!
...
Рейтинг: 0 / 0
21.11.2002, 13:20
    #32070715
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Возвращать что????
...
Рейтинг: 0 / 0
21.11.2002, 13:29
    #32070728
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Полагаю что то типа Panel1.Create(Self)....
...
Рейтинг: 0 / 0
21.11.2002, 13:39
    #32070741
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
таварищ!
прочтите хоть маленькую книжечку по основам паскаля и в частности начальные сведения об ооп.
вопросы какраз из основ.
)))
...
Рейтинг: 0 / 0
21.11.2002, 13:46
    #32070748
Alex Alexeev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
а зачем ты ее Free ???
Что бы потом создавать?
Panel1.Visible := False;
Panel1.Visible := True;- не катит ?
...
Рейтинг: 0 / 0
21.11.2002, 13:51
    #32070751
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
> Alex Alexeev.
А еще есть Panel1.Hide и Show.
Задававшему вопрос. Не обижайтесь - у компонентов есть методы, свойства и события - иногда смотрите хелп ))), а еще есть екзамплы....
...
Рейтинг: 0 / 0
21.11.2002, 14:08
    #32070760
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Уважаемый гражданин Кириллов. Глубоко признателен. Ответ правильный, верный...
...
Рейтинг: 0 / 0
21.11.2002, 14:21
    #32070764
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
хочется освобождать память.
Например если есть две спроектированные на этапе разработки формы интерфейса- я могу их "уничтожать и воссоздавать" в процессе работы. Я хочу так делать с визуальными компонентами. Например две Panel, на одной DBGrid, на другой StringGrid. На форме эти панели одного размера и на одном месте. Я могу переключать их Show-Hide, но хочу делать Destroy-Create. Вот и пытаюсь идти по такому пути.
...
Рейтинг: 0 / 0
21.11.2002, 14:54
    #32070798
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Это кто тебе такой путь подсказал???????????? =:()

Не Ленин ли? А то похоже - такой же кривой и странный. СВОЙ, одним словом.

:()
...
Рейтинг: 0 / 0
21.11.2002, 15:09
    #32070813
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Ну если надо так извратиться - пиши компоненты в потоки в память или диск, а потом ресторь их от туда...
Да и к томуже "памяти" как ты выражаешься, они мало юзают. Экзешник не уменьшится. Ели токма колво заюзанных хендлов станет меньше...
Зачем так извращаться?
Ну ечли уж нужен полный изврат - пиши на апи)))
...
Рейтинг: 0 / 0
21.11.2002, 15:31
    #32070838
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
И каким путем идти?
...
Рейтинг: 0 / 0
21.11.2002, 15:35
    #32070843
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Какая цель?
1. Уменьшить экзешник?
2. Уменьшить размер в оперативке?
... или?
...
Рейтинг: 0 / 0
21.11.2002, 15:36
    #32070845
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
3. Или уменьшить кол-во хендлов?
...
Рейтинг: 0 / 0
21.11.2002, 15:40
    #32070848
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Читать про dll?
...
Рейтинг: 0 / 0
21.11.2002, 15:44
    #32070850
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
извени. хоть убей не врубаюсь че те надо!
...
Рейтинг: 0 / 0
21.11.2002, 16:18
    #32070882
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Я понимаю что можно создавать компоненты в процессе выполнения программы и уничтожать их. Сделал такой вывод попробовав вызвать Panel1.Destroy; например. (ну учусь я, учусь...) Раз можно удалить, значит можно пересоздать. Это первое что я хотел попробовать, хотя смысла нет - размер приложения в памяти при удалении компоненты не уменьшиться конечно, уже понял...
Ну а вот еще например:
Если я помещаю к себе в приложение QReport то размер моего приложения (файла ехе и в памяти тоже) прилично возрастает. Может понадобиться строить отчет а может нет, но QReport "вложен" и будет есть ресурсы. Как его можно где нить хранить и подгружать по мере надобности?
...
Рейтинг: 0 / 0
21.11.2002, 16:28
    #32070892
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
1. Никогда не юзай Destroy. Юзай Free. Долго объяснять почему...
2. В проекте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
project test;
begin
  Application.Initialize;
  Application.Title := 'test';
  Application.CreateForm(TForm1, Form1);
//!!!
  Application.Run;
end;

IDE при добавлении новой формы будет класть ее креат туда где я написал "!!!"
3. По необходимости создаешь репорт сам ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Form2 := TForm2.Create (Application);
with Form2 do
try
  QuickRep1.PreviewModal;
finally
  Form2.Free;
  Form2 := nil;
end;


В моей проге более 200 форм - все нормально с ресурсами и т.п. главное выкидывай нахрен код который добавляет автоматомделфя при добвавлении формы.
вот.
...
Рейтинг: 0 / 0
21.11.2002, 16:28
    #32070893
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
для экономии памяти и ускорения загрузки и работы приложения в больших проектах, где находится большое кол-во форм (ИМХО если есть >10 ) можно создавать формы по мере обращения к ним, т.е. выкинуть те строки, которые пишутся самой Делфи в проекте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  Application.Initialize;
  Application.CreateForm(TfrmMain, frmMain);
  //Application.CreateForm(TdM, dM);
  //Application.CreateForm(TfrmRnuNps, frmRnuNps);
  //Application.CreateForm(TfrmDispatcher, frmDispatcher);
  //Application.CreateForm(TfrmMen, frmMen);
  //Application.CreateForm(TfrmMal, frmMal);
  //Application.CreateForm(TfrmMNATree, frmMNATree);
  //Application.CreateForm(TqrG, qrG); 
  //Application.CreateForm(TfrmMalTree, frmMalTree);
  //Application.CreateForm(TfrmData, frmData);
  Application.Run;

напрмер те, которые в комментариях, а затем создаём и освобождаем их по мере обращения. напрмер для формы отчёта:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 
try
 qrG:=TqrG.Create(nil);
 qrG.Preview;
 qrG.Free;
 except
  on E:exception do
  begin
   ShowMessage('Ошибка создания формы отчёта: '+# 13 # 10 +E.Message);
  end;
 end;//try


смысл в уничтожении/создании компонент на форме вряд ли есть.
...
Рейтинг: 0 / 0
21.11.2002, 16:59
    #32070915
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
А есть ли возможность и смысл держать визуальные элементы и их математику где то еще? совсем отдельно от приложения?
...
Рейтинг: 0 / 0
21.11.2002, 17:06
    #32070921
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Если если юзается не одной прогой...
но лучше не гемороидальничать... в одной проге и так дофига всего.... делфийские екзешники достаточно шустрые и без дллелин...

http://www.rsdn.ru/article/default.asp?devtools/perftest.xml
http://www.rsdn.ru/article/?devtools/perftest2.xml
http://www.rsdn.ru/article/?devtools/perftest3.xml
...
Рейтинг: 0 / 0
21.11.2002, 17:10
    #32070926
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
>>А есть ли возможность и смысл держать визуальные элементы и их математику где то еще? совсем отдельно от приложения?

Возможность есть, смысла в стандартных случаях - нет.
...
Рейтинг: 0 / 0
21.11.2002, 17:12
    #32070929
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Большое Спасибо! Почитаю!
...
Рейтинг: 0 / 0
22.11.2002, 11:53
    #32071240
_TwoAll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Нашел на http://www.rsdn.ru/ статью как хранить формы в dll
...
Рейтинг: 0 / 0
22.11.2002, 11:55
    #32071244
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
Господи!
Ну нахера тебе такой изврат.
Да простят меня любители русского языка )))
...
Рейтинг: 0 / 0
22.11.2002, 12:04
    #32071265
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по динамическому созданию компонеты
вполне рабочий способ.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по динамическому созданию компонеты / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]