Sign in Join
Wiki copytemporary

Lazarus Tutorial/mk: what changed

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

OldNewLine
11*This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.*
22
33## Краток преглед
44
55Lazarus е слободена и отворена алатка за усовршен код за FreePascal компајлер (објект pascal), кој исто така е слободен и отворен код. Lazarus IDE ([screenshot](http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg)) е стабилен и се одликува со богата средина за програмирање и креирање на самостојни графички и конзолни апликации. Тековно работи на Linux, FreeBSD и Win32 и обезбедува приспособлив уредувач на код и креиран визуелен тип на средина заедно со пакет-менаџер, пребарувач на грешки и целосна GUI интеграција со FreePascal компајлерот.
66
77## Како да почнете - вашата прва Lazarus програма!
88
99Благодарност до ([[Корисник:Kirkpatc]])
1010
1111Набавете, инсталирајте ([[Инсталирање на Lazarus]]) и стартувајте го Lazarus што исто така ќе го направи достапен FreePascal компајлерот.
1212
1313Ќе се појават неколку прозорци на работната површина: главното мени на врвот, објект-инспекторот од левата страна, изворниот код Lazarus што го зафаќа поголемиот дел од работната површина и веќе направениот прозорец Форма1 поставен врз изворниот код.
1414
1515На горниот прозорец за мени, под линијата за мени се наоѓа ред на јазичиња. Ако веќе не е избрано „стандардно“ јазиче, изберете го со кликање на глувчето. Потоа, пронајдете ја иконата за копче (правоаголна со „Во ред“ на неа) и кликнете на неа со глувчето. Потоа, кликнете на прозорецот Форма1, што се наоѓа лево од средината. Ќе се појави означен правоаголник „Копче1“. Повторно кликнете на иконата за копче во стандардното јазиче, а потоа кликнете на Форм1 што се наоѓа десно од средината: ќе се појави означен правоаголник „Копче2“.
1616
1717Сега кликнете на Копче1 за да го изберете. Објект-инспекторот ќе ги прикаже особините на објектот Копче1. Блиску до врвот е особина наречена „Легенда“, со прикажана вредност „Копче1“. Кликнете на тоа поле и променете го „копче1“ во „Притисни“. Ако притиснете ВНЕСИ или ако кликнете на друго поле, ќе видите како ознаката од првото копче на Форма1 се менува во „Притисни“. Сега притиснете на јазичето за настани на објект-инспекторот, за да ги видите различните настани што можат да се поврзат со копчето. Овие вклучуваат OnClick, OnEnter, OnExit итн. Изберете го полето десно од OnClick: се појавува помало поле со три точки (...елипса). Кога ќе кликнете на ова, автоматски ве носи во изворниот код и вашиот покажувач ќе биде поставен на дел од код кој почнува вака:
1818
1919` procedure TForm1.Button1Click(Sender: TObject);`\
2020` begin`\
2121`   {now type:}    Button1.caption := 'Press again';`\
2222`   {the editor has already completed the procedure with}`\
2323` end;`
2424
2525Притиснете F12 за да го изберете прозорецот Форма1 наместо изворниот код.
2626
2727Сега уредете ги особините на Копче2: Кликнете на Копче2 за да ги прикажете неговите особини во објект-инспекторот. Променете ја особината на легендата во „Излези“ наместо во „Копче2“. Сега изберете го јазичето за настани и кликнете на полето за OnClick. Кликнете на ...елипса, што ќе ве однесе во изворниот код, во средината на друга постапка:
2828
2929` procedure TForm1.Button2Click(Sender: TObject);`\
3030` begin`\
3131` {now type:}   Close;`\
3232` {the editor has already completed the procedure with} `\
3333` end;`
3434
3535Сега притиснете F12 за повторно да го видите прозорецот Форма1. Сега сте подготвени да се обидете да компајлирате. Наједноставниот начин да го направите ова е да изберете „Стартувај“ од главното мени на врвот, а потоа опцијата „Стартувај“ на подменито. Како алтернатива, може едноставно да отчукате F9. Ова најпрвин ќе се компајлира, а потоа (ако сѐ е во ред) ќе се поврзе и ќе ја изврши вашата програма.
3636
3737Ќе се појават неколку текстуални прозорци и ќе се отчукаат различни видови компајлер пораки, но најпосле повторно ќе се појави прозорецот Форма1, но без мрежа на точки; всушност, ова е главниот прозорец на вашата апликација и чека на вас да притискате копчиња или да комуницирате со неа на друг начин.
3838
3939Обидете се да кликнете на копчето означено како „Притисни“. Ќе забележите дека се менува во „Притисни повторно“. Ако повторно го притиснете, сѐ уште ќе гласи „Притисни повторно“!!
4040
4141Сега кликнете на копчето обележано како „Излези“. Прозорецот ќе се затвори и програмата ќе излезе. Повторно ќе се појават оригиналниот прозорец Форма1 со мрежата на точки, подготвени да примаат уште уредувачки дејности.
4242
4343Сега треба да ја зачувате вашата работа (и постојано!!) со избирање на Проект \> Зачувај проект како \> вашето_изберено_име_на_датотека.pas
4444
4545### Втора сесија
4646
4747Повторно отворете го вашиот зачуван проект. На прозорецот Форма1, кликнете на копчето „Притисни“ (Копче1) со цел да го изберете. Изберете го јазичето „Настани“ на Објект-инспекторот, кликнете на полето од десната страна веднаш до OnClick, кликнете на... елипса, за да се вратите на соодветната точка на изворниот код.
4848
4949Уредете го вашиот код да чита како што следува:
5050
5151` procedure TForm1.Button1Click(Sender: TObject);`\
5252`{Makes use of the Tag property, setting it to either 0 or 1}`\
5353` begin`\
5454`   if Button1.tag =0 then`\
5555`   begin`\
5656`     Button1.caption := 'Press again';`\
5757`     Button1.tag := 1`\
5858`   end else`\
5959`   begin`\
6060`     Button1.caption := 'Press';`\
6161`     Button1.tag := 0`\
6262`   end`\
6363` end;`
6464
6565Зачувајте ја вашата работа, повторно компајлирајте и извршете. Левото копче ќе ви даде избоп помеѓу две алтернативни пораки.
6666
6767Останатото зависи од вас!
6868
6969Ако преферирате на пишувате конзола - или Pascal програми базирани на текст (на пример, ако следите Основен курс за програмирање Pascal или треба да напишете програми за употреба во пакет режим или за системско програмиирање), сѐ уште можете да го користите Lazarus за уредување, компајлирање и извршување на вашите програми. Создава идеална средина за усовршување на Pascal. Види [[Конзолен режим Pascal]].
7070
7171## Уредувач
7272
7373Кога го стартувте Lazarus за прв пат, на вашиот работен простор ќе се појават серија на посебни дисконектирани или „пловечки“ прозорци.
7474
7575Првиот што се наоѓа на врвот од работниот простор е насловен **Lazarus Уредувач vXXXXXX - проект1** (кој потоа ќе се модифицира за да го прикаже името на вашиот тековно отворен проект). Ова е главниот контролен прозорец на вашиот проект и го содржи Главното мени и Палетата со компоненти.
7676
77-<center>
78-
79-<figure>
80-<img src="LazMain_GTK2-mk.png" title="LazMain_GTK2-mk.png" />
81-<figcaption>LazMain_GTK2-mk.png</figcaption>
82-</figure>
83-
84-</center>
77+![](/wiki-images/0/09/LazMain_GTK2-mk.png)
8578
8679На линијата под лентата за наслови се наоѓа *Главното мени* со вообичаените уписи за функциите Датотека, Уреди, Пребарај, Прегледај итн., со неколку избирања што се специфични за Lazarus. Под ова, од левата страна се наоѓа поставка за Бит копчиња (кои брзо ве носат во одредени опции од Главното мени), а од десната страна се наоѓа Палетата со компоненти.
8780
8881Под прозорецот за Lazarus уредувачот, од левата страна се појавува *[Објект-инспектор](http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg)**, а од десната страна се појавува**[Изворен код Lazarus](http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg)**. Може да се појави и помал прозорец, означен како**[Форма1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, поставен врз прозорецот за Изворниот код Lazarus. Ако ова не е веднаш видливо, може да се направи да се појави со притискање на копчето**F12*', што ви дава опција да изберете помеѓу Изворниот код и прегледот на формата. Прозорецот за форма е оној на кој вие ќе го изградите графичкиот интерфејс за вашата апликација, додека Изворниот код е прозорецот што го прикажува Pascal кодот, што се однесува на апликацијата што ја развивате. Работата на Објект-инспекторот подетално ќе ја дискутираме подолу, додека ја опишуваме Палетата со компоненти.
8982
9083Кога почнувате нов проект (или кога за првпат го стартувате Lazarus), ќе се конструира номинална форма, што се состои од поле во кое има мрежа со точки, што ќе ви помогне да ги позиционирате различните компоненти од формата и барот на горниот дел што ги содржи вообичаените **Минимизирај**, **Максимизирај** и **Затвори копчиња**. Ако ја притиснете стрелката на глувчето каде било во ова поле, ќе ги видите особините од прикажаната форма во Објект-инспекторот од десната страна на работниот простор.
9184
9285Други прозорци што можат да станат видливи за време на вашата работа: **[Проект-инспектор](http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg)**, кој содржи детали за вклучените датотеки во вашиот проект и ви дозволува да додадете или да избришете датотеки од вашиот проект; прозорецот за **Пораки**, што прикажува пораки од компајлерот, извештаи за грашките и за развојот на проектот; Ако Lazarus се стартува од терминал, оригиналниот терминал останува видлив и таму, исто така, се печатат детални пораки од компајлерот.
9386
9487### Главно мени
9588
9689For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/mk]] page.
9790
9891### Лента за копчиња
9992
10093Мала област со алатник од левата страна од главниот прозорец на уредувачот, веднаш под Главното мени, лево од Палетата со компоненти, содржи поставка на копчиња што ги реплицираат често користените избирања од Главното мени:
10194
10295
10396**Нов модул**, **Отвори** (со стрелка надолу за прикажување на пушти-долу листата на неодамна користените датотеки), **Зачувај**, **Зачувај сѐ**, **Нова форма**, **Префрли Форма/Модул** (односно прикажува или форма или изворен код на Модул), **Прегледај модули**, **Прегледај форми**, **Стартувај** (односно Компајлирај и Стартувај), **Паузирај**, **Влези во**, **Прескокни** (последните две се функции на пребарувачот на грешки).
10497
10598## Палета со компоненти
10699
107100Алатникот со јазичиња што прикажува голем број икони, што претставуваат компоненти што вообичаено се користат за градење форми.
108101
109102Секое јазиче прикажува приказ на различни поставки за икони, што претставуваат функционална група од компоненти. Најлевата икона на секоја група од јазичиња е дијагонална стрелка поставена на лево, наречена Алатка за избирање.
110103
111104Ако со стрелката од глувчето се движите врз која било икона од Палетата со компоненти без да кликате на иконата, ќе се појави насловот на таа компонента. Ќе забележите дека секој наслов започнува со „T“ – ова го означува Типот, или поточно, „Класата“ на компонентата. Кога избирате компонента за вклучување во форма, се додава [[Класа]] во одделот за **[[Тип|тип]]** од делот **[[Интерфејс|интерфејс]]** од [[Модул]] (обично како дел од севкупната TФорма1) и **пример** од таа класа се додава во одделот **[[Var|var]]** (обично како променлива Форма1). Кои било **Методи** што ќе ги дизајнирате за употреба од формата или нејзините компоненти (односно [[Процедури]] или [[Function|Функции]]) ќе бидат поставени во делот за **[[Имлементација|имплементација]]** во модулот
112105
113106Во следнава листа на компоненти ќе ги пронајдете врските до датотеките што содржат описи за модулите, во кои тие се пронајдени. Ако сакате да дознаете за особините на одредена компонента, често вреди да се погледа во Предокот на таа компонента, а потоа да ги истражите особините на типот на базата од којшто е добиена. На пример, за да го разберете TmaskEdit, корисно е да го проучите TCustomMaskEdit.
114107
115108**ЈАЗИЧИЊА** (имињата во голем број се самообјаснувачки):
116109
117110- **[Стандардно](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/index-4.html)** (Види [[Стандардно јазиче]] за опис на компоненти)
118111
119-<center>
120-
121-<figure>
122-<img src="Component_Palette_Standart-mk.png" title="Component_Palette_Standart-mk.png" />
123-<figcaption>Component_Palette_Standart-mk.png</figcaption>
124-</figure>
125-
126-</center>
112+![](/wiki-images/0/04/Component_Palette_Standart-mk.png)
127113
128114
129115*Компоненти што обично се користат:* [TMainMenu](http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html), [TPopupMenu](http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html), [TButton](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html), [TLabel](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html), [TEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html), [TMemo](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html), [TToggleBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html), [TCheckBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html), [TRadioButton](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html), [TListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html), [TComboBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html), [TScrollBar](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html), [TGroupBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html), [TStaticText](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html), [TRadioGroup](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html), [TCheckGroup](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html), [TPanel](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html), [TActionList](http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html)
130116
131117- **[Дополнително](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/index-4.html)** (Види [[Дополнително јазиче]] за опис на компоненти)
132118
133-<center>
134-
135-<figure>
136-<img src="Component_Palette_Additional-mk.png" title="Component_Palette_Additional-mk.png" />
137-<figcaption>Component_Palette_Additional-mk.png</figcaption>
138-</figure>
139-
140-</center>
119+![](/wiki-images/a/ab/Component_Palette_Additional-mk.png)
141120
142121
143122*Компоненти што се користат почесто:* [TBitBtn](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html), [TSpeedButton](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html), [TImage](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html), [TShape](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html), [TBevel](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html), [TPaintBox](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html), [TNotebook](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html), [TLabeledEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html), [TSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html), [TMaskEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html), [TCheckListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html), [TScrollBox](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html), [TApplicationProperties](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html), [TStringGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html), [TDrawGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html), [TPairSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html)
144123
145124- **[Вообичаени контроли](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/index-4.html)** (Види [[Јазиче за вообичаени контроли]] за опис на компоненти)
146125
147-<center>
148-
149-<figure>
150-<img src="Component_Palette_Common_Controls-mk.png" title="Component_Palette_Common_Controls-mk.png" />
151-<figcaption>Component_Palette_Common_Controls-mk.png</figcaption>
152-</figure>
153-
154-</center>
126+![](/wiki-images/7/7e/Component_Palette_Common_Controls-mk.png)
155127
156128
157129TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList
158130
159131- **[Дијалози](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs)** (Види [[Јазиче со дијалози]] за опис на компоненти)
160132
161-<center>
162-
163-<figure>
164-<img src="Component_Palette_Dialogs-mk.png" title="Component_Palette_Dialogs-mk.png" />
165-<figcaption>Component_Palette_Dialogs-mk.png</figcaption>
166-</figure>
167-
168-</center>
133+![](/wiki-images/d/d9/Component_Palette_Dialogs-mk.png)
169134
170135
171136TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog
172137
173138Неколку корисни **[Дијалог](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples)** процедури или функции не се појавуваат на Палетата, но лесно се користат како директни повици од вашата програма за изворен код.
174139
175140За неколку добри примери за употребата на компонентите види во поддиректориумот на инсталацијата на вашиот изворен код \$LazarusPath/lazarus/examples. Повеќето од програмите покажуваат како директно да користите дијалози и други компоненти, без употреба на IDE и палета на компоненти или, пак, со посебна датотека за дефиниција на форма: Сите компоненти се целосно и експлицитно дефинирани во главната Pascal програма. Други примерни програми целосно го употребуваат IDE.
176141
177142Некои примери не работат веднаш: можеби ќе треба да губите време со патеки и дозволи за датотеки или директориуми. Ако сакате да компајлирате некој од примерите, треба да бидете сигурни дека имате дозволи за читај/пишувај/изврши на датотеките и директориумите или, пак, да ги ископирате датотеките во директориум каде што имате соодветна дозвола.
178143
179144Обидете се да ја стартувате „testall“ програмата за да видите мени на достапни компоненти, заедно со мала група за тест-форми за повеќето од нив; потоа проверете го кодот да проверите како работат!
180145
181146- **Разно**
182147
183-<center>
184-
185-<figure>
186-<img src="Component_Palette_Misc-mk.png" title="Component_Palette_Misc-mk.png" />
187-<figcaption>Component_Palette_Misc-mk.png</figcaption>
188-</figure>
189-
190-</center>
148+![](/wiki-images/2/28/Component_Palette_Misc-mk.png)
191149
192150
193151[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox
194152
195153- **Управување со податоци**
196154
197-<center>
198-
199-<figure>
200-<img src="Component_Palette_DataControls-mk.png" title="Component_Palette_DataControls-mk.png" />
201-<figcaption>Component_Palette_DataControls-mk.png</figcaption>
202-</figure>
203-
204-</center>
155+![](/wiki-images/2/2d/Component_Palette_DataControls-mk.png)
205156
206157
207158*Компоненти свесни за податоци, кои во голем обем ги реплицираат Стандардните и Допонителните групи, но се применливи во база на податоци:* TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
208159
209160- **Пристап до податоци**
210161
211-<center>
212-
213-<figure>
214-<img src="Component_Palette_DataAccess-mk.png" title="Component_Palette_DataAccess-mk.png" />
215-<figcaption>Component_Palette_DataAccess-mk.png</figcaption>
216-</figure>
217-
218-</center>
162+![](/wiki-images/4/45/Component_Palette_DataAccess-mk.png)
219163
220164
221165TDatasource
222166
223167- **[[Систем]]**
224168
225-<center>
226-
227-<figure>
228-<img src="Component_Palette_System-mk.png" title="Component_Palette_System-mk.png" />
229-<figcaption>Component_Palette_System-mk.png</figcaption>
230-</figure>
231-
232-</center>
169+![](/wiki-images/2/2d/Component_Palette_System-mk.png)
233170
234171
235172[TTimer](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer), TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]
236173
237174- **SynEdit**
238175
239-<center>
240-
241-<figure>
242-<img src="Component_Palette_SynEdit-mk.png" title="Component_Palette_SynEdit-mk.png" />
243-<figcaption>Component_Palette_SynEdit-mk.png</figcaption>
244-</figure>
245-
246-</center>
176+![](/wiki-images/5/53/Component_Palette_SynEdit-mk.png)
247177
248178
249179*Група на компоненти, која помага при интерфејс со други јазици и софтверски алатки. SynEdit е напредна мултилиниска контрола за уредување за Borland Delphi, Kylix и C++Builder. Поддржува обележување синтакса и извршување код и вклучува експортирачи за html, tex and rtf. Претставува целосна-VCL/CLX контрола, што значи дека не е обвивка за Microsoft Windows контроли и не е потребна библиотека за време на извршување; ова го прави SynEdit a вкрстено-платформска компонента. Исто така, се планира компатибилност со FreePascal, а SynEdit е компонента за уредување во Lazarus IDE.* Види [synedit at sourceforge](http://synedit.sourceforge.net). TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn
250180
251181### Како да ја корисите палетата
252182
253183За да ја користите палетата, треба да постои отворена форма за преглед во уредувачот (ако не постои, избери Датотека -\> Нова форма). Кликнете на иконата во соодветното јазиче од палетата за компонентата што сакате да ја користите, потоа кликнете на формата, блиску на местото каде што сакате компонентата да се појави. Кога ќе се појави саканата компонента, можете да ја изберете со кликање на глувчето, потоа преместете ја на одреденото место на формата каде што сакате да ја наместите и приспособете ја нејзината големина. Можат да се направат приспособувања на изгледот, со преправање на сликата на формата со користење на сликата или со изменување на релевантната особина во Уредувачот на објектот за таа компонента.
254184
255185Ако инсталирате дополнителни компоненти, тоа што самите ги имате напишано или некои како пакет од некој друг изворен код, во тој случај на вашата палета за компоненти ќе се појават дополнителни јазичиња со соодветните икони. Новите компоненти можат да се изберат и да се употребат во вашите форми на ист начин како оние добиени по однапред зададен начин.
256186
257187## Како да користите стандардни, вообичаени и проширени управувачки елементи
258188
259-Модулите <i>StdCtrls</i>, <i>ComCtrls</i> и <i>ExtCtrls</i> содржат дефиниции и описи на повеќето од најстандардно употребуваните управувачки елементи за
189+Модулите StdCtrls, ComCtrls и ExtCtrls содржат дефиниции и описи на повеќето од најстандардно употребуваните управувачки елементи за
260190
261191изградба на форми и други објекти во Lazarus апликациите.
262192
263-Повеќето од конечните целни управувачки елементи што развивачите на апликацијата сакаат да ги користат, на пример, <i>TButton</i>,
193+Повеќето од конечните целни управувачки елементи што развивачите на апликацијата сакаат да ги користат, на пример, TButton,
264194
265-<i>TMemo</i>, <i>TScrollBar</i> итн., имаат одговарачки предок, на пример, <i>TCustomButton</i>, <i>TCustomMemo</i> или <i>TCustomScrollBar</i>. Неколку
195+TMemo, TScrollBar итн., имаат одговарачки предок, на пример, TCustomButton, TCustomMemo или TCustomScrollBar. Неколку
266196
267-од особините и методите, соодветни на конечните целни управувачки елементи подетално се дефинирани (и објаснети) во <i>TCustomXXX</i> класа и се
197+од особините и методите, соодветни на конечните целни управувачки елементи подетално се дефинирани (и објаснети) во TCustomXXX класа и се
268198
269-<b>наследени</b> од конечниот целен управувачки елемент.
199+наследени од конечниот целен управувачки елемент.
270200
271201Ако спуштите компонента на уредувачот на форма, не мора експлицитно да додавате код за да ја креирате. Компонентата заедно со формата,
272202
273203автоматски ќе се креира со IDE, а автоматски ќе се уништи при уништување на формата.
274204
275205Како и да е, ако вие самите ја креирате компонентата со код, не заборавајте да ја пуштите кога веќе нема да биде потребна.
276206
277207Ако поставите компонента на Дизајнерот на форма и погледнете во Објект-инспекторот, можете да ги набљудувате промените на особините додека ја
278208
279209движите компонентата наоколу.
280210
281211На пример, ако поставите копче (TButton) на формата, ако кликнете на него да го изберете и потоа го движите низ формата со глувчето,
282212
283213можете да набљудувате како вредностите на врвот и одлево се менуваат во Објект-инспекторот, со цел да ја одразат новата позиција. Ако ги користите линиите
284214
285215на објектот за менување на големината со цел да ја приспособите големината, можете исто така да набљудувате како особините за височина и широчина се
286216
287217менуваат.
288218
289219Од друга страна, пак, со употреба на Објект-инспекторот можете да ја иберете вредноста што се однесува на некоја особина, на пример,
290220
291221височина и тип во нова вредност; можете да набљудувате како големината на објектот на формата се менува со цел да ја одрази новата вредност.
292222
293223Исто така, можете експлицитно да ги промените особинте на објектот во код, со отчукување (во соодветниот Оддел за имплементација во Уредувачот на
294224
295225изворниот код), на пример,
296226
297227`         ``Form1.Button1.Height: = 48`\
298228`         `
299229
300230Ако ја внесете оваа нова вредност во Уредувачот на изворен код, а потоа се вратите назад да погледнете во Дизајнерот за форма, ќе забележите дека
301231
302232копчето на Формата има нова величина. Новата вредност, исто така, ќе се прикаже во Објект-инспекторот.
303233
304234Можеме да заклучиме дека постојат три различни начини за одредување особина на одреден објект:
305235
306236- со користење глувче,
307237- со поставување на вредностите во објект-инспекторот,
308238- експлицитно, со пишување на код.
309239
310240Компонентите дефинирани во овие модули имаат неколку особини што се стандардни за повеќето од нив и други особини што се специфични за
311241
312242индивидуалните компоненти. Овде ќе ги опишеме најстандардните од нив. Невообичаени особини или особини со специфичен управувачки елемент, ќе ги опишеме во
313243
314244индивидуалните управувачки елементи.
315245
316246Секогаш може да се добие дополнителна помош со избирање особина или клучен збор или во Објект-инспекторот или во Уредувачот на изворен код
317247
318-и со притискање на <b>F1</b>. Вашиот пребарувач за Помош ќе ве однесе на соодветната страница во документацијата.
248+и со притискање на F1. Вашиот пребарувач за Помош ќе ве однесе на соодветната страница во документацијата.
319249
320250Ако описот на особината на таа страница не е доволен, можете да навигирате до соодветниот опис во класите за предок, со избирање врски во
321251
322252набројувањето предци или со избирање Тип на предок во декларацијата за објектот.
323253
324-`           `<i>`Конструктори`</i>
254+`           ``Конструктори`
325255
326-`на пример, `<i>`Креирај`</i>` доделена меморија и системски ресурси што му се потребни на објектот. Исто така, тие го повикуваат конструкторот од кој било`
256+`на пример, ``Креирај`` доделена меморија и системски ресурси што му се потребни на објектот. Исто така, тие го повикуваат конструкторот од кој било`
327257
328258присутен подобјект во класата.
329259
330-`           `<i>`Уништувачи:`</i>
260+`           ``Уништувачи:`
331261
332-`го отстрануваат објектот и од-доделуваат меморија и други ресурси. Ако повикате `<i>`Уништи`</i>` за објект што сѐ уште не е инсталиран, ќе се генерира грешка. `
262+`го отстрануваат објектот и од-доделуваат меморија и други ресурси. Ако повикате ``Уништи`` за објект што сѐ уште не е инсталиран, ќе се генерира грешка. `
333263
334-Секогаш користете <i>Слободен</i> метод за од-доделување објекти, бидејќи тој проверува дали вредноста на објектот е <b>празна</b> пред повикување на
264+Секогаш користете Слободен метод за од-доделување објекти, бидејќи тој проверува дали вредноста на објектот е празна пред повикување на
335265
336-<i>Уништи</i>.
266+Уништи.
337267
338-Направете ги следниве мерки за претпазливост при креирање на ваш сопствен <i>Уништи</i> метод:
268+Направете ги следниве мерки за претпазливост при креирање на ваш сопствен Уништи метод:
339269
340-- Објави <i>Уништи</i> со директивата <b>натфрла</b>, затоа што тоа е <b>виртуелен</b> метод.
341-- Секогаш повикувај „<i>наследи уништи;</i>“ како последно нешто на кодот за уништувачот.
342-- Бидете свесни дека може да се појави <i>исклучок</i> на <i>конструктор</i> во случај да нема доволно меморија за креирање објект или ако
343- се случи нешто друго. Ако <i>исклучокот</i> не се изврши внатре во конструкторот, објектот ќе биде само делумно изграден. Во тој случај <i>Уништи</i> ќе се
270+- Објави Уништи со директивата натфрла, затоа што тоа е виртуелен метод.
271+- Секогаш повикувај „наследи уништи;“ како последно нешто на кодот за уништувачот.
272+- Бидете свесни дека може да се појави исклучок на конструктор во случај да нема доволно меморија за креирање објект или ако
273+ се случи нешто друго. Ако исклучокот не се изврши внатре во конструкторот, објектот ќе биде само делумно изграден. Во тој случај Уништи ќе се
344274
345275 повика кога не го очекувате, за да може вашиот уништувач да провери ако изворите навистина се доделени, пред да се ослободи од нив.
346-- Секогаш повикувајте <i>Слободен</i> за објекти креирани на конструкторот.
347-
348-\
349-
350-<table>
351-
352-<caption>
353-
354-<b>Некои стандардно наброени особини</b>
355-
356-</caption>
357-
358-<tr>
359-
360-<td>
361-
362-<b>Особина</b>
363-
364-</td>
365-
366-<td>
367-
368-<b>Значење</b>
369-
370-</td>
276+- Секогаш повикувајте Слободен за објекти креирани на конструкторот.
371277
372-</tr>
278+Некои стандардно наброени особини
373279
374-<tr>
280+Особина
375281
376-<td>
282+Значење
377283
378284Action
379285
380-</td>
381-
382-<td>
383-
384286Главното дејство или настан што се однесува на објектот. На пример, избирањето на копчето „Излези“ може да предизвика дејство „Затвори“.
385287
386-</td>
387-
388-</tr>
389-
390-<tr>
391-
392-<td>
393-
394288Align
395289
396-</td>
397-
398-<td>
399-
400290Го дефинира начинот на кој објектот треба да се подреди со објектот родител. Можни вредности се alTop (поставена на врвот, користејќи ја целата достапна широчина), alBottom, alLeft (поставена на лево, користејќи ја целата достапна височина), alRight. alNone (поставена каде било на родител-управувачкиот елемент) или alClient (го зазема целиот достапен простор веднаш до управувачките елементи порамнети на врвот, дното, лево и десно).
401291
402-</td>
403-
404-</tr>
405-
406-<tr>
407-
408-<td>
409-
410292Anchor
411293
412-</td>
413-
414-<td>
415-
416-Се користи за држење на управувачкиот елемент на одредена далечина од дефинираните рабови на родител-управувачкиот елемент, кога се менува големината на родителот. На пример, <b>\[akBottom, akRight\]</b> ќе го држи управувачкиот елемент на фиксна оддалеченост од долниот десен агол.
417-
418-</td>
419-
420-</tr>
421-
422-<tr>
423-
424-<td>
294+Се користи за држење на управувачкиот елемент на одредена далечина од дефинираните рабови на родител-управувачкиот елемент, кога се менува големината на родителот. На пример, \[akBottom, akRight\] ќе го држи управувачкиот елемент на фиксна оддалеченост од долниот десен агол.
425295
426296AutoSelect
427297
428-</td>
429-
430-<td>
431-
432298Кога е точно, управувачки елемент за уредување ќе го избере целиот текст кога ќе прими фокус или кога ќе се притисне копчето Внеси.
433299
434-</td>
435-
436-</tr>
437-
438-<tr>
439-
440-<td>
441-
442300AutoSelected
443301
444-</td>
445-
446-<td>
447-
448302Точно индицира дека уредувањето или комбо-поле управувачкиот елемент тукушто извршил AutoSelect операција, за последователните кликања на глувчето и на копчињата од тастатурата да продолжат нормално, без избирање текст.
449303
450-</td>
451-
452-</tr>
453-
454-<tr>
455-
456-<td>
457-
458304BorderSpacing
459305
460-</td>
461-
462-<td>
463-
464-Просторот околу рабовите помеѓу <i>Anchored</i> уредувачки елемент и неговиот родител.
465-
466-</td>
467-
468-</tr>
469-
470-<tr>
471-
472-<td>
306+Просторот околу рабовите помеѓу Anchored уредувачки елемент и неговиот родител.
473307
474308Caption
475309
476-</td>
477-
478-<td>
479-
480310Текстот што е прикажан на или до управувачкиот елемент; треба првенствено да даде индикација за функцијата на управувачкиот елемент или инструкција како „Затвори“ или „Изврши“. Како однапред зададен, насловот е поставен да биде ист како и особината „Име“, а програмерот на апликацијата треба да го замени со значаен текст наместо однапред зададените вредности.
481311
482-</td>
483-
484-</tr>
485-
486-<tr>
487-
488-<td>
489-
490312CharCase
491313
492-</td>
493-
494-<td>
495-
496314Укажува како одреден текст е прикажан на управувачкиот елемент за уредување: Нормално (задржувајќи ја формата на буквите што ги отчукува корисникот), конвертирани во големи букви или конвертирани во мали букви.
497315
498-</td>
499-
500-</tr>
501-
502-<tr>
503-
504-<td>
505-
506316Constraints
507317
508-</td>
509-
510-<td>
511-
512318Ја поставува минималната и максималната големина на управувачкиот елемент. Во случај да се промени големината на управувачкиот елемент, новите димензии се секогаш во рамките на дометот зададен овде. Треба да внимавате при поставувањето на овие опции, со цел тие да не им противречат на поставките Фиксирања и Порамнување.
513319
514-</td>
515-
516-</tr>
517-
518-<tr>
519-
520-<td>
521-
522320Color
523321
524-</td>
525-
526-<td>
527-
528322Бојата што ќе се користи за изработка на управувачкиот елемент или за пишување на текстот што го содржи.
529323
530-</td>
531-
532-</tr>
533-
534-<tr>
535-
536-<td>
537-
538324Enabled
539325
540-</td>
541-
542-<td>
543-
544-Булова особина за одредување на тоа дали управувачкиот елемент е способен или не, за селектирање и извршување на одредено дејство. Ако не е <i>Овозможено</i>, често е <b>Сиво</b> надвор од формата.
545-
546-</td>
547-
548-</tr>
549-
550-<tr>
551-
552-<td>
326+Булова особина за одредување на тоа дали управувачкиот елемент е способен или не, за селектирање и извршување на одредено дејство. Ако не е Овозможено, често е Сиво надвор од формата.
553327
554328Font
555329
556-</td>
557-
558-<td>
559-
560330Фонтот што ќе се користи за пишување текст што се однесува на управувачкиот елемент – или насловот или ознаката или текстуалните стрингови содржани во управувачкиот елемент. Внесувањето на Објект-инспекторот обично има поле (+) од левата страна, а со избирање на ова поле се појавуваат дополнителни опции, на пример, поставка на знаци, боја и големина.
561331
562-</td>
563-
564-</tr>
565-
566-<tr>
567-
568-<td>
569-
570332Hint
571333
572-</td>
573-
574-<td>
575-
576334Мал информативен скокачки текст, што се појавува ако покажувачот на глувчето лебди над управувачкиот елемент.
577335
578-</td>
579-
580-</tr>
581-
582-<tr>
583-
584-<td>
585-
586336Items
587337
588-</td>
589-
590-<td>
591-
592338Листата на „Работи“ што ги содржи објектот, како што се група на слики, серија на текстуални линии, неколку дејства во листа на дејства итн.
593339
594-</td>
595-
596-</tr>
597-
598-<tr>
599-
600-<td>
601-
602340Lines
603341
604-</td>
605-
606-<td>
607-
608342Ред на стрингови, што ги содржат текстуалните податоци со повеќе од една линија на податоци, на пример, Уреди-поле или Комбо-поле. Редот е нулта-индексиран, односно, линиите се нумерирани \[0..numLines-1\].
609343
610-</td>
611-
612-</tr>
613-
614-<tr>
615-
616-<td>
617-
618344Name
619345
620-</td>
621-
622-<td>
623-
624346Идентификаторот по кој се познава управувачкиот елемент во програмата. IDE му дава однапред зададено име, врз основа на основниот тип, на пример, successive instances на TBitButton ќе биде именувано Form1.BitBitton1 и Form1.BitButton2; од програмерот на апликацијата зависи дали ќе им даде позначајни имиња на пример, ExitButton или OKButton. Името на управувачкиот елемент се применува на Насловот за управувачкиот елемент како однапред зададен, но текстот на насловот може посебно да се промени.
625347
626-</td>
627-
628-</tr>
629-
630-<tr>
631-
632-<td>
633-
634348PopUpMenu
635349
636-</td>
637-
638-<td>
639-
640350Прозорец што содржи контексно-зависно мени со информации што се појавува во моментот кога ќе го кликнете десното копче од глувчето на објектот.
641351
642-</td>
643-
644-</tr>
645-
646-<tr>
647-
648-<td>
649-
650352Позиција (или Врв, Лево)
651353
652-</td>
653-
654-<td>
655-
656354Одредува каде се наоѓа управувачкиот елемент на родител формата или на прозорецот.
657355
658-</td>
659-
660-</tr>
661-
662-<tr>
663-
664-<td>
665-
666356ReadOnly
667357
668-</td>
669-
670-<td>
671-
672358Булова особина, која ако е точно, означува дека корисникот или рутината за повикување, можат да ја читаат содржината на управувачкиот елемент, но не можат да ја пишуваат или да ја менуваат.
673359
674-</td>
675-
676-</tr>
677-
678-<tr>
679-
680-<td>
681-
682360ShowHint
683361
684-</td>
685-
686-<td>
687-
688362Овозможува прикажување на мал прозорец што содржи контексно-зависна помош или други описи, во моментот кога со покажувачот на глувчето ќе лебдите над управувачкиот елемент.
689363
690-</td>
691-
692-</tr>
693-
694-<tr>
695-
696-<td>
697-
698364Големина (или Височина и Широчина)
699365
700-</td>
701-
702-<td>
703-
704366Димензиите на управувачкиот елемент.
705367
706-</td>
707-
708-</tr>
709-
710-<tr>
711-
712-<td>
713-
714368Style
715369
716-</td>
717-
718-<td>
719-
720370Опциите достапни за стил зависат од видот на управувачкиот елемент што се зема предвид: На пример, стилот може да се одреди со TFormStyle, TBorderStyle, TButtonStyle итн.
721371
722-</td>
723-
724-</tr>
725-
726-<tr>
727-
728-<td>
729-
730372TabOrder
731373
732-</td>
733-
734-<td>
735-
736374Цел број каде што овој управувачкиот елемент треба да биде поставен во серијата табови на формата.
737375
738-</td>
739-
740-</tr>
741-
742-<tr>
743-
744-<td>
745-
746376TabStop
747377
748-</td>
749-
750-<td>
751-
752378Булова особина, која ако е точно, го поставува овој управувачкиот елемент во серијата објекти, до кои корисникот може стигне со последователно притискање на копчето Таб.
753379
754-</td>
755-
756-</tr>
757-
758-<tr>
759-
760-<td>
761-
762380Text
763381
764-</td>
765-
766-<td>
767-
768-Стринг на текст што ги претставува вистинските податоци што овој управувачкиот елемент ги содржи. Особено се применува во типови објекти Текст, Мемо и Листа на стрингови. Повеќето од операциите за уредување (на пример, <i>Избери</i>, <i>Исчисти</i>, <i>Отсечи</i>, <i>Копирај</i>) се извршуваат во овој дел од објектот, кој го содржи вистинскиот стринг што, всушност, се уредува. Ако управувачкиот елемент содржи повеќе од една линија на текст, на пример, <i>TMemo</i> or <i>TComboBox</i>, во тој случај текстуалните елементи се подредуваат во ред од стрингови (нулта-индексиран, односно, нумерирани од \[0..numLines-1\]) во <i>Линии</i>.
769-
770-</td>
771-
772-</tr>
773-
774-<tr>
775-
776-<td>
382+Стринг на текст што ги претставува вистинските податоци што овој управувачкиот елемент ги содржи. Особено се применува во типови објекти Текст, Мемо и Листа на стрингови. Повеќето од операциите за уредување (на пример, Избери, Исчисти, Отсечи, Копирај) се извршуваат во овој дел од објектот, кој го содржи вистинскиот стринг што, всушност, се уредува. Ако управувачкиот елемент содржи повеќе од една линија на текст, на пример, TMemo or TComboBox, во тој случај текстуалните елементи се подредуваат во ред од стрингови (нулта-индексиран, односно, нумерирани од \[0..numLines-1\]) во Линии.
777383
778384Visible
779385
780-</td>
781-
782-<td>
783-
784386Ако е точно, објектот може да се види на формата; ако е неточно, објектот е скриен.
785387
786-</td>
787-
788-</tr>
789-
790-<tr>
791-
792-<td>
793-
794388WordWrap
795389
796-</td>
797-
798-<td>
799-
800390Логичен индикатор за прикажување на тоа дали е овозможено пакување на зборови, односно, ако некој збор се приближува до крајот на линијата, а ќе биде преголем за линијата, тогаш се пакува долу до следната линија.
801391
802-</td>
803-
804-</tr>
805-
806-</table>
807-
808392Многу дејства се стандардно подредени во јазичето за „Настани“ во Објект-инспекторот. Ако изберете упис од листата, се појавува Комбо-поле со паѓачка листа, на која се прикажуваат сите веќе дефинирани дејства, овозможувајќи ви да изберете едно што се однесува на овој настан. Можете дополнително да изберете елипса (три точки...) по што ќе бидете однесени во областа на Уредувачот на изворен код, каде што можете да почнете со отчукување на вашите инструкции за дејство за одбраниот настан.
809393
810394Иако се достапни голем број настани за секој даден управувачки елемент, во пракса потребно е само да применувате неколку од нив. Кај повеќето управувачки елементи, значајно е да се обезбеди кодирање за „OnClick“; за покомплексни управувачки елементи можеби, исто така, ќе биде потребно да обезбедите „OnEntry“ (кога покажувачот на глувчето ќе го влезе во Управувачкиот елемент и му даде фокус) и „OnExit“ (кога покажувачот на глувчето ќе го напушти Управувачкиот елемент; или ќе треба да напишете управувач на настан за „OnChange“ или „OnScroll“, во зависност од природата на одредениот управувачки елемент со кој работите.
811395
812396Скокачкото мени што се појавува кога ќе кликнете на десното копче од глувчето на објект во Дизајнерот на формата, како прв елемент го има: „Креирајте однапред зададени настани“, избирањето на оваа опција го има истиот ефект како и избирањето на елипсата во Објект-инспекторот за однапред зададен настан, обично OnClick: ќе бидете однесени во областа за имплементација на Уредувачот на изворен код, каде што можете да го отчукувате кодот за извршувачот на настани.
813397
814-Стандардна стратегија во Објект-ориентирано програмирање е обезбедување на <i>ActionList</i> со способноста за внесување, отстранување или уредување на голем број на преддефинирани дејства, од кои може да се избере најсоодветното за употреба во кој било случај.
815-
816-\
817-
818-<table>
819-
820-<caption>
821-
822-<b>Некои стандардно наброени дејства</b>
823-
824-</caption>
825-
826-<tr>
827-
828-<td>
829-
830-<b>Дејство</b>
831-
832-</td>
833-
834-<td>
835-
836-<b>Значење</b>
398+Стандардна стратегија во Објект-ориентирано програмирање е обезбедување на ActionList со способноста за внесување, отстранување или уредување на голем број на преддефинирани дејства, од кои може да се избере најсоодветното за употреба во кој било случај.
837399
838-</td>
400+Некои стандардно наброени дејства
839401
840-<tr>
402+Дејство
841403
842-<td>
404+Значење
843405
844406OnChange
845407
846-</td>
847-
848-<td>
849-
850408Треба да се преземе дејство ако се детектира каква било промена (на пример, движење на глувче, кликање со глувче, притискање на копче, уредување текст, измена на слика итн.)
851409
852-</td>
853-
854-</tr>
855-
856-<tr>
857-
858-<td>
859-
860410OnClick
861411
862-</td>
863-
864-<td>
865-
866412Треба да се преземе дејство кога се клика на (левото) копче од глувчето. Ова обично е главното или однапред зададено дејство од управувачкиот елемент; на пример, кликање копче или поле за штиклирање иницира дејство што се однесува на полето за штиклирање. Дополнително може да иницира процес на избирање, на пример, во TextBox или Memo, или да го сигнализира почнувањето цртање Пенкало или Четка.
867413
868-</td>
869-
870-</tr>
871-
872-<tr>
873-
874-<td>
875-
876414Click
877415
878-</td>
879-
880-<td>
881-
882416Метод за симулација на ефектот од кликање на управувачки елемент во кодот. Овој метод најчесто го има во тип на управувачки елементи со копче (TButton, TBitBtn, TspeedButton итн.). Може да се напише процедура за повикување на истиот код како и OnClick дејството. Оваа услуга може да биде особено корисна ако активирањето на еден управувачки елемент со кликање предизвика пад или активација на други управувачки елементи, тогаш методот Кликање може да се употреби за иницирање дејство, за корисникот да не клика експлицитно на многу контроли.
883417
884-</td>
885-
886-</tr>
887-
888-<tr>
889-
890-<td>
891-
892418OnDragDrop
893419
894-</td>
895-
896-<td>
897-
898420Треба да се преземе дејство за време на Влечи-Пушти маневрирањето, односно, кога глувчето се користи за „фаќање“ елемент или на некој текст итн. и за негово придвижување низ екранот на друга локација.
899421
900-</td>
901-
902-</tr>
903-
904-<tr>
905-
906-<td>
907-
908422OnEntry
909423
910-</td>
911-
912-<td>
913-
914424Треба да се преземе дејство кога покажувачот на глувчето ќе влезе во областа што ја зафаќа објектот, обично преместувајќи го фокусот на тој објект. Ова може да вклучува промени во изгледот на објектот, на пример, обележување или кревање на границата.
915425
916-</td>
917-
918-</tr>
919-
920-<tr>
921-
922-<td>
923-
924426OnExit
925427
926-</td>
927-
928-<td>
929-
930428Треба да се преземе дејство кога покажувачот на глувчето ќе излезе од областа што ја зафаќа објектот, обично преместувајќи го фокусот надвор од објектот.
931429
932-</tr>
933-
934-<tr>
935-
936-<td>
937-
938430OnKeyPress
939431
940-</td>
941-
942-<td>
943-
944432Треба да се преземе дејство за секое притискање копче. Различно од OnKeyDown, што обично одговара на копче што е долу, без разлика дали тоа веќе било долу кога му е даден фокус на овој управувачки елемент.
945433
946434`OnKeyPress бара притискање на копче додека фокусот е не овој управувачки елемент.`
947435
948-</td>
949-
950-</tr>
951-
952-<tr>
953-
954-<td>
955-
956436OnKeyDown
957437
958-</td>
959-
960-<td>
961-
962438Треба да се преземе дејство ако одредено копче е долу, додека фокусот е на овој управувачки елемент. Различно од OnKeyPress – на пример, копчето можеби веќе било долу кога фокусот влегол во овој управувачки елемент, додека OnKeyPress копчето да се притисне кога фокусот е на овој управувачки елемент.
963439
964-</td>
965-
966-</tr>
967-
968-<tr>
969-
970-<td>
971-
972440OnKeyUp
973441
974-</td>
975-
976-<td>
977-
978442Треба да се преземе дејство ако одредено копче е горе (односно, не е притиснато) додека фокусот е на овој управувачки елемент.
979443
980-</td>
981-
982-</tr>
983-
984-<tr>
985-
986-<td>
987-
988444OnMouseMove
989445
990-</td>
991-
992-<td>
993-
994446On Mouse Down - Треба да се преземе дејство ако покажувачот на глувчето се движи додека фокусот е на овој управувачки елемент.
995447
996-</td>
997-
998-</tr>
999-
1000-<tr>
1001-
1002-<td>
1003-
1004448OnMouseDown
1005449
1006-</td>
1007-
1008-<td>
1009-
1010450On Mouse Down - Треба да се преземе дејство ако покажувачот на глувчето е долу додека фокусот е на овој управувачки елемент.
1011451
1012-</td>
1013-
1014-</tr>
1015-
1016-<tr>
1017-
1018-<td>
1019-
1020452OnMouseUp
1021453
1022-</td>
1023-
1024-<td>
1025-
1026454Треба да се преземе дејство ако копчето на глувчето е горе, а покажувачот на глувчето врз овој управувачки елемент. Означува дека копчето на глувчето претходно било долу, а сега е ослободено. Во случаите кога покажувачот влегува во управувачкиот елемент, но копчето на глувчето сѐ уште не е притиснато, се опфаќа со OnEntry или OnMouseEnter.
1027455
1028-</td>
1029-
1030-</tr>
1031-
1032-<tr>
1033-
1034-<td>
1035-
1036456OnResize
1037457
1038-</td>
1039-
1040-<td>
1041-
1042458Треба да се преземе дејство кога се менува големината на управувачкиот елемент. Ова може да вклучува повторно порамнување на текст или избирање на различна големина на фонт итн.
1043-
1044-</td>
1045-
1046-</tr>
1047-
1048-</table>
1049459
1050460### Како да користите менија
1051461
1052462Сугестии за креирање менија за вашите форми
1053463
1054464*TMainMenu* е главното мени што се појавува на врвот кај повеќето форми: дизајнерите на формите можат да го креираат со избирање на различни елементи за мени. *TPopupMenu* е прозорец за мени што се појавува со значајни, обично чувствителни при контекст детали и избори, во моментот кога ќе го кликнете десното копче од глувчето близу до контролата.
1055465
1056466Главното мени претставува невидлива компонента: односно, ако ја изберете иконата од палетата за компоненети и ја поставите на формата, нема да се појави во времето на извршување. Наместо тоа, ќе се појави линија со мени со дефинирана структура од Уредувачот на мени. Скокачки менија поставени на формата, воопшто не се појавуваат со избирање икона од Палетата за компоненти, освен ако го кликнете со десното копче од глувчето за контрола што има такво мени.
1057467
1058468За да го видите Уредувачот на мени, кликнете со десното копче од глувчето на иконата за Главното мени или на Скокачкото мени на вашата форма. Притоа, ќе се појави скокачко поле, кое ве повикува да внесете елементи во линијата за мени.
1059469
1060470Ќе се прикаже поле за уредување, кое содржи копче означено како Нов елемент1. Ако кликнете со десното копче од глувчето на тоа поле, ќе се прикаже скокачко мени што ви овозможува да додадете нов елемент пред или по (во должина на истото ниво1) или да креирате подмени со можност да додадете дополнителни елементи под (или над) новиот елемент во удолу поставената колона.
1061471
1062472Некој или сите од *Елементите на менито* што ги додавате, можат да се конфигурираат со употреба на Објект-инспектор.
1063473
1064474Во најмала рака, на секој елемент треба да му дадете *Наслов* што ќе се појави на линијата за мени (исто така, можете да му дадете и позначајно *Име*). Насловот треба да го означува дејството што ќе се избере, на пример, „Отвори датотека“, „Затвори“, „Стартувај“ или „Напушти“.
1065475
1066476Ако сакате посебна буква во насловот да се поврзува со копче за кратенка, пред буквата треба да стои ampersand. Во времето на извршување, елементот од менито ќе се појавува со подвлечена буква за кратенка, а со притискање на копчето со таа буква ќе го има истиот ефект како и избирање на елементот од менито. Како алтернатива, можете да изберете серија од копчиња за кратенки (на пример, Ctrl-C за Копирај или Ctrl-V за Залепи – стандардните кратенки на тастатурата) со *ShortCut* особина на Главниот елемент.
1067477
1068478Често се смета за корисно користењето на управувачките елементи на мeнито заедно со *ActionList* што содржи серија на стандардни кориснички *Дејства*. Елементите од менито можат да се поврзат со дејствата од листата во Објект-инспекторот, а истите дејства можат да се поврзат со *Копчиња*, *Копчиња на Алатник* и*Брзи копчиња* Очигледно е дека е економична заложбата за повторна употреба на истиод код за да се одговори на различни настани, отколку да се пишува посебен *OnClick* извршувач на настани за секоја контрола посебно.
1069479
1070480Како однапред предвчитани се неколку стандардни дејства од *StdActns* или ако се користат DataAware управувачките елементи од *DBActns*, овие можат да се избираат со употреба на Уредувачот за листа на дејства, што се појавува ако кликнете со десното копче од глувчето на иконата за листа на дејства, што се наоѓа на Дизајнерот на формата.
1071481
1072482## Пребарувач на грешки
1073483
1074484
1075485*Сѐ уште не е напишано*.
1076486
1077487види, исто така, [IDE Прозорец - Пребарувач на грешки](/wiki-category/IDE%20Window%20-%20Debug)
1078488
1079489## Lazarus датотеки
1080490
1081491(Благодарност до Кевин Вајтфут.)
1082492
1083493(Дополнето од Џузепе Ридино, Корисник Kirkpatc и Том Лисјак)
1084494
1085495Кога зачувувате, всушност, вие ќе зачувувате две датотеки:
1086496
1087497`  xxx.pas и yyy.lpr `
1088498
1089499(Зачувувате повеќе, но тие се оние што можете да ги именувате). Проект-датотеката (lpr) и модул-датотеката (pas) не смеат да имаат исто име затоа што Lazarus ќе го преименува модулот (внатре во изворниот код), како и името на модул-датотека и програмата во името на проект-датотеката (ова мора да го направи затоа што подоцна, компајлерот нема да може да го пронајде модулот кога ќе се упатува во проект-датотеката). Се разбира, со цел да биде доследен, ги менува сите појави на модул1 во xxx.
1090500
1091501Притоа, ако зачувувате проект наречен **again**, обидот да зачувате again.pas и again.lpr е неуспешен бидејќи имињата на модулот и имињата на програмата се наоѓаат во истиот простор за име, што резултира во грешка на дуплицирано име.
1092502
1093503Еве до што дојдов:
1094504
1095505e:/lazarus/kj/lazhello:
1096506
1097507`total 4740  free 76500`\
1098508`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
1099509`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
1100510`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
1101511`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
1102512`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
1103513`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
1104514`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
1105515`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
1106516
1107517Ќе забележите дека постојат многу повеќе датотеки отколку оние две што јас мислев дека ги зачувувам.
1108518
1109519Ова е кратко објаснување за секоја датотека:
1110520
1111521**again.exe:** Главната програма бинарно извршлива. Win32 додава „exe“ наставка. Linux нема (само името на програмата). Датотеката ќе биде огромена во Linux како резултат на вклучувањето на симболите за пребарување грешки. Стартувајте ја услугата „отстрани“ со цел да ги отстраните и значително да ја намалите големината за извршување.
1112522
1113523**again.lpi:** (Информации за проектот Lazarus). Ова е главната информациска датотека на Lazarus проектот, иста Delphi главна датотека од апликацијата ќе биде .dpr датотека. Зачувана е во XML-датотека и содржи информации за сите библиотеки и модули што се потребни за изградба на извршена датотека.
1114524
1115525**again.lpr:** Датотеката за изворниот код на главната програма или основна датотека. И покрај специфичната наставка за lazarus, тоа всушност претставува перфектно нормална датотека за изворен код на Pascal. Има клаузула за употреби што му дозволува на компајлерот да ги пронајде сите потребни модули. Ќе забележите дека програмскиот исказ не треба да ја именува програмата на ист начин како името на датотеката. Оваа датотека вообичаено е значително мала, со само неколку искази за инсталирање, изградба на форма, стартување и затворање апликација. Повеќето од работата се извршува во датотеките за изворните кодови на модулот, со наставка „.pas“.
1116526
1117527**againu.lfm:** Тука Lazarus го складира распоредот за модулот на формата, на начин читлив за човекот. Ги претставува особините на различни компоненети, на начин на којшто се поставени во Објект-инспекторот. Секој опис на објект почнува со линија:
1118528
1119529`објект xxxx `
1120530
1121531Потоа следува листа на особини (вклучувајќи вклопени или вградени објекти), потоа линија за крај. Lazarus ја користи оваа датотека за да генерира изворна датотека (.lrs) што е вклучена во одделот за инсталација на модулот againu.pas. Датотеките Delphi dfm, можат да се конвертираат во lfm формат во Lazarus IDE, со користење на услугата Алатки -\> Конвертирај DFM датотека во LFM.
1122532
1123533**againu.lrs:** Ова е генерираната изворна датотека, што ги содржи инструкциите на програмата за градење форма (ако погледнете во главната датотека на модулот, во одделот за инсталирање ќе ја видите линијата
1124534
1125535`{$i againu.lrs} `
1126536
1127537што ѝ дава инструкции на програмата за вчитување на изворната датотека). Ќе забележите дека ова не е изворна датотека за Windows.
1128538
1129539**againu.pas:** Модулот што го содржи кодот за формата; ова обично е единствената датотека што програмерот на апликацијата треба да ја уреди или, пак, да ја истражи и содржи кодови специфично понудени од страна на програмерот (посебно извршувачи на настани).
1130540
1131541**againu.ppu:** Ова е генерираниот модул што се поврзува во извршната датотека, заедно со други модули именувани во одделот за Употреби.
1132542
1133543**ppas.bat:** Ова е едноставен запис што ја поврзува програмата со цел да ја произведе извршливата команда. Ако компилацијата е успешна, тогаш таа се брише од страна на компајлерот.
1134544
1135545## Листа на соработници и промени на текстот
1136546
1137547Оваа страница е импортирана од epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
1138548
1139549- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
1140550- Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 User:Kirkpatc
1141551- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
1142552- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
1143553- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
1144554- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
1145555- Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 User:Kirkpatc
1146556- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
1147557- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
1148558- More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 User:Kirkpatc
1149559- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
1150560- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
1151561- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
1152562- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
1153563- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
1154564- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
1155565- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
1156566- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
1157567- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
1158568- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
1159569- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
1160570- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
1161571- Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 User:Kirkpatc
1162572- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
1163573- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
1164574- Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 User:Kirkpatc
1165575- Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 User:Kirkpatc
1166576- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
1167577- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
1168578- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
1169579- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
1170580- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
1171581- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
1172582- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
1173583- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
1174584- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
1175585- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
1176586- Returned after a long absence! Changed link for component descriptions in StdCntls group of ComponentPalette to point directly at the Lazarus on-line help html pages. 25 Sept 2007 User: Kirkpatc
1177587- Uploaded some more up-to-date screenshots and fixed links in descriptions of the Menus. 2 October 2007 User: Kirkpatc
1178588- Fixed links for component descriptions in Extra Controls section of Component Palette. 2 October 2007 User: Kirkpatc
1179589- Added sections on How to use Standard Controls etc and How to use Menus (based on topics in the LCL Documentation). Fixed some links in Component Palette. 4th June 2008 User: Kirkpatc
1180590- Some edits and additions to the Lazarus Files section. 12th July 2008 User: Kirkpatc
1181591- Translated from English into Macedonian by Ljupka Pulovska. 25th September 2008 User:Ljupka
1182592
1183593---
1184594*From the Free Pascal wiki, page "Lazarus Tutorial/mk", as it stood on 2021-12-08 after a change by Kupferstecher, 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).*

Back to history