Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.018 c
15-1137279478
Volf_555
2006-01-15 01:57
2006.02.05
Разблокирование возможностей компьютера


6-1130670005
Максим
2005-10-30 14:00
2006.02.05
Получение hostname по IP


11-1118401504
AK Delfin
2005-06-10 15:05
2006.02.05
MCK компонент производный от TKOLLabel ->TKolLinkLabel


15-1137238933
iZEN
2006-01-14 14:42
2006.02.05
Установка GTK+ на Win32.


1-1135777318
Shuric
2005-12-28 16:41
2006.02.05
Ни как не соображу, как получить изображение под формой.





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