Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Парочка глупых вопросов   Найти похожие ветки 

 
-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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
3-1134019457
vitek
2005-12-08 08:24
2006.02.05
Error loading MIDAS.DLL


2-1137484094
Ega23
2006-01-17 10:48
2006.02.05
CoCreateGUID - в каком юните находится?


15-1137234572
grisme
2006-01-14 13:29
2006.02.05
Бесплатный хостинг


2-1137410005
Tigraman
2006-01-16 14:13
2006.02.05
Memo и checkbox


2-1137198189
STK
2006-01-14 03:23
2006.02.05
Создание программы дозвона