Nevie mi niekto povedať v čom mám chybu. Všetky menu idú, jediná chyba z môjho pohľadu je, že PopupMenu nejde, nech klikám s myšou kde chcem a s ktorou stranou chcem, nič sa nedeje. Ako možno som zle pochopil PopupMenu. Ja ho chápem ako keď napríklad kliknem vo Windows na plochu pravý tlačidlom na myške a vyskočí mi menu.
unit Standart;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, ExtCtrls,
StdCtrls;
type
{ TfrmMoj }
TfrmMoj = class(TForm)
Panel1: TPanel;
Tlac3: TButton;
MainMenu1: TMainMenu;
Menu1: TMenuItem;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
Moznost5: TMenuItem;
Moznost4: TMenuItem;
Moznost3: TMenuItem;
Moznost2: TMenuItem;
Moznost1: TMenuItem;
PopupMenu1: TPopupMenu;
Tlac2: TButton;
Tlac: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckGroup1: TCheckGroup;
Meno1: TMemo;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioGroup1: TRadioGroup;
ScrollBar1: TScrollBar;
Text2: TEdit;
imgObraz: TImage;
Text1: TLabel;
procedure Tlac3Click(Sender: TObject);
procedure MzdaClick(Sender: TObject);
procedure Tlac2Click(Sender: TObject);
procedure TlacClick(Sender: TObject);
private
public
end;
var
frmMoj: TfrmMoj;
PocetRiadkov: integer;
implementation
{$R *.lfm}
{ TfrmMoj }
procedure TfrmMoj.MzdaClick(Sender: TObject);
begin
imgObraz.Canvas.Pen.Color := clGreen;
imgObraz.Canvas.Line(10, 10, 130, 120);
end;
procedure TfrmMoj.Tlac3Click(Sender: TObject);
begin
ShowMessage(Meno1.Lines[0]);
end;
procedure TfrmMoj.Tlac2Click(Sender: TObject);
begin
PocetRiadkov := Meno1.Lines.Count;
{prepise posledny riadok slovom 'Ako'}
Meno1.Lines[PocetRiadkov-1] := 'Ako';
end;
procedure TfrmMoj.TlacClick(Sender: TObject);
begin
ShowMessage(Meno1.Lines.Text);
end;
end.
//Na tvobu menu použijem TMainMenu alebo TPopupMenu
//Umiestnim ho na formulár a 2x naňho kliknem
//V jej kontextovom menu môžem pridávať a odoberať položky (Insert New Item a Delete Item), posúvať ich (Move Up/Down) a vytvárať podmenu (Create Submenu)
//V Object Inspectore je možné meniť názvy (Name) a popisy (Caption) jednotlivých položiek
//Po dvojitom kliknutí na vybranú položku sa vytvorí jej udalosť OnClick
//Ak ho chcem po jeho vytvorení priradiť napr. editačnému poľu Edit1, zmeň vlastnosť nazvanú PopupMenu komponentu Edit1
//Ďalší používaný komponent sa nazýva Button
//Jeho vlastnosť Caption určuje nápis na ňom
//Ak chcem na formulár vložiť jednoduchý text, využijeme komponent Label
//Vlastnosť Caption, ako vždy, určuje tento nápis
//Už spomínaný Edit má dôležité vlastnosti Text (jeho aktuálny textový obsah), CharCase (prevod textu na veľké alebo malé písmená) a ReadOnly (logická hodnota určujúca, či je políčko určené len na čítanie)
//Komponent Memo je podobný Edit-u, ale môžem doňho napísať viac riadkov textu
//A zároveň sa dá použiť aj jeho vlastnosť Text, ktorá je typu string, teda s ňou môžem bežným spôsobom pracovať
//Počet riadkov zistím pomocou vlastnosti Count (podradenej Lines)
//Zaujímavým, no nie veľmi používaným komponentom je ToggleBox
//Toto tlačidlo môže byť buď v stave „vybrané“ - vtedy má jeho vlastnosť Checked hodnotu true alebo naopak „nevybrané“ - false
//Vybrané je vtedy, ak vyzerá byť vtlačené dovnútra
//Kockaté políčko CheckBox, známe aj z webových stránok, môže byť zaškrtnuté (hodnota vlastnosti Checked je true) alebo prázdne (false)
//Caption určuje nápis vedľa políčka
//Ak nastavím AllowGrayed na true, pole bude môcť byť aj šedé
//Vtedy zistím jeho stav vlastnosťou State
//Viac CheckBoxov môžem združiť do jedného komponentu CheckGroup
//Ten najprv umiestním na formulár, nechám ho aktívny (alebo doňho klikneme, ak nie je)
//Potom na palete vyberiem CheckBox a kliknem späť do CheckGroupu na formulári
//RadioButton sa od CheckBoxu líši tým, že z jednej skupiny môže byť vybrané len jedno z nich a ich vzhľad je kruhový
//Použitie vlastnosti Checked je rovnaké
//Častejšie ako RadioButton samotný sa používa RadioGroup - skupina políčok
//Pracuje sa s ním podobne ako s CheckGroupom popísanom v predchádzajúcom odstavci
//V Lazaruse je ScrollBar jednou z možností výberu číselných hodnôt určitého rozsahu
//Čím je „jazdec“ viac vpravo, tým je hodnota väčšia
//Minimálnu možnú hodnotu určím vlastnosťou Min, maximálnu cez Max
//Position určuje aktuálnu pozíciu posuvného „jazdca“
//Tu je príklad
//procedure TfrmMoj.scbPosChange(Sender: TObject);
//begin
// frmMoj.Height := scbPos.Position;
//end;