Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизПарочка глупых вопросов Найти похожие ветки
← →
-matrix- © (2006-01-16 13:27) [0]Парочка глупых вопросов:
1. Приложение состоит из формы или нескольких. При каждом добавлении новой вес итогового exe"шника увеличивается. Как это устранить? Кажется, что нужно использовать fram"ы...
2. Если их нужно использовать в данных сутуациях и они будут работать как формы, то в чем вообще различее между формами и frame"ами?
3. Я встречал программы, имеющие хотя бы одну форму, но весом прим по 30кб. Каким образом это делается? Знаю, что можно из dll"ок импортировать формы, но в комплекте с такой программой они не идут, а в винде такой формы вроде как нет... Не запасутся же мелкомягкие ими на все случаи жизни?
← →
Zeqfreed © (2006-01-16 13:37) [1]-matrix- © (16.01.06 13:27)
> Как это устранить? Кажется, что нужно использовать
> fram"ы...
Фреймы здесь ни при чем. Если в программе используется множество одинаковых форм, то их нужно создавать динамически по мере надобности. Если же они все разные, то ничего не поделать.
> 3. Я встречал программы, имеющие хотя бы одну форму,
> но весом прим по 30кб. Каким образом это делается?
Скорее всего, эти программы создают окна ф-циями WinAPI и эти окна не являются формами в терминологии Delphi.
← →
Делфёст (2006-01-16 13:42) [2]1й способ Если тебе надо уменьшить размер exe"шника попробуй воспользоваться PE-Compact... более сильной в упаковке проги я еще не видел...
у меня из 2х метров сжала до 300 кило, хотя остальные делали только по 550 - 570 кило... понадобится кряк
2й способ, можешь отключить в делфях VCL компоненты(сам не пробывал но читал об этом) и пасить все ручками
3й способ кто то говорил про компрессию при компилировании проекта, но где это делать не знаю, хотя если покопаться...
← →
evvcom © (2006-01-16 13:44) [3]
> 3. Я встречал программы, имеющие хотя бы одну форму, но
> весом прим по 30кб. Каким образом это делается?
Тебе важен размер? Тогда тебе в конференцию KOL (http://www.delphimaster.ru/cgi-bin/forum.pl?n=10)
← →
Gydvin © (2006-01-16 13:47) [4]3. Я встречал программы, имеющие хотя бы одну форму, но весом прим по 30кб.
А ты уверен что это сделано на делфях, а не на ассемблере например?
Я ковырял исходники на ассемблере под WIN32 там пара форм, кнопок, менюшка ну и так функционал по мелочи. Вес ехе ~ 10-12 килобайт
← →
evvcom © (2006-01-16 14:00) [5]
> А ты уверен что это сделано на делфях
Делают и на дельфях, см. KOL
← →
-matrix- © (2006-01-16 15:22) [6]2 Zeqfreed
Фреймы здесь ни при чем. Если в программе используется множество одинаковых форм, то их нужно создавать динамически по мере надобности. Если же они все разные, то ничего не поделать.
А к примеру, окно "О программе" как надо реализовать? Или как в Commander"е - маленькое окошечко с "Ok", "Cancel" и combobox с выбором дисков. Формы они непохожие, вряд ли авторы новые создавали...
Значит, таинственный KOL изучать...
Еще вопросы:
1. Как восстановить нормальные виды окон после bitblp?
2. Как можно выяснить, изменился ли определенный участок на экране? Т.е. вдруг пользователь передвинул окно на определенный участок desktop"а?
← →
evvcom © (2006-01-16 15:29) [7]
> 1. Как восстановить нормальные виды окон после bitblp?
Очевидно, сначала их запомнить. А что значит нормальные? А ненормальные уже умеешь?
> 2. Как можно выяснить, изменился ли определенный участок
> на экране? Т.е. вдруг пользователь передвинул окно на определенный
> участок desktop"а?
Обрабатывать сообщения WM_PAINT, WM_NCPAINT
← →
begin...end © (2006-01-16 15:29) [8]> -matrix- © (16.01.06 15:22) [6]
> А к примеру, окно "О программе" как надо реализовать?
uses ShellAPI;
ShellAbout(0, "Super Program", "© -matrix-, 2006", 0);
:o)
> Значит, таинственный KOL изучать...
Или WinAPI.
← →
Gero © (2006-01-16 16:45) [9]> ShellAbout(0, "Super Program", "© -matrix-, 2006", 0);
Это если Copyright by Microsoft не смущает.
← →
-matrix- © (2006-01-16 18:10) [10]2 evvcom ©
Очевидно, сначала их запомнить. А что значит нормальные? А ненормальные уже умеешь?
Нормальные - это когда ничего не нарисовано сверху окон. Ненормальные - от когда уже нарисовал сверху что-то... Даже если программа закроется, нарисованное не стирается с окон, а так и остается. Где-то в факах видел (цитирую):
"Не забывайте после своих манипуляций посылать пострадавшим (или всем) окнам сообщение о необходимости перерисовки, для восстановления их первоначального вида." (это после описания getdc)
Во как. И как мне это сделать?
Обрабатывать сообщения WM_PAINT, WM_NCPAINT
Как я понимаю, это находиться в какой-то библиотеке. Что-то мне подсказывает, что в WSIWIN32. Так ли это?
И вообще, откуда вы берете списки и описания функций различных dll?
← →
Zeqfreed © (2006-01-16 18:22) [11]-matrix- © (16.01.06 18:10) [10]
WM_PAINT и WM_NCPAINT это константы. В Delphi эти константы объявлены в модуле Messages.pas.
Для «восстановления» используй InvalidateRect.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c