Sign in Join
Wiki copytemporary

MSEide MSEgui Howto/ru: what changed

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

Title: MSEide MSEgui Howto/ru

OldNewLine
1+## Значок и свойства приложения для Win32
2+
3+1\) Подготовьте исходный файл ресурсов в директории программы:
4+
5+File "version_data.rc":
6+
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+`}`
29+
30+Файл "icon_data.rc":
31+
32+` AppIcon ICON "app_icon.ico"`
33+
34+где "app_icon.ico" — это рисунок в формате ICO размерами 128x128, 24 бита. Можно использовать любой другой размер (это зависит от предпочитаемого разрешения экрана), как правило используются размеры больше 24x24 пикселей.
35+
36+Удобный редактор для подготовки таких (и любых других) изображений — "Embellish".
37+
38+2\) Из командной строки Win32, скомпилируйтие подготовленный файл компилятором ресурсов, поставляемым с FreePascal'ем:
39+
40+` # windres -O res -i version_data.rc -o version_data.res`\
41+` # windres -O res -i icon_data.rc -o icon_data.res`
42+
43+3\) Используйте скомпилированные ресурсы в своём приложении:
44+
45+``` pascal
46+program super_puper;
47+
48+{$ifdef FPC}{$mode objfpc}{$h+}{$INTERFACES CORBA}{$endif}
49+{$ifdef FPC}
50+ {$ifdef mswindows}
51+ {$apptype console}
52+ {$endif}
53+{$endif}
54+uses
55+ {$ifdef FPC}{$ifdef linux}cthreads,{$endif}{$endif}msegui,mseforms,
56+ main,dmmain,dmprint, dmacnt1, dmf18,dmrefs,
57+ connsetupform,mseconsts,mseconsts_ru,mseconsts_uzcyr;
58+
59+// импорт скомпилированных ресурсов
60+
61+{$ifdef mswindows}
62+ {$R version_data.res}
63+ {$R icon_data.res}
64+{$endif}
65+
66+begin
67+ setlangconsts('ru');
68+ application.createdatamodule(tdmmainmo,dmmainmo);
69+ application.createdatamodule(tdmprintmo, dmprintmo);
70+ application.createdatamodule(tdmacnt1mo, dmacnt1mo);
71+ application.createdatamodule(tdmf18mo, dmf18mo);
72+ application.createdatamodule(tdmrefsmo, dmrefsmo);
73+ application.createform(tmainfo,mainfo);
74+ application.run;
75+end.
76+```
77+
78+На этом всё.
79+
80+## Динамическое создание элементов управления
81+
82+Чтобы динамически создать элемент управления (не через IDE), нужно выполнить следующие шаги:
83+
84+- Создать экземпляр класса конструктором `Create` (передавая ему владельца как аргумент).
85+- Создать рамку (`frame`) для компонента и настроить её свойства.
86+- Если нужно, также создать фасад (`face`) для компонента и настроить его свойства.
87+- Установить размер компонента в свойствах `bounds_cx` и `bounds_cy`.
88+- Добавить компонент в окно или другой контейнер, вызвав метод контейнера `insertwidget`.
89+- Показать компонент, вызвав его метод `show` или установив свойству `visible` значение `true`.
90+
91+Вот пример динамического создания компонента `tedit` (чтобы этот код работать, нужно добавить объявление свойства `dynedit: tedit;`):
92+
93+``` pascal
94+procedure tmainfo.mainformcreated(const sender: TObject);
95+begin
96+ dynedit := tedit.Create(self);
97+ dynedit.bounds_cx := 100;
98+ dynedit.bounds_cy := 21;
99+ dynedit.createframe;
100+ insertwidget(dynedit, makepoint(300, 10));
101+ dynedit.show;
102+end;
103+```
104+
105+If you need custom value for the `face` property, you can set it up as follows:
106+
107+``` pascal
108+ dynedit.createface;
109+ with dynedit.face do begin
110+ fade_color.count := 2;
111+ fade_color[0] := cl_ltgreen;
112+ fade_color[1] := cl_dkgreen;
113+ fade_direction := gd_down;
114+ end;
115+```
116+
117+---
118+*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).*
119+Category: MSEide+MSEgui/ru
120+Category: Russian
121+Category: Tutorials/ru
122+Category: Windows/ru

Back to history