Sign in Join
Wiki copytemporary

MSEide MSEgui Howto/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Значок и свойства приложения для Win32
22
331\) Подготовьте исходный файл ресурсов в директории программы:
44
55File "version_data.rc":
66
7-`1 VERSIONINFO`\
8-`FILEVERSION 4,0,3,17`\
9-`PRODUCTVERSION 3,0,0,0`\
10-`FILEFLAGSMASK 0`\
11-`FILEOS 0x40000`\
12-`FILETYPE 1`\
13-`{`\
14-` BLOCK "StringFileInfo"`\
15-` {`\
16-`  BLOCK "040904E4"`\
17-`  {`\
18-`  VALUE "CompanyName","JSC TashkentP"`\
19-`  VALUE "FileDescription","The main program file"`\
20-`  VALUE "FileVersion","0.9a"`\
21-`  VALUE "InternalName","ARM Podpiska"`\
22-`  VALUE "LegalCopyright","JSC TashkentP’s property"`\
23-`  VALUE "OriginalFilename","podpiska.pas"`\
24-`  VALUE "ProductName","The program for ARM Podpiska"`\
25-`  VALUE "ProductVersion","0.9a"`\
26-`  }`\
27-` }`\
28-`}`
7+``` pascal
8+1 VERSIONINFO
9+FILEVERSION 4,0,3,17
10+PRODUCTVERSION 3,0,0,0
11+FILEFLAGSMASK 0
12+FILEOS 0x40000
13+FILETYPE 1
14+{
15+ BLOCK "StringFileInfo"
16+ {
17+ BLOCK "040904E4"
18+ {
19+ VALUE "CompanyName","JSC TashkentP"
20+ VALUE "FileDescription","The main program file"
21+ VALUE "FileVersion","0.9a"
22+ VALUE "InternalName","ARM Podpiska"
23+ VALUE "LegalCopyright","JSC TashkentP’s property"
24+ VALUE "OriginalFilename","podpiska.pas"
25+ VALUE "ProductName","The program for ARM Podpiska"
26+ VALUE "ProductVersion","0.9a"
27+ }
28+ }
29+}
30+```
2931
3032Файл "icon_data.rc":
3133
32-` AppIcon ICON "app_icon.ico"`
34+```text
35+ AppIcon ICON "app_icon.ico"
36+```
3337
3438где "app_icon.ico" — это рисунок в формате ICO размерами 128x128, 24 бита. Можно использовать любой другой размер (это зависит от предпочитаемого разрешения экрана), как правило используются размеры больше 24x24 пикселей.
3539
3640Удобный редактор для подготовки таких (и любых других) изображений — "Embellish".
3741
38422\) Из командной строки Win32, скомпилируйтие подготовленный файл компилятором ресурсов, поставляемым с FreePascal'ем:
3943
40-` # windres -O res -i version_data.rc -o version_data.res`\
41-` # windres -O res -i icon_data.rc -o icon_data.res`
44+```text
45+ # windres -O res -i version_data.rc -o version_data.res
46+ # windres -O res -i icon_data.rc -o icon_data.res
47+```
4248
43493\) Используйте скомпилированные ресурсы в своём приложении:
4450
4551``` pascal
4652program super_puper;
4753
4854{$ifdef FPC}{$mode objfpc}{$h+}{$INTERFACES CORBA}{$endif}
4955{$ifdef FPC}
5056 {$ifdef mswindows}
5157 {$apptype console}
5258 {$endif}
5359{$endif}
5460uses
5561 {$ifdef FPC}{$ifdef linux}cthreads,{$endif}{$endif}msegui,mseforms,
5662 main,dmmain,dmprint, dmacnt1, dmf18,dmrefs,
5763 connsetupform,mseconsts,mseconsts_ru,mseconsts_uzcyr;
5864
5965// импорт скомпилированных ресурсов
6066
6167{$ifdef mswindows}
6268 {$R version_data.res}
6369 {$R icon_data.res}
6470{$endif}
6571
6672begin
6773 setlangconsts('ru');
6874 application.createdatamodule(tdmmainmo,dmmainmo);
6975 application.createdatamodule(tdmprintmo, dmprintmo);
7076 application.createdatamodule(tdmacnt1mo, dmacnt1mo);
7177 application.createdatamodule(tdmf18mo, dmf18mo);
7278 application.createdatamodule(tdmrefsmo, dmrefsmo);
7379 application.createform(tmainfo,mainfo);
7480 application.run;
7581end.
7682```
7783
7884На этом всё.
7985
8086## Динамическое создание элементов управления
8187
8288Чтобы динамически создать элемент управления (не через IDE), нужно выполнить следующие шаги:
8389
8490- Создать экземпляр класса конструктором `Create` (передавая ему владельца как аргумент).
8591- Создать рамку (`frame`) для компонента и настроить её свойства.
8692- Если нужно, также создать фасад (`face`) для компонента и настроить его свойства.
8793- Установить размер компонента в свойствах `bounds_cx` и `bounds_cy`.
8894- Добавить компонент в окно или другой контейнер, вызвав метод контейнера `insertwidget`.
8995- Показать компонент, вызвав его метод `show` или установив свойству `visible` значение `true`.
9096
9197Вот пример динамического создания компонента `tedit` (чтобы этот код работать, нужно добавить объявление свойства `dynedit: tedit;`):
9298
9399``` pascal
94100procedure tmainfo.mainformcreated(const sender: TObject);
95101begin
96102 dynedit := tedit.Create(self);
97103 dynedit.bounds_cx := 100;
98104 dynedit.bounds_cy := 21;
99105 dynedit.createframe;
100106 insertwidget(dynedit, makepoint(300, 10));
101107 dynedit.show;
102108end;
103109```
104110
105111If you need custom value for the `face` property, you can set it up as follows:
106112
107113``` pascal
108114 dynedit.createface;
109115 with dynedit.face do begin
110116 fade_color.count := 2;
111117 fade_color[0] := cl_ltgreen;
112118 fade_color[1] := cl_dkgreen;
113119 fade_direction := gd_down;
114120 end;
115121```
116122
117123---
118124*From the Free Pascal wiki, page "MSEide MSEgui Howto/ru", as it stood on 2021-03-30 after a change by Mirror, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
119125Category: MSEide+MSEgui/ru
120126Category: Russian
121127Category: Tutorials/ru
122128Category: Windows/ru

Back to history