powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрое создание форм
25 сообщений из 67, страница 2 из 3
Быстрое создание форм
    #39923575
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
По исходникам как бы так
тогда может я и мимо, просто вспомнилось что где-то вроде с этим впирался
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923592
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
AQTime
Падает программа при запуске из под профайлера. Стандартное Windows сообщение "Работа программы прекращена"

Имя сбойного модуля: AQNATPROF.DLL, версия: 7.50.1260.86, метка времени: 0x503f5b51
Код исключения: 0xc00001a5
Путь сбойного модуля: C:\PROGRAM FILES (X86)\SMARTBEAR\AQTIME 7\BIN\EXTENSIONS\AQNATPROF.DLL
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923595
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
softwarer
AQTime
Падает программа при запуске из под профайлера. Стандартное Windows сообщение "Работа программы прекращена"

Ну что я могу сказать... ошибка в не в профайлере :)
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923599
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Ну что я могу сказать... ошибка в не в профайлере :)
Ну не знаю
_Vasilisk_
Путь сбойного модуля: C:\PROGRAM FILES (X86)\SMARTBEAR\AQTIME 7\BIN\EXTENSIONS\AQNATPROF.DLL
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923606
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Падает программа при запуске из под профайлера
7-я ломаная мне не попадалась но и 5 и 6 тоже бывало стабильно валились, обходил помнится аттачем к уже запущенному процессу
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923613
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan
обходил помнится аттачем к уже запущенному процессу
How AQtime Standard for Embarcadero RAD Studio XE Differs From AQtime Pro
...............
The “Attach-to-Process” feature is not available, that is, you cannot attach to existing processes. To profile an application, you have to run it from AQtime.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923618
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно перекрыть ReadState и отложить реальную загрузку контролов по времени (таймер, onIdle и т.д.).
Можно подменить переменную формы ленивой загрузкой:
Код: pascal
1.
2.
3.
4.
5.
6.
var _frmMy: TMyForm = nil;

function frmMy: TMyForm;
  if _frmMy = nil then
    _frmMy := TMyForm.Create;
 Exit(_frmMy)
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923683
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, я бы попробовал сконвертить dfm в код. Если тормозит именно десериализация, то должно ускориться.
Помнится, была утилитка под названием "dfm2pas" и в GExpert'ах был пункт меню для этого.
Возможно, оба варианта устарели и лучше поискать что-нибудь поновее для этого.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923699
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Сейчас интересует именно как ускорить чтение dfm. Может Можно как-то клонировать уже созданную форму?
Не знаю, быстрее ли это. Просто вспомнил, что есть такое
http://delphiworld.narod.ru/base/clone_form.html
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923704
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
Не знаю, быстрее ли это. Просто вспомнил, что есть такое
http://delphiworld.narod.ru/base/clone_form.html

Это не может быть быстрее
Код: pascal
1.
ms.ReadComponent(newform);
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923727
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При изменении состояния объекта он изменяет что-то на своей форме

Объект не должен знать ни о каких формах. Он должен изменять свои свойства. Одна единственная форма должна подключаться к любому объекту и в зависимости от свойств рисовать себя и на себе что надо.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923786
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G
_Vasilisk_, я бы попробовал сконвертить dfm в код. Если тормозит именно десериализация, то должно ускориться.
Помнится, была утилитка под названием "dfm2pas" и в GExpert'ах был пункт меню для этого.
Возможно, оба варианта устарели и лучше поискать что-нибудь поновее для этого.

А смысл? Десериализация именно это и делает.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923792
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPC
Одна единственная форма должна подключаться к любому объекту
Так может они там одновременно открыты
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923805
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan
LocksmithPC
Одна единственная форма должна подключаться к любому объекту
Так может они там одновременно открыты

Все 100+?
В любом случае, если создавать форму в момент открытия, то тормоза будут не так заметны, как создание 100+ форм при загрузке приложения.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923842
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Все 100+?
я не в курсе. указываю что "одной единственной" всяко может не хватить
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923852
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan
alekcvp
Все 100+?
я не в курсе. указываю что "одной единственной" всяко может не хватить


Не надо цепляться к словам. Если это информтабло сотни объектов, то нужна одна форма (№1) для мониторинга этой сотни и одна форма (№2) для детализации. Пусть форм №2 будет несколько, если надо сравнить детализацию 15 объектов
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923909
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPC, я и не цепляюсь а лишь указываю что OP там виднее как оно бывает
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923953
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G> сконвертить dfm в код. Если тормозит именно десериализация, то должно ускориться.
L1G> Помнится, была утилитка под названием "dfm2pas" и в GExpert'ах был пункт меню для этого.

Интересная идея, кстати. "Хардкодирование" вместо "клонирования".

Попробовать стоит, ИМХО.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923972
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Интересная идея, кстати. "Хардкодирование" вместо "клонирования".
Попробовать стоит, ИМХО.
Я тут подумал, что все идеи с копированием свойств через RTTI, конвертацией dfm в pas быстрее не будут.

Например, банальная установка координат компонента

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
procedure TControl.SetLeft(Value: Integer);
begin
  SetBounds(Value, FTop, FWidth, FHeight);
  Include(FScalingFlags, sfLeft);
  if csReading in ComponentState then
    FExplicitLeft := FLeft;
end;

procedure TControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  if CheckNewSize(AWidth, AHeight) and
    ((ALeft <> FLeft) or (ATop <> FTop) or
    (AWidth <> FWidth) or (AHeight <> FHeight)) then
  begin
    InvalidateControl(Visible, False);
    FLeft := ALeft;
    FTop := ATop;
    FWidth := AWidth;
    FHeight := AHeight;
    UpdateAnchorRules;
    UpdateExplicitBounds;
    Invalidate;
    Perform(WM_WINDOWPOSCHANGED, 0, 0);
    RequestAlign;
    if not (csLoading in ComponentState) then Resize;
  end;
end;

Т.е. Resize при загрузке из dfm вызывается лишь однажды, а так будет вызываться 4 раза. И в VCL строчка
Код: pascal
1.
if not (csLoading in ComponentState) then

встречается очень часто.

Разве что попробовать Reader модифицировать, чтобы сам парсинг dfm происходил один раз
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39923986
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отказался от идеи хранения кода DFM. Получается очень много неудобств.
У меня простое создание компонент по их свойствам, перечисленным в ХМЛ. Все программно. Ничего лишнего.
Кода понадобилось немного.
Да, есть недостатки, но преимуществ намного больше, ИМХО.
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39924022
jack_vosmerkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
страно что еще некто не кричал *нельзя так делать* и *ты что с урала?*
раньше вроде так было когда про подобные безумие спрашивали
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39924023
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk> Я тут подумал, что все идеи с копированием свойств
_Vasilisk> через RTTI, конвертацией dfm в pas быстрее не будут.

А ты профайлером посмотрел, что конкретно больше всего
тормозит при создании? И насколько тяжелая форма вообще?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39924025
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jack_vosmerkin> страно что еще некто не кричал *нельзя так делать* и *ты что с урала?*

Уже пофыркали на первой странице. Да и автор в стартовом посте
указал, что наследие, что понимает и что будет переделывать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39924027
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
А ты профайлером посмотрел, что конкретно больше всего тормозит при создании?
Нет. AQTime так и не запустился

Гаджимурадов Рустам
И насколько тяжелая форма вообще?
Не тяжелая. Штук 5 тулбаров, PageControl с тремя вкладками, два фрейма с чартом и тулбарами, стандартный TTreeView
...
Рейтинг: 0 / 0
Быстрое создание форм
    #39924042
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 200шт это как раз тяжелая.

Посмотри, может какие-то вкладки можно создавать
не сразу, а по "активации", или чарт хотя бы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 67, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрое создание форм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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