Tartalomjegyzék

< Pascal

Delphi és Lazarus tananyag

A vizuális fejlesztői felület

Egy új projekt indításakor több ablakot kapunk. Felül egy eszköztár, jobb oldalon egy objektum felügyelő ablak. Középen két program ablak jelenik meg, amelyek egymás mögött vannak. Az egyik a program forrása, vagy Unit. A másik a programablak vizuális tervezőfelülete. A kettő között vagy az eszköztáron, vagy az F12 billentyűvel válthatunk. Alul egy üzenetablak jelenik meg, ahol a fordítási üzenetek láthatók.

Az objektum felügyelő ablak több részre oszlik.

A beállítások panelon az egyes objektumok tulajdonságait tudjuk beállítani. Az esemény fülön, minden objektumhoz különféle eseményeket rendelhetünk.

Vizuális tervező

A vizuális tervező felület egyetlen Form1 objektummal indul. Az eszköztárról különböző komponenseket tudunk elhelyezni az ablakon.

Ablak

A Delphi és Lazarus rendszerekben az ablakot Form névvel illetjük. A A formokat a TForm osztályból származtatjuk.

Egy form feliratát, azaz címsorát a Caption tulajdonsággal változtathatjuk meg.

Form1.Caption := 'Új cím';

Nyomógomb

Button1.Caption := 'új felirat';

Üzenetablak

ShowMessage('Teszt');

Állománykezelés

Szöveges állományok kezeléséhez a következő változóra van szükség:

f : TextFile;

Állomány és változó összekötése:

AssignFile(f, 'adat.txt');

Megnyitás:

Reset(f); //Létező fájl megnyitása
Rewrite(f); // Létrehozza az állományt vagy felülírja az előzőt. 
Append(f);  // Létező fájl megnyitása hozzáfűzésre. Mindig a végére fűz.

Állomány bezárása:

CloseFile(f);

Vágólap

...
  StartEdit.SelectAll;
  StartEdit.CopyToClipboard;
...
...
var
  str : String;
begin
  str := StartEdit.Text;
  Clipboard.AsText := str; 
...

Lazarus telepítése

Linux alatt

Debian alapú rendszereken:

apt-get install lazarus fpc-source fp-units-gfx fp-units-gtk fp-units-db
apt-get install fp-units-misc fp-units-math

Windows alatt

Gettext rendszer

A gettext rendszer használatához a következőket tegyük:

Mentéskor az intl könyvtárban létrejön a projekt1.po állomány. A projektet angol nyelven írjuk meg. A projekt1.po fájból készítsünk egy másolatot hu.po néven.

Szerkesszük a poedit nevű programmal. Fordítsuk le az angol nyelvű szavakat.

uses gettext, translations, DefaultTranslator; 
procedure TMainForm.FormCreate(Sender: TObject);
var
  PODirectory, Lang, FallbackLang: String;
begin
  PODirectory := 'intl/';
  GetLanguageIDs(Lang, FallbackLang);
  Translations.TranslateUnitResourceStrings('project1', 
    PODirectory + 'project1.%s.po', Lang, '');
end; 

A uses sor után a resourcestring direktívát követően adjuk meg azokat a karaktersorozatokat, amelyeket mi adunk meg a forráskódban.

uses LResources, Translations;
 
resourcestring
  MainLabelCaption = 'Changed';

Ezek után az állandó nevét adjuk meg az értékadás jobboldalán. Például:

MainLabel.Caption := MainLabelCaption;

Az elkészült .mo kiterjesztésű állományt másoljuk egy locale vagy egy languages nevű könyvtárba.

Függelék

Formok, komponensek kezelése

Form1.Memo1.Hide;
Form1.Memo1.Show;

A Form1 elhagyható, ha az utasítást a Form1 állományán belül adjuk ki.

Fókusz figyelésére példa:

If Memo1.CanFocus = true then
    Form2.Show

Billentyűzet figyelése

Esc billentyű figyelése esetén kezeljük a OnKeyPress eseményt, majd:

If Key = #27 then Application.Terminate;

Esetleg így:

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key : Char);
begin
  Case Key of 
    #27 : Form1.Close;
  end;
end;

Rádiógombok

A rádiógombokat GroupBoxban hozzuk létre. Egy eseménykezelő így nézhet ki:

If RadioButton2.Checked = true then
    ShowMessage('Jó válasz')
else
    ShowMessage('Rossz válasz');

Az else előtti ShowMessage végére természetesen nem kell (;).

Jelszóablak

A Form tulajdonságainál a következőket állítjuk be:

A Mehet gomb eseménykezelője ilyen lehet:

If Edit1.Text = 'titok' then begin
   Form2.ModalResult := 1;
   Form2.Hide;
   ShowMessage('Beléphet');
end else being
   ShowMessage('Rossz jelszó');
end;

Üzenetablakok

ShowMessage('Üzenet');
MessageDlg('Szöveg', mtInformation.[mbOK], 0);
MessageBox('címsor', 'Üzenet', 0);

Linkek