Sign in Join
Wiki copytemporary

Lazarus Tutorial/fi: what changed

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

OldNewLine
11*Tästä alkaa Lazarus Tutorial. Voit vapaasti parantaa sitä.*
22
33## Yleistä
44
55Lazarus on vapaa avoimeen lähdekoodiin perustuva ohjelmankehitysympäristö joka pohjautuu [[FPC/fi|FreePascal Compiler]] (object pascal), Joka on myös vapaa ja avointa lähdekoodia. Lazaruksen [[IDE/fi|käyttöliittymä]] ([[Screenshots|kuvakaappauksia]]) on vakaa ja ominaisuuksiltaan monipuolinen ohjelman kehitysympäristö jolla voi tehdä itsenäisiä [[Graphical User Interface/fi|graafisia]] ja [[Command-line interface/fi|komentorivillä]] toimivia sovelluksia. Se toimii Linux:ssa, [[FreeBSD]]:ssä, Win32:ssa, Mac:ssa ja on varustettu customoitavalla lähdekoodieditorilla ja visuaalisella lomakkeen muotoilulla jossa mukana komponenttipakettienhallinta, [[Debugger/fi|virheenjäljitin]] ja täydelliset graafiset käyttöliittymäkomponentit integroituna FreePascal [[Compiler/fi|kääntäjään]].
66
77## Aloittaminen
88
99Hanki, [[Installing Lazarus|asenna]] ja käynnistä Lazarus jossa pitää olla Free Pascal Compiler mukana.
1010
1111> **Note:** Ainakin Linux Ubuntussa, Lazaruksen käynnistyskomento on konsolissa (päätteessä) "startlazarus". Jos olet asentanut Lazaruksen Debianin pakettina, niin Lazarus pitäisi olla valikkokohdan Sovellus / ohjelmointi alla. (Huomaa: Debian ja Ubuntu tärkeimmät binary ja paketti on nimeltään "Lazarus-ide", koska on myös "TCT" paketti jossa mukana tulee apuohjelma nimeltä "Lazarus").
1212
1313### Ensimmäinen Lazarus ohjelma!
1414
1515Päävalikosta valitsemalla Projekti-Uusi projekti-Sovellus (tai: Tiedosto-Uusi-projekti-Sovellus) niin uusi graafinen sovellus luodaan, katso myös [[Form Tutorial|Form opetusohjelma]] .
1616
1717Useita ikkunoita ilmestyy työpöydälle: Päävalikkoikkuna yläreunassa, Komponenttimuokkain on vasemmalla, "Lähdekoodieditori" täyttää työpöydän ja valmis lomake "Form1" on omassa ikkunassa ([[TForm/fi|Form1]] ) Lähdekoodieditorin päällä.
1818
1919Jos halutaan sijoittaa painike lomakkeelle: Päävalikkoikkunan alaosassa on välilehtirivi. Jos "[[Standard tab/fi|Standard]]" välilehti ei ole jo valittu, valitse se klikkaamalla hiirellä. Sen jälkeen etsii [[TButton/fi|Button]] kuvakkeen (![](/wiki-images/b/b2/Tbutton.png) eli suorakulmio jossa on "OK"-teksti) ja klikkaa sitä hiirellä. Sitten Form1 ikkunassa klikataan jonnekin keskilinjan vasemmalla puolen. Varjostettu "Button1"-tekstillä merkitty suorakulmio ilmestyy siihen. Klikkaa jälleen Button kuvaketta Standard -välilehdellä ja klikkaa Form1-ikkunassa jonnekin oikealle keskelle: toinen "Button2"-tekstillä merkitty suorakulmio ilmestyy.
2020
21-Nyt klikkaa Button1 jotta se valitaan. Komponenttimuokkainikkuna näyttää nyt kohteen Button1-ominaisuudet. Yläosassa on ominaisuus nimeltä 'Caption', jossa näytetään arvo "Button1". Klikkaa kyseistä kohtaa (ruudukkoa) ja muuta teksti "Button1" muotoon "Press". Jos painat <span class="kbd">ENTER</span> tai klikkaat toista ruutua näet että Form1-lomakkella ensimmäisen painikkeen teksti muuttuu "Press":ksi. Nyt klikkaat Tapahtumat -välilehteä komponenttimuokkaimessa niin näet erilaisia tapahtumia, jotka voivat liittyä tähän Button1-painikkeeseen. Näitä ovat onClick, OnEnter, OnExit jne. Valitse onClick oikealla puolella oleva ruutu. Tällöin siihen ilmestyy pienempi laatikko kolmella pisteellä (...). Kun klikkaat tätä, se otetaan automaattisesti osaksi lähdekoodieditorissa ja kursorin sijoitetaan koodinpätkän keskelle:
21+Nyt klikkaa Button1 jotta se valitaan. Komponenttimuokkainikkuna näyttää nyt kohteen Button1-ominaisuudet. Yläosassa on ominaisuus nimeltä 'Caption', jossa näytetään arvo "Button1". Klikkaa kyseistä kohtaa (ruudukkoa) ja muuta teksti "Button1" muotoon "Press". Jos painat `ENTER` tai klikkaat toista ruutua näet että Form1-lomakkella ensimmäisen painikkeen teksti muuttuu "Press":ksi. Nyt klikkaat Tapahtumat -välilehteä komponenttimuokkaimessa niin näet erilaisia tapahtumia, jotka voivat liittyä tähän Button1-painikkeeseen. Näitä ovat onClick, OnEnter, OnExit jne. Valitse onClick oikealla puolella oleva ruutu. Tällöin siihen ilmestyy pienempi laatikko kolmella pisteellä (...). Kun klikkaat tätä, se otetaan automaattisesti osaksi lähdekoodieditorissa ja kursorin sijoitetaan koodinpätkän keskelle:
2222
2323``` pascal
2424procedure TForm1.Button1Click(Sender: TObject);
2525begin
2626 {Kirjoita tai kopio&liitä tämä puuttuva osa:}
2727 Button1.caption := 'Press again';
2828 {Lähdekoodieditori on jo täydentänyt aliohjelman lopun}
2929end;
3030```
3131
32-Painamalla <span class="kbd">F12</span> nähdään lähdekoodieditorin sijasta lomakkeen Form1 ikkuna.
32+Painamalla `F12` nähdään lähdekoodieditorin sijasta lomakkeen Form1 ikkuna.
3333
3434Nyt muokataan Button2 ominaisuuksia : klikkaa Button2 jotta nähdään sen ominaisuuksia komponenttimuokkaimessa. Muuta sen Caption [[Property|ominaisuuteen (property)]] "Button2" tekstin tilalle "Exit". Valitse tapahtumat-välilehti ja klikkaa onClick. Klikkaa kolmea pistettä (...) ja sen jälkeen ollaan lähdekoodieditorissa, keskellä toisen Button2:n [[Procedure/fi|aliohjelmaa]]:
3535
3636``` pascal
3737procedure TForm1.Button2Click(Sender: TObject);
3838begin
3939 {Kirjoita tai kopio&liitä tämä puuttuva osa:}
4040 Close;
4141 {Lähdekoodieditori on jo täydentänyt aliohjelman lopun}
4242end;
4343```
4444
45-Painamalla <span class="kbd">F12</span> nähdään lomakkeen Form1 ikkuna uudelleen. Tallenna nyt työsi (ja muista tehdä se usein !!) valitsemalla päävalikosta Projekti-Tallenna projekti nimellä \> sinun_valitsemalla_tiedosto_nimellä. Talletettavana on kaksi erilaista [[File extension/fi|tiedostonimipäätettä]] (*.pas ja *.lpi). Valitse näille eri nimet. Jos molemmat ovat samannimisiä niin saat "duplicate identifier" [[compile-time error/fi|käännösvirheen]] (katso luku "The Lazarus tiedostot" lopussa tämän aiheen lopussa).
45+Painamalla `F12` nähdään lomakkeen Form1 ikkuna uudelleen. Tallenna nyt työsi (ja muista tehdä se usein !!) valitsemalla päävalikosta Projekti-Tallenna projekti nimellä \> sinun_valitsemalla_tiedosto_nimellä. Talletettavana on kaksi erilaista [[File extension/fi|tiedostonimipäätettä]] (*.pas ja *.lpi). Valitse näille eri nimet. Jos molemmat ovat samannimisiä niin saat "duplicate identifier" [[compile-time error/fi|käännösvirheen]] (katso luku "The Lazarus tiedostot" lopussa tämän aiheen lopussa).
4646
47-Voit nyt yrittää kääntää. Yksinkertaisin tapa tehdä on valita "Suorita" päävalikon yläreunasta ja sitten "Suorita" vaihtoehto alivalikosta. Vaihtoehtoisesti voit yksinkertaisesti painaa <span class="kbd">F9</span>. Tämä ensin kääntää ja sitten (jos kaikki on hyvin) linkittää sekä suorittaa kyseisen ohjelman.
47+Voit nyt yrittää kääntää. Yksinkertaisin tapa tehdä on valita "Suorita" päävalikon yläreunasta ja sitten "Suorita" vaihtoehto alivalikosta. Vaihtoehtoisesti voit yksinkertaisesti painaa `F9`. Tämä ensin kääntää ja sitten (jos kaikki on hyvin) linkittää sekä suorittaa kyseisen ohjelman.
4848
4949Kääntäjän viestit ikkuna tulee näkyville ja kaikenlaisia kääntäjä viestejä siihen kirjoitetaan, mutta lopulta sinun Form1 ikkuna ilmestyy näyttöön uudelleen, mutta ilman ruudukon pisteitä. Tämä sovelluksesi pääikkuna ja se odottaa että sinä painat painonappeja tai olet muutoin vuorovaikutuksessa sen kanssa.
5050
5151Kokeile klikkaamalla painiketta joka on nimetty tekstillä "Press". Huomaat, että sen teksti muuttuu "Press again" tekstiksi. Jos painat sitä uudelleen, sen teksti on silti "Press again" !!
5252
5353Nyt klikkaat painiketta joka on nimetty tekstillä "Exit". Ikkuna sulkeutuu ja ohjelma päättyy. Alkuperäinen Form1 ikkuna ruudukon pisteillä ilmestyy uudelleen ja on valmis hyväksymään lisää muokkausta toimintaansa.
5454
5555### Muokkaa ohjelmaa
5656
5757Uudelleen avaa tallennettu projekti. Sen Form1 ikkunassa klikkaa "Press" painiketta (Button1) valitseksesi se. Valitse "Tapahtumat" -välilehti komponenttimuokkaimessa, klikkaa onClick:n oikealla puolella olevaa ruutua, klikkaa kolmea pistettä (...), jolloin siirryt oikeaan kohtaan lähdekoodieditorissa.
5858
5959Muokkaa kyseinen kohta koodia seuraavanlaiseksi:
6060
6161``` pascal
6262procedure TForm1.Button1Click(Sender: TObject);
6363{Hyödynnetään Tag ominaisuutta, se saa arvot 0 tai 1}
6464begin
6565 if Button1.tag = 0 then
6666 begin
6767 Button1.caption := 'Press again';
6868 Button1.tag := 1;
6969 end else
7070 begin
7171 Button1.caption := 'Press';
7272 Button1.tag := 0;
7373 end;
7474end;
7575```
7676
7777Tallenna työsi, uudelleen käännä ja suorita. Vasen painike nyt vaihtaa tekstiä kahden vaihtoehdon välillä.
7878
7979Loput on sinusta kiinni!
8080
8181Jos haluat kirjoittaa konsoli(pääte)- tai tekstipohjaisia Pascal ohjelmia (esimerkiksi jos seuraavana on perustiedot Pascal ohjelmoinnista kurssi tai täytyy kirjoittaa ohjelmia joita käytetään eräajona tai järjestelmäohjelmointia), voit silti käyttää Lazarus muokkaamaan , kääntämään ja ajamaan ohjelmia. Katso [[Console Mode Pascal/fi|Komentoriviohjelmointi Pascalilla]].
8282
8383## Kehitysympäristön ikkunat
8484
8585Kun käynnistää Lazarus ensimmäistä kertaa niin joukko erillisiä irti olevia tai "kelluvia" ikkunoita näkyy työpöydällä.
8686
8787Ensimmäinen, oikealla yläreunassa pitkittäin on otsikoitu "project1 - Lazarus IDE vXXXXXX" (jonka nimi muuttuu vastaamaan nimiä parhaillaan auki olevasta projektista). Tämä on tärkein ikkuna ja se sisältää mm päävalikon ja [[Component Palette/fi|komponenttipaletin]].
8888
89-<center>
90-
91-<figure>
92-<img src="Lazarus-IDE.jpg" title="Lazarus-IDE.jpg" />
93-<figcaption>Lazarus-IDE.jpg</figcaption>
94-</figure>
95-
96-</center>
89+![](/wiki-images/d/d0/Lazarus-IDE.jpg)
9790
9891Otsikkopalkin alapuolella oleva rivi on päävalikko jossa on merkinnät Tiedosto, Muokka, Etsi, Näytä ja niin edelleen. Tämän alapuolella vasemmalla on joukko symboleja (kuvakkeita jotka vievät nopeasti tiettyihin valikkokomentoihin) ja oikealla on komponenttipaletti.
9992
100-Tämän alle vasemmalla on komponenttimuokkain ('Object Inspector') ikkuna ja Lazaruksen lähdekoodieditori oikealla. Siellä voi olla toinen pienempi ikkuna joka on (aluksi) merkitty nimellä "Form1", Lazaruksen lähdekoodi-ikkunan päällä. Jos tämä ei ole näkyvissä heti, se voidaan saada näkymään painamalla <span class="kbd">F12</span>. Kyseinen funktionäppäin vaihtaa vuorotellen lähdekoodieditorin ja lomakenäkymän välillä. Lomake (Form) ikkuna on se, johon voidaan rakentaa graafisen käyttöliittymän sovellukseen, kun taas lähdekoodieditorin ikkuna näyttää sovelluksen Pascal koodin jota kehitetään. Komponenttimuokkaimen toiminta on käsitelty tarkemmin alla, kun komponenttipaletti on ensin kuvattu. Lisäksi voi olla myös viesti -ikkuna näytön alareunassa: tätä käytetään näyttämään Lazaruksen palautetta ohjelmoijalle, esimerkiksi ohjelmaa käännettäessä.
93+Tämän alle vasemmalla on komponenttimuokkain ('Object Inspector') ikkuna ja Lazaruksen lähdekoodieditori oikealla. Siellä voi olla toinen pienempi ikkuna joka on (aluksi) merkitty nimellä "Form1", Lazaruksen lähdekoodi-ikkunan päällä. Jos tämä ei ole näkyvissä heti, se voidaan saada näkymään painamalla `F12`. Kyseinen funktionäppäin vaihtaa vuorotellen lähdekoodieditorin ja lomakenäkymän välillä. Lomake (Form) ikkuna on se, johon voidaan rakentaa graafisen käyttöliittymän sovellukseen, kun taas lähdekoodieditorin ikkuna näyttää sovelluksen Pascal koodin jota kehitetään. Komponenttimuokkaimen toiminta on käsitelty tarkemmin alla, kun komponenttipaletti on ensin kuvattu. Lisäksi voi olla myös viesti -ikkuna näytön alareunassa: tätä käytetään näyttämään Lazaruksen palautetta ohjelmoijalle, esimerkiksi ohjelmaa käännettäessä.
10194
10295Kun aloittaa uuden projektin (tai kun käynnistää Lazarus ohjelman kehitysympäristön) niin oletus lomake rakennetaan, joka koostuu laatikosta, jossa on pisteruudukko, joiden avulla voit sijoittaa eri komponentteja lomakkeelle ja lomakkeen yläpalkki, joka sisältää tavallisesti minimointi, maximointi ja Sulje-painikkeet. Jos klikkaat hiiren kohdistimella mihin tahansa tähän lomakkeeseen, näet vasemmalla puolen komponenttimuokkaimen joka kertoo tämän lomakkeen ominaisuuksia.
10396
10497Muut ikkunat, jotka voivat tulla näkyviin työskentelyn aikana: Projektin hallinta, joka sisältää yksityiskohtaiset tiedot tiedostojen mukana olosta projektissa. Siinä voidaan lisätä tai poistaa tiedostoja projektista; Viesti-ikkuna, joka näyttää kääntäjän viestejä, virheitä tai edistymisraportteja projektista. Jos Lazarus käynnistettiin pääteikkunasta (konsoli) niin alkuperäinen pääteikkuna pysyy näkyvissä ja yksityiskohtaiset kääntäjän viestit tulostetaan myös siellä.
10598
10699## Päävalikko
107100
108101Päävalikko sisältää seuraavat nimikkeet:
109102
110-**<u>T</u>iedosto   <u>M</u>uokkaa   <u>E</u>tsi   <u>N</u>äytä   <u>L</u>ähdekoodi   <u>P</u>rojekti   <u>S</u>uorita-valikko   <u>P</u>aketti   <u>T</u>yökalut   <u>I</u>kkunat   <u>O</u>hje**
103+**Tiedosto   Muokkaa   Etsi   Näytä   Lähdekoodi   Projekti   Suorita-valikko   Paketti   Työkalut   Ikkunat   Ohje**
111104
112105Kuten tavallista, vaihtoehdot voidaan valita joko asettamalla hiiren osoitin valikkokohdan ja klikkaamalla hiiren vasenta painiketta.
113106
114107Lisätietoja saat ottamalla yhteyttä [[Main menu/fi]].
115108
116109## Pikapainikkeet
117110
118111Pieni työkalurivi pääikkunan vasemmalla puolen, päävalikon alapuolelle jonka vasemmalla puolen on komponenttipaletti. Se sisältää joukon painikkeita, jotka ovat samoja kuin usein käytetyt päävalikon valinnat: Uusi käännösyksikkö, Avaa (jossa on alas-nuolta painamalla saadaan näyttämään avattavan listan viimeksi käytetyistä tiedostoista), Tallenna, Tallenna kaikki, Uusi lomake, Vaihda lomake / käännösyksikkö (eli näyttää joko lomakkeen tai käännösyksikön lähdekoodia), Näytä käännösyksiköt, Näytä lomakkeet, Suorita (eli kokoa ja suorita), Pysäytä, Askella sisään, Askella yli (kaksi viimeistä ovat virheenjäjityksen toimintoja).
119112
120113## Komponenttipaletti
121114
122115## Kuinka käyttää komponentteja
123116
124117[[Unit/fi|Käännösyksiköt]] **StdCtrls**, **ComCtrls** ja **ExtCtrls** sisältävät määritelmät ja kuvaukset moniin yleisimmin käytettyihin komponenteihin, lomakkeen rakentamiseen ja muihin objekteihin Lazarus sovelluksissa.
125118
126119Sovelluskehittäjän usein lopullisena tavoitteena on että halutaan käyttää komponentteja kuten TButton, [[TMemo/fi|TMemo]], [[TScrollBar/fi|TScrollBar]] jne, näiden vastaava kantaisät ovat luokat TCustomButton, TCustomMemo tai TCustomScrollBar. Usein ominaisuuksia ja metodeiden merkitystä on määritelty (ja selitetty) täydellisemmin TCustomXXX luokassa ja ne periytyvät näihin lopullisiin tavoite komponentteihin.
127120
128121Jos pudotat komponentin lomakkeelle niin silloin ei tarvita lisätä koodia luomaan sitä. Komponentti automaattisesti luodaan lomakkeen yhteydessä ja tuhotaan kun lomake on tuhottu. Jos kuitenkin luodaan komponentti (omatoimisesti) koodilla niin ei saa unohtaa sen vapauttamista, kun sitä ei enää tarvita.
129122
130123#### Tapoja asettaa ominaisuuksia
131124
132125Jos asetetaan komponentti lomakkeelle ja katsotaan komponenttimuokkaimella niin voidaan tarkkailla kun ominaisuudet muuttuvat, kun siirrät komponettia ympäriinsä.
133126
134127Jos esimerkiksi asetetaan painike (TButton) lomakkeelle, valitaan se klikkaamalla sitä niin sen hiirellä siirtämistä ympäri lomaketta hiirellä, voidaan katsella Top ja Left arvojen muutosta vastaamaan uutta asentoon komponenttimuokkaimella. Jos käytetään objektin uudelleen mitoitusta säätämään sen kokoa niin voidaan katsella Height (korkeus) ja Width (leveys) ominaisuuksien muuttumista myös.
135128
136129Toisaalta, käyttämällä komponenttimuokkainta voidaan valita arvon liittyvä ominaisuus, kuten height (korkeus), ja kirjoittaa siihen uusi arvo niin voidaan katsella lomakkeella kohteen koon muutosta vastaamaan uutta arvoa.
137130
138131Voidaan myös nimenomaisesti muuttaa komponentin ominaisuuksia koodin kirjoittamalla (asianmukaisessa implementation lohkossa lähdekoodieditorissa), esimerkiksi
139132
140133``` pascal
141134Form1.Button1.Height := 48;
142135```
143136
144137Yhteenvetona, on yleisesti kolme erilaista tapaa määrittää jokaisen komponentin ominaisuuksia:
145138
146139- hiiren avulla lomakkeella
147140- asettamalla arvot komponenttimuokkaimessa
148141- eksplisiittisesti kirjoittamalla koodia editorissa.
149142
150143#### Yleisiä ominaisuuksia
151144
152145Komponenttien käännösyksiköissä on määritelty useita ominaisuuksia, jotka ovat yhteisiä useimmille niistä ja muita ominaisuuksia jotka ovat ominaisia ​​yksittäisille komponenteille. Yleisimpiä on kuvattu tässä. Epätavallisia tai okomponenttiriippuvaisia ominaisuuksia kuvataan tarkemmin komponettikohtaisissa ohjeissa.
153146
154-Lisäohjeita saadaan valitsemalla ominaisuus tai avainsana, joko komponenttimuokkaimessa tai lähdekoodieditorissa ja painamalla <span class="kbd">F1</span>. Tämä vie ohjeen oikealle sivulle dokumentaatiossa.
147+Lisäohjeita saadaan valitsemalla ominaisuus tai avainsana, joko komponenttimuokkaimessa tai lähdekoodieditorissa ja painamalla `F1`. Tämä vie ohjeen oikealle sivulle dokumentaatiossa.
155148
156149Jos ominaisuuden kuvaus on sivulla riittämätön, voidaan siirtyä katsomaan mistä se on peritty.
157150
158-<table>
159-
160-<caption>
161-
162-<b>Joitakin yleisesti olevia ominaisuuksia</b>
163-
164-</caption>
165-
166-<tr>
167-
168-<td>
169-
170-<b>Ominaisuus</b>
171-
172-</td>
173-
174-<td>
175-
176-<b>Merkitys</b>
177-
178-</td>
179-
180-</tr>
151+Joitakin yleisesti olevia ominaisuuksia
181152
182-<tr>
153+Ominaisuus
183154
184-<td>
155+Merkitys
185156
186157Action
187158
188-</td>
189-
190-<td>
191-
192159Tärkein toiminta tai tapahtuma joka liittyy komponenttiin. Esimerkiksi valitsemalla "Lopeta" -painike saattaa aiheuttaa Sulje-toiminnan.
193160
194-</td>
195-
196-</tr>
197-
198-<tr>
199-
200-<td>
201-
202161Align
203162
204-</td>
205-
206-<td>
207-
208163Määrittää miten komponentti on sijoittunut vanhempaansa nähden. Mahdolliset arvot ovat alTop (sijoittuu yläosaan ja käyttää koko käytettävissä olevan leveyden), alBottom, alLeft (sijoittuu vasemmalle ja käyttäen koko käytettävissä olevan korkeuden), alRight. alNone (missä tahansa) tai alClient (käyttää kaiken käytettävissä olevan tilan)
209164
210-</td>
211-
212-</tr>
213-
214-<tr>
215-
216-<td>
217-
218165Anchor
219166
220-</td>
221-
222-<td>
223-
224-Käytetään pitämään komponentti tietyn etäisyyden päässä vanhemmasta komponentista, määritelty reunoista, kun vanhempi muuttaa kokoa. Esimerkiksi <b>\[akBottom, akRight\]</b> pitää komponentin kiinteän matkan päässä oikeaan alakulmaan.
225-
226-</td>
227-
228-</tr>
229-
230-<tr>
231-
232-<td>
167+Käytetään pitämään komponentti tietyn etäisyyden päässä vanhemmasta komponentista, määritelty reunoista, kun vanhempi muuttaa kokoa. Esimerkiksi \[akBottom, akRight\] pitää komponentin kiinteän matkan päässä oikeaan alakulmaan.
233168
234169AutoSelect
235170
236-</td>
237-
238-<td>
239-
240-Kun sen arvo on True niin valitaan kaikki se teksti, joka on valittu kun <span class="kbd">Enter</span>-näppäintä painetaan tai hyväksytään kyseinen kohta.
241-
242-</td>
243-
244-</tr>
245-
246-<tr>
247-
248-<td>
171+Kun sen arvo on True niin valitaan kaikki se teksti, joka on valittu kun `Enter`-näppäintä painetaan tai hyväksytään kyseinen kohta.
249172
250173AutoSelected
251174
252-</td>
253-
254-<td>
255-
256175True osoittaa, että Edit tai ComboBox komponentti on juuri suorittanut AutoSelect toiminnan siten, että myöhemmät hiirellä ja näppäimistön syöttö jatkuu normaalisti valitsematta tekstiä.
257176
258-</td>
259-
260-</tr>
261-
262-<tr>
263-
264-<td>
265-
266177BorderSpacing
267178
268-</td>
269-
270-<td>
271-
272179*Ankkuroidun* komponentin ja sen vanhemman välisen ympäröivän reunan etäisyys.
273180
274-</td>
275-
276-</tr>
277-
278-<tr>
279-
280-<td>
281-
282181Caption
283182
284-</td>
285-
286-<td>
287-
288183Teksti, joka näkyy tai on lähellä komponenttia; Ohjelman käyttäjälle tulee antaa vihjeen siitä, minkä tehtävän tai käskyn komponentti tekee kuten "Sulje" tai "Suorita". Oletuksena Caption-teksti asetetaan samaksi kuin mitä on "Name" ominaisuudessa ja ohjelmoijan pitäisi oletusarvon sijaan korvata se sopivalla tekstillä.
289184
290-</td>
291-
292-</tr>
293-
294-<tr>
295-
296-<td>
297-
298185CharCase
299186
300-</td>
301-
302-<td>
303-
304187Kertoo, miten teksti näkyy tekstin muokkauskomponentissa: Normaali (sellaisenaan, säilyttäen käyttäjän antaman syötteen), muunnetaan isoiksi tai pieniksi kirjaimiksi.
305188
306-</td>
307-
308-</tr>
309-
310-<tr>
311-
312-<td>
313-
314189Constraints
315190
316-</td>
317-
318-<td>
319-
320191Asettaa äärikoot komponentille. Jos kokoa muutetaan niin uudet ulottuvuudet ovat aina vaihteluvälien rajoissa. Ohjelmoikan tulisi huolehtia asettaessaan näitä, että ne eivät ole ristiriidassa Anchors ja Align asetuksien kanssa.
321192
322-</td>
323-
324-</tr>
325-
326-<tr>
327-
328-<td>
329-
330193Color
331194
332-</td>
333-
334-<td>
335-
336195Väri jota käytetään piirtämään komponentti ja sen näyttämää kirjoitettavaa tekstiä.
337196
338-</td>
339-
340-</tr>
341-
342-<tr>
343-
344-<td>
345-
346197Enabled
347198
348-</td>
349-
350-<td>
351-
352-Boolean ominaisuus joka määrittää, onko komponentti valittavissa, käytössä tai voiko se suorittaa toiminnon. Jos se ei ole käytössä (arvossa false) niin se on usein <b>harmaana</b> lomakkeella.
353-
354-</td>
355-
356-</tr>
357-
358-<tr>
359-
360-<td>
199+Boolean ominaisuus joka määrittää, onko komponentti valittavissa, käytössä tai voiko se suorittaa toiminnon. Jos se ei ole käytössä (arvossa false) niin se on usein harmaana lomakkeella.
361200
362201Font
363202
364-</td>
365-
366-<td>
367-
368203Kirjaisin jota käytetään kirjoitettaessa tekstiä komponenttiin liittyen - joko caption, label tai teksti komponentin sisällä . Komponenttimuokkaimessa on nuoli-merkintä yleensä tämän kohdan vasemmalla puolen, ja valitsemalla se niin se paljastaa muita vaihtoehtoja kuten merkistön, värin ja koon.
369204
370-</td>
371-
372-</tr>
373-
374-<tr>
375-
376-<td>
377-
378205Height
379206
380-</td>
381-
382-<td>
383-
384207Komponentin korkeus. Katso myös Width.
385208
386-</td>
387-
388-</tr>
389-
390-<tr>
391-
392-<td>
393-
394209Hint
395210
396-</td>
397-
398-<td>
399-
400211Lyhyt informatiivinen vihjeteksti joka näkyy ponnahdustekstinä, jos hiiren kursori menee komponentin päälle. Katso myös ShowHint ominaisuus.
401212
402-</td>
403-
404-</tr>
405-
406-<tr>
407-
408-<td>
409-
410213Items
411214
412-</td>
413-
414-<td>
415-
416215Luettelo "asioista", jota kohde sisältää, kuten joukko kuvia, luettelo tekstiä, toimintoja käytettäessä actionlist:aa jne.
417216
418-</td>
419-
420-</tr>
421-
422-<tr>
423-
424-<td>
425-
426217Left
427218
428-</td>
429-
430-<td>
431-
432219Määrittää missä komponentti sijaitsee suhteessa vanhempaan (lomake, ikkuna) vaakasuunta. Katso myös Top
433220
434-</td>
435-
436-</tr>
437-
438-<tr>
439-
440-<td>
441-
442221Lines
443222
444-</td>
445-
446-<td>
447-
448223Merkkijonojen joukko, joka sisältää tekstisisältöä enemmän kuin yhden rivin tietoja. Taulukko on nolla-indeksoitu eli rivit on numeroitu (alkaen nollasta)\[0..numLines-1\]
449224
450-</td>
451-
452-</tr>
453-
454-<tr>
455-
456-<td>
457-
458225Name
459226
460-</td>
461-
462-<td>
463-
464227Tunniste eli nimi, jonka avulla komponentti tunnetaan ohjelmassa. Kehitysympäristö antaa sille oletuksena nimen joka pohjautuu taustalla tyypin mukaan, esimerkiksi peräkkäisinä esiintyvät TBitButton-komponentit olisivat nimeltään BitButton1 ja BitButton2; Olisi hyvä jos ohjelmoija antaisi näille enemmän kuvaavampia nimiä kuten ExitButton tai OKButton. Oletuksena komponentin nimi viedään myös Caption tekstiksi, mutta Caption teksti voidaan muuttaa erikseen.
465228
466-</td>
467-
468-</tr>
469-
470-<tr>
471-
472-<td>
473-
474229PopUpMenu
475230
476-</td>
477-
478-<td>
479-
480231Ikkuna joka sisältää tilannekohtainen valikkotietoa, joka avautuu, kun hiiren oikealla painikkeella klikataan komponenttia.
481232
482-</td>
483-
484-</tr>
485-
486-<tr>
487-
488-<td>
489-
490233ReadOnly
491234
492-</td>
493-
494-<td>
495-
496235Boolean omonaisuus, ja jos sen arvo on true, niin tarkoittaa sitä että käyttäjä tai kutsuva rutiini voi luke komponentin sisältö, mutta se ei voi kirjoittaa siihen tai muuttaa sitä.
497236
498-</td>
499-
500-</tr>
501-
502-<tr>
503-
504-<td>
505-
506237ShowHint
507238
508-</td>
509-
510-<td>
511-
512239Sallii pienen tekstikentän, joka sisältää tilannekohtaisen ​​ohjeen tai muun kuvauksen, joka näkyy, kun hiiren kursori on komponentin "päällä". Katso Hint-ominaisuutta.
513240
514-</td>
515-
516-</tr>
517-
518-<tr>
519-
520-<td>
521-
522241Style
523242
524-</td>
525-
526-<td>
527-
528243Valittavissa olevia tyylivaihtoehtoja: esimerkiksi Style voidaan määrittää TFormStyle, TBorderStyle, TButtonStyle jne.
529244
530-</td>
531-
532-</tr>
533-
534-<tr>
535-
536-<td>
537-
538245TabOrder
539246
540-</td>
541-
542-<td>
543-
544-Kokonaisluku määritellään missä järjestyksessä <span class="kbd">Tab</span> -näppäin käy läpi lomaketta.
545-
546-</td>
547-
548-</tr>
549-
550-<tr>
551-
552-<td>
247+Kokonaisluku määritellään missä järjestyksessä `Tab` -näppäin käy läpi lomaketta.
553248
554249TabStop
555250
556-</td>
557-
558-<td>
559-
560-Boolean ominaisuus jos True niin paikka johon käyttäjä voi päästä peräkkäin painamalla <span class="kbd">Tab</span> eli sarkainnäppäintä.
561-
562-</td>
563-
564-</tr>
565-
566-<tr>
567-
568-<td>
251+Boolean ominaisuus jos True niin paikka johon käyttäjä voi päästä peräkkäin painamalla `Tab` eli sarkainnäppäintä.
569252
570253Text
571254
572-</td>
573-
574-<td>
575-
576255Merkkijono teksti, joka edustaa todellisia tietoja, mitä tämä komponentti sisältää. Koskee erityisesti Text, Memo ja StringList tyyppisiä komponentteja. Suurin osa editointi (kuten **Select**, **Clear**, **Cut**, **Copy**) suoritetaan komponentin tässä osassa, joka sisältää todellisen muokattavan merkkijonon. Jos komponentissa on enemmän kuin yksi rivi tekstiä, esimerkiksi TMemo tai TComboBox, niin tekstielementtejä on järjestetty merkkijonojoukoiksi (nolla-indeksoitu eli numeroituna \[0..rivien määrä-1\]) rivejä.
577256
578-</td>
579-
580-</tr>
581-
582-<tr>
583-
584-<td>
585-
586257Top
587258
588-</td>
589-
590-<td>
591-
592259Määrittää missä komponentti sijaitsee suhteessa vanhempaan (lomake, ikkuna) pystysuunta. Katso myös Left
593260
594-</td>
595-
596-</tr>
597-
598-<tr>
599-
600-<td>
601-
602261Visible
603262
604-</td>
605-
606-<td>
607-
608263Jos ominaisuuden arvo on true niin komponentti näkyy lomakkeella. Jos arvo on false niin komponentti on piilotettu.
609264
610-</td>
611-
612-</tr>
613-
614-<tr>
615-
616-<td>
617-
618265Width
619266
620-</td>
621-
622-<td>
623-
624267Komponentin leveys. Katso myös Height.
625268
626-</td>
627-
628-</tr>
629-
630-<tr>
631-
632-<td>
633-
634269WordWrap
635270
636-</td>
637-
638-<td>
639-
640271Looginen lippu osoittaa, onko automaattinen rivinvaihto on käytössä, eli jos sana tulee lähelle rivin loppuun ja tulee olemaan liian pitkä rivi niin osa siitä on siiretty (alaspäin) seuraavalle riville.
641272
642-</td>
643-
644-</tr>
645-
646-</table>
647-
648273#### Tapahtumat
649274
650-Monet tapahtumat ovat yleisesti lueteltu "Tapahtumat" välilehdellä komponenttimuokkaimessa. Jos komponenttimuokkaimessa valitaan tapahtuman viereinen tyhjäkenttä kenttä niin siihen muodostuu ComboBox jonka alasvetoluettelosta näkyy luettelo kaikista toimista jotka on jo määritelty. Tämän avulla voidaan valita tähän tapahtumaan yhden kohdan. Vaihtoehtoisesti voit valita kolme pistettä <span class="kbd">...</span>-painike jolloin lähdekoodieditorissa tehdään metodin sisään alue johon voidaan aloittaa kirjoittamaan oman toiminnan käskyjä valittuun tapahtumaan.
275+Monet tapahtumat ovat yleisesti lueteltu "Tapahtumat" välilehdellä komponenttimuokkaimessa. Jos komponenttimuokkaimessa valitaan tapahtuman viereinen tyhjäkenttä kenttä niin siihen muodostuu ComboBox jonka alasvetoluettelosta näkyy luettelo kaikista toimista jotka on jo määritelty. Tämän avulla voidaan valita tähän tapahtumaan yhden kohdan. Vaihtoehtoisesti voit valita kolme pistettä `...`-painike jolloin lähdekoodieditorissa tehdään metodin sisään alue johon voidaan aloittaa kirjoittamaan oman toiminnan käskyjä valittuun tapahtumaan.
651276
652277Vaikka suuri määrä tapahtumia on liitettävissä komponentin toimintaan. Käytännössä se on tarpeen vain asettaa muutamaan niistä. Useimmille komponenteille on riittävää koodaata onClick-tapahtuma; monimutkaisemmissa komponenteissa voi olla tarpeen myös kirjoittaa toiminta tapahtumiin "OnEntry" (kun hiiren osoitin siirtyy komponentille ja se valitaan) ja "OnExit" (kun hiiren osoitin poistuu komponentilta), tai ehkä kirjoittaa tapahtumankäsittelijä "OnChange" tai "OnScroll" -tapahtumiin, riippuen komponenteista, jonka kanssa ollaan tekemisissä.
653278
654279Pop-up-valikko, joka tulee näkyviin hiiren oikealla painikkeella kun komponenttia klikataan lomakkeella. Siinä ensimmäisenä vaihtoehtona on: "Luo oletustapahtuma". Valitsemalla tämän vaihtoehdon on sillä sama vaikutus kuin valitsemalla kolme pistettä komponenttimuokkaimen oletuksena olevassa tapahtumassa joka on yleensä "onClick". Eli lähdekoodieditorissa tehdään metodin sisään alue johon voidaan aloittaa kirjoittamaan oman toiminnan käskyjä.
655280
656281Yleinen strategia Olio-ohjelmoinnissa on tarjota **[[TActionList|ActionList]]** johon on tehty useita ennalta määriteltyjä toimenpiteitä, joista sopivin voidaan valita käyttöön siinä tapauksessa.
657282
658-\
659-
660-<table>
661-
662-<caption>
663-
664-<b>Joitakin yleisiä tapahtumia</b>
665-
666-</caption>
667-
668-<tr>
669-
670-<td>
671-
672-<b>Tapahtuma</b>
673-
674-</td>
675-
676-<td>
677-
678-<b>Merkitys</b>
679-
680-</td>
283+Joitakin yleisiä tapahtumia
681284
682-<tr>
285+Tapahtuma
683286
684-<td>
287+Merkitys
685288
686289OnChange
687290
688-</td>
689-
690-<td>
691-
692291Tapahtuu jos jokin muutos havaitaan (esim hiiren liikkua, hiiren klikkaus, näppäimen painallus, tekstin muokkaus, kuva muuttuu jne)
693292
694-</td>
695-
696-</tr>
697-
698-<tr>
699-
700-<td>
701-
702293OnClick
703294
704-</td>
705-
706-<td>
707-
708295Tapahtuu kun (ensimmäinen, yleensä vasenta) hiiren painiketta klikataan. Tämä on yleensä pää- tai oletus toiminto; esimerkiksi kun klikataan painiketta tai muuta vastaavaa.
709296
710-</td>
711-
712-</tr>
713-
714-<tr>
715-
716-<td>
717-
718297Click
719298
720-</td>
721-
722-<td>
723-
724299Menetelmä matkia koodina klikkaamisen vaikutusta. Tämä menetelmä on useimmiten löytyy Button-tyyppisistä komponenteista (TButton, TBitBtn, TSpeedButton jne). Aliohjelma voidaan kirjoittaa niin että kutsutaan samaa koodia kuin onClick toiminta. Tämä järjestely voi olla erityisen hyödyllistä, jos yhden komponentin aktivointi klikkaamalla aiheuttaa lukuisiin muiden komponenttien aktivointia, ja valitsemalla menetelmä voidaan käyttää aloittamaan toiminto sen sijaan, käyttäjä joutuu klikkaamaan monia komponentteja.
725300
726-</td>
727-
728-</tr>
729-
730-<tr>
731-
732-<td>
733-
734301OnDragDrop
735302
736-</td>
737-
738-<td>
739-
740303Toteuttaa toimet vedä ja pudota (Drag-Drop) liikkeen aikana, eli kun hiirtä käytetään "kaappaamaan" kohteen tai jotain tekstiä jne ja siirtää sen uuteen paikkaan.
741304
742-</td>
743-
744-</tr>
745-
746-<tr>
747-
748-<td>
749-
750305OnEditingDone
751306
752-</td>
753-
754-<td>
755-
756307Toiminta alkaa kun käyttäjä on lopettanut kaikki muutokset / muutokset komponenttiin. Tätä käytetään usein tarkistamaan komponentin sisältöä (esim. tarkistamaan että syötetty teksti on oikea tai kunnollinen IP-osoite)
757308
758-</td>
759-
760-</tr>
761-
762-<tr>
763-
764-<td>
765-
766309OnEntry
767310
768-</td>
769-
770-<td>
771-
772311Toteuttaa toimet kun hiiren osoitin siirtyy komponentille tai yleisesti kun "painopiste" siirtyy komponenttiin. Tämä saattaa sisältää muutoksia komponentin ulkonäköön kuten korostamaan sitä tai kohottamaan sen reunuksia.
773312
774-</td>
775-
776-</tr>
777-
778-<tr>
779-
780-<td>
781-
782313OnExit
783314
784-</td>
785-
786-<td>
787-
788315Tapahtuma aktivoituu, kun hiiri siirtyy pois komponentin alueelta, yleisesti siirtämällä "painopiste" pois komponentilta.
789316
790-</td>
791-
792-</tr>
793-
794-<tr>
795-
796-<td>
797-
798317OnKeyPress
799318
800-</td>
801-
802-<td>
803-
804319Tapahtuma aktivoituu, kun painetaan jotain näppäintä. Hienovaraisesti erilainen kuin OnKeyDown, joka yksinkertaisesti aktivoituu näppäimen ollessa alhaalla. OnKeyPress vaatii, että painopiste on jo tässä komponentissa kun näppäintä painetaan.
805320
806-</td>
807-
808-</tr>
809-
810-<tr>
811-
812-<td>
813-
814321OnKeyDown
815322
816-</td>
817-
818-<td>
819-
820323Tapahtuma aktivoituu, jos näppäin on alhaalla, kun "painopiste" (fokus) on tässä komponentissa. Hienovaraisesti erilainen kuin OnKeyPress - esimerkiksi näppäin saattaa olla jo alhaalla, kun focus tuli tähän komponenttiin, kun taas OnKeyPress vaatii näppäintä painetaan vasta kun painopiste on tässä komponentissa.
821324
822-</td>
823-
824-</tr>
825-
826-<tr>
827-
828-<td>
829-
830325OnKeyUp
831326
832-</td>
833-
834-<td>
835-
836327Tapahtuma aktivoituu kun näppäin "vapautetaan" eli nousee ylös (tai näppäimen painaminen loppuu) kun focus on tässä komponentissa.
837328
838-</td>
839-
840-</tr>
841-
842-<tr>
843-
844-<td>
845-
846329OnMouseMove
847330
848-</td>
849-
850-<td>
851-
852331Tapahtuma aktivoituu kun hiiren osoitin liikkuu ja focus on tässä komponentissa.
853332
854-</td>
855-
856-</tr>
857-
858-<tr>
859-
860-<td>
861-
862333OnMouseDown
863334
864-</td>
865-
866-<td>
867-
868335Tapahtuma aktivoituu kun hiiren näppäin menee alas ja focus on tässä komponentissa.
869336
870-</td>
871-
872-</tr>
873-
874-<tr>
875-
876-<td>
877-
878337OnMouseUp
879338
880-</td>
881-
882-<td>
883-
884339Tapahtuma aktivoituu kun hiiren näppäin "vapautetaan" ja focus on tässä komponentissa. Eli hiiren näppäin on jo aikaisemmin painettu alas ja painaminen lopetetaan/päätetään
885340
886-</td>
887-
888-</tr>
889-
890-<tr>
891-
892-<td>
893-
894341OnMouseEnter
895342
896-</td>
897-
898-<td>
899-
900343Tapahtuma aktivoituu kun hiiren osoitin siirtyy komponentille ( mutta hiiren painiketta ei vielä ole painettu) .
901344
902-</td>
903-
904-</tr>
905-
906-<tr>
907-
908-<td>
909-
910345OnResize
911346
912-</td>
913-
914-<td>
915-
916347Tapahtuma aktivoituu kun komponentin kokoa muutetaan tai koko muuttuu. Voi aktivoitua esim. kun teksti tasataan toiseen reunaan, keskitetään tai valitaan eri fonttikokoa jne.
917348
918-</td>
919-
920-</tr>
921-
922-</table>
923-
924349#### Rakentajat & purkajat
925350
926351Nämä ovat kaksi erityistä metodia liittyvät [[Class|luokkiin]](komponentit):
927352
928353- **[[Constructor/fi|Constructor (Rakentaja)]]:** kuten **Create** varaa olion (komponentin) tarvitsemaa muistia ja järjestelmäresursseja. Ne tarpeen vaatiessa kutsuvat myös muita luokan aliolioiden rakentajia.
929354
930-- **[[Destructor/fi|Destructor (purkaja)]]:** poistaa olion ja vapauttaa varatun muistin sekä muita resursseja. Jos kutsut **Destroy** (tuhoa) olio, jota ei ole vielä alustettu,niin se aiheuttaa virheen. Käytä aina **Free** metodia puratessa olioita, koska se tarkistaa, onko olion arvo on <b>[[Nil/fi|nil]]</b> ennenkuin kutsuu **Destroy** metodia.
355+- **[[Destructor/fi|Destructor (purkaja)]]:** poistaa olion ja vapauttaa varatun muistin sekä muita resursseja. Jos kutsut **Destroy** (tuhoa) olio, jota ei ole vielä alustettu,niin se aiheuttaa virheen. Käytä aina **Free** metodia puratessa olioita, koska se tarkistaa, onko olion arvo on [[Nil/fi|nil]] ennenkuin kutsuu **Destroy** metodia.
931356
932357Noudata seuraavia varotoimia, kun luoda oman **Destroy** metodin:
933358
934-- Määritä **Destroy** <b>override</b> directive:llä, koska se on <b>virtual</b> metodi.
359+- Määritä **Destroy** override directive:llä, koska se on virtual metodi.
935360- Kutsu aina **'inherited Destroy;**' viimeisenä asiana destructor:in koodissa.
936361- Huomaa, että [[Exceptions/fi|exception (poikkeus)]] voidaan nostaa jos **constructor** (rakentajalla) ei ole tarpeeksi muistia luoda olio tai jotain muuta menee pieleen. Jos poikkeusta ei käsitellä rakentajan sisällä, olio on tällöin vain osittain rakennettu. Tässä tapauksessa kun **Destroy**ta kutsutaan, destructor:in täytyy tarkistaa että resurssit olivat todella varattu ennen kuin se hävittää ne.
937362- Muista kutsua **Free** metodia kaikille olioille jotka on luotu constructor:lla.
938363
939364## Kuinka käyttää valikko-komponenttia
940365
941366Vihjeitä miten luoda valikot lomakkeelle.
942367
943368*[[TMainMenu/fi|TMainMenu]]* ![](/wiki-images/6/6f/Tmainmenu.png) on päävalikko, joka näkyy monen lomakkeen yläosassa; Lomakkeen suunnittelija voivat muokata sitä valitsemalla eri valikkovaihtoehtoja. *[[TPopupMenu/fi|TPopupMenu]]* ![](/wiki-images/e/e4/Tpopupmenu.png) on valikko -ponnahdusikkunassa, jossa on yleensä tilannekohtaisia, yksityiskohtia vaihtoehtoja. Se "ponnahtaa" kun hiiren oikeaa näppäintä klikataan lähellä komponenttia.
944369
945370Päävalikko on ei-näkyvä komponentti: toisin sanoen jos kuvake on valittu komponenttipaletilta ja saatetaan lomakkeelle niin se ei näy ohjelman [[runtime/fi|ajon aikana]]. Sen sijaan, valikkorivi jonka rakenne määritellään valikkomuokkaimessa ilmestyy. Ponnahdusvalikot (saattaa lomakkeelle valitsemalla kyseinen kuvake komponentipaletilta) eivät näy ollenkaan kunnes hiiren oikealla painikkeella klikataan komponenttia, jolla on tällainen valikko.
946371
947372Nähdäksesi valikkomuokkaimen, klikkaa hiiren oikealla Main Menu tai Popup Menu -kuvaketta lomakkeella. Tällöin avautuu ikkuna johon voidaan syöttää valikon kohteet.
948373
949374valikkomuokkaimessa näkyy laatikko joka sisältää painikkeen "New Item1". Jos klikkaa hiiren oikealla kyseistä painiketta, pop-up-valikko tulee näkyviin, jonka avulla voit lisätä uuden kohdan ennen tai jälkeen (samalla tasolla) tai luoda alivalikon mahdollisuuden johon lisätä uusia kohteita sen alle.
950375
951376Mikä tahansa *MenuItems* joka lisätään voidaan määrittää käyttämällä komponenttimuokkainta.
952377
953378Ainakin kullekin kohdalle pitäisi antaa *Caption*-teksti , joka näkyy valikkorivillä. sen tulisi kertoa toimintaa jota voidaan valita, kuten "Avaa tiedosto", "Sulje", "Suorita" tai "Lopeta". Voidaan myös haluta antaa tätä merkityksellisempi nimi.
954379
955-Jos halutaan tietyn Caption-tekstni kirjaimen liittyvän pikanäppäin-toimintoon, niin kirjain pitäisi edeltää et-merkillä (&). Jolloin ohjelman ajon aikana valikkokohtaan ilmestyy pikanäppäintä vastaava kirjain alleviivattuna ja painamalla kirjainta vastaavaa näppäintä on sillä sama vaikutus kuin valitsemalla valikosta. Vaihtoehtoisesti voidaan pikanäppäin sekvenssit (esimerkiksi <span class="kbd">Ctrl</span>+<span class="kbd">C</span> kopioi tai <span class="kbd">Ctrl</span>+<span class="kbd">V</span> liitä - standardin mukaiset pikanäppäimet) valita MenuItem:n *ShortCut* ominaisuuteen.
380+Jos halutaan tietyn Caption-tekstni kirjaimen liittyvän pikanäppäin-toimintoon, niin kirjain pitäisi edeltää et-merkillä (&). Jolloin ohjelman ajon aikana valikkokohtaan ilmestyy pikanäppäintä vastaava kirjain alleviivattuna ja painamalla kirjainta vastaavaa näppäintä on sillä sama vaikutus kuin valitsemalla valikosta. Vaihtoehtoisesti voidaan pikanäppäin sekvenssit (esimerkiksi `Ctrl`+`C` kopioi tai `Ctrl`+`V` liitä - standardin mukaiset pikanäppäimet) valita MenuItem:n *ShortCut* ominaisuuteen.
956381
957382Usein on hyödyllistä käyttää valikoiden yhteydessä *[[TActionList]]* komponenttia joka sisältää joukon standardin mukaisia tai räätälöityjä tapahtumia. Valikkokohdat voidaan linkittää komponenttimuokkaimessa lueteltuihin tapahtumiin ja samoja tapahtumia voidaan yhdistää painikkeisiin, työkalupalkin painikkeihin, pikapainikkeisiin jne. On tietenkin tehokkaampaa käyttää uudelleen samaa koodia vastata erilaisiin tapahtumiin, kuin kirjoittaa erillinen *OnClick* tapahtumakäsittelijä jokaiseen yksittäiseen komponenttiin.
958383
959384Oletuksena useita standarditapahtumia ovat valmiiksi ladattu. Nämä tapahtumat voidaan valita käyttämällä toimintolistan muokkainta joka näkyy, kun hiiren klikkaa ActionList kuvaketta lomakkeella.
960385
961386## Virheenjäljitys
962387
963388
964389*Jotain kirjoitettu toisaalla*.
965390
9663911\) Varmista, että olet lukenut sen asetukset: [[Debugger Setup]]
967392
9683932\) Katso myös [:category: IDE Window - Debug](/wiki-category/IDE%20Window%20-%20Debug)
969394
9703953\) Lue rajoitukset: [[GDB Debugger Tips|GDB_Debugger_Tips#Inspecting_data_types_.28Watch.2FHint.29]] Tämä sivu antaa ohjeita myös joidenkin alustoiden / versioiden erityiskysymyksiln
971396
972397## Lazarus tiedostot
973398
974399`   (Kiitokset: Kevin Whitefoot.)`\
975400`   (Lisäykset: Giuseppe Ridinò, `User:Kirkpatc` ja Tom Lisjac)`
976401
977402Kun tallennat niin tallennat kahden nimisiä tiedostoja:
978403
979404`  xxx.pas ja yyy.lpr `
980405
981406(Todellisuudessa tallennetaan enemmän mutta niillä on sama nimi mutta eri pääte). Projektitiedoston (lpr) ja käännösyksikön tiedoston (pas) nimi ei saa olla sama. Tietenkin on johdonmukaista muuttaa kaikki esiintymät Unit1 kuuvaavimmiksi nimiksi.
982407
983408Joten jos tallennat projektin nimeltä **again**, yrittää tallentaa again.pas ja again.lpr epäonnistuu, koska yksiköiden nimet ja ohjelmien nimet ovat samassa nimiavaruudessa ja on tuloksena kehitysympäristö kertoo että on olemassa samanniminen tiedosto.
984409
985410Joten tähän päädyttiin:
986411
987412e:/lazarus/kj/lazhello:
988413
989414`total 4740  free 76500`\
990415`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
991416`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
992417`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
993418`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
994419`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 again.res`\
995420`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
996421`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
997422`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
998423
999424Huomaa, että on olemassa paljon enemmän tiedostoja kuin ne kaksi, jotka aluksi mainittiin.
1000425
1001426**again.exe:** Pääohjelma joka on ajettavissa. MS windows:ssa lisätään "exe" tiedostopäätelaajennus. Linux:ssa ei lisätä mitään (vain ohjelman nimi). Tämä tiedosto on oletuksena paljon tilaa vievä johtuen sen sisällyttämistä virheenkorjaus symboleista. Kokoa voi pienentää muuttamalla kehitysympäristön asetuksia tai/ja ajamalla "strip" apuohjelma joka poistaa niitä ja merkittävästi pienentää ajettavan tiedoston kokoa.
1002427
1003428**again.lpi:** (Lazarus Project Information). Tämä on tärkein informaatio tiedosto Lazarus projektilla; Delphissä sitä vastaavat tärkeimmät tiedot on .dpr tiedostossa. Se on tallennettu XML-muodossa ja sisältää ohjeet kaikista kirjastoista ja tarvittavista käännösyksiköistä kun rakennetaan suoritettavaa tiedostoa.
1004429
1005430**again.lpr:** Pääohjelma lähdekooditiedostona. Huolimatta erityisestä tiedostopääte tarkenteesta niin se on itse asiassa täysin normaalia Pascal lähdekooditiedosto. Siinä on uses lauseke, jonka avulla kääntäjä löytää kaikki käännösyksiköt joita se tarvitsee. Huomaa, että program toteamus ei tarvitse nimetä ohjelmaa samaksi kuin tiedoston nimi. Tämä tiedosto on yleensä melko pieni, vain muutaman lausekkeita alustamiseksi, rakentaa lomakkeet, ajaa ja sulkea sovelluksen. Suurin osa työstä tehdään käännösyksiköiden lähdekooditiedostoissa, jossa on tiedostopääte ".pas"
1006431
1007432**againu.lfm:** Lazarus tallentaa käännösyksikön lomakkeen ulkoasun, ihmisen luettavissa olevassa muodossa. Se kertoo eri komponenttien, ominaisuuksia jotka on asetettu komponenttimuokkaimella. Jokaisen komponentin kuvaus alkaa rivillä:
1008433
1009434`object xxxx `\
1010435`   sitten seuraa ominaisuuksien luettelo `\
1011436`  (Myös upotettuja tai sisäkkäisiä objekteja) sitten `\
1012437`end `\
1013438`rivi.`
1014439
1015440Lazarus käyttää tätä tiedostoa kun luo resurssitiedoston (.res). Delphi DFM tiedostot voidaan muuntaa lfm muotoon Lazarus kehitysympäristössä käyttäen: Työkalut -\> Delphi muunnos -\> Muunna binaarinen DFM-tiedosto teksti LFM:ksi ja tarkista syntaksi.
1016441
1017442**again.res:** Tämä on luotu resurssi tiedosto, joka sisältää ohjeet ohjelman rakentamiseen (jos tarkastellaan pääohjelma tiedostoa, näette alustuksen osassa rivin
1018443
1019444``` pascal
1020445{$i *.res}
1021446```
1022447
1023448joka ohjaa ohjelman lataamaan resurssitiedoston). Huomaa, että se ei ole Windows resurssi-tiedosto.
1024449
1025450**againu.pas:** Käännösyksikkö, joka voi sisältää myös lomakkeen koodin; tämä on yleensä vain tiedosto jota ohjelmoijan tarvitsee muokata tai tarkastaa, ja se nimenomaisesti sisältää ohjelmoijan toimittamaa koodia (erityisesti tapahtuman käsittelijät).
1026451
1027452**againu.ppu:** Tämä on koottu käännöyksikkö, joka linkitetään suoritettavaan tiedostoon yhdessä muiden käännösyksiköiden jotka on nimetty Uses osiossa.
1028453
1029454**ppas.bat:** Tämä on yksinkertainen skripti, joka yhdistää ohjelman tuottaman suoritettavan tiedoston. Jos käännös on onnistunut, kääntäjä poistaa sen.
1030455
1031456## Katso myös
1032457
1033458- [[Lazarus IDE Tools/fi|Lazarus IDE Tools]]
1034459- [[Lazarus project files]]
1035460
1036461---
1037462*From the Free Pascal wiki, page "Lazarus Tutorial/fi", as it stood on 2021-12-08 after a change by Trev, 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