Lucrarea nr.7

Ferestre pentru afişarea mesajelor şi introducerea informaţiilor.

-> Se realizează aplicaţia următoare:

implementation

 

{$R *.DFM}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowMessage('Aceasta este fereastra ShowMessage');

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var raspuns:word;

begin

raspuns:=MessageDlg ('Va place fereastra MessageDlg?',

mtConfirmation, [mbYes,mbNo] ,0);

if raspuns=mrYes then ShowMessage('S-a raspuns cu Yes')

else if raspuns=mrNo then ShowMessage('S-a raspuns cu No')

else ShowMessage ( ' S-a raspuns cu alt buton');

end;

 

procedure TForm1.Button3Click(Sender: TObject);

var raspuns:word;

begin

raspuns:=MessageDlgPos('Va place fereastra MessageDlgPos?',

mtConfirmation, [mbYes, mbNo],0, 100, 50);

if raspuns=mrYes then ShowMessage('S-a raspuns cu Yes')

else if raspuns=mrNo then ShowMessage('S-a raspuns cu No')

else ShowMessage ('Raspuns eronat');

end;

 

procedure TForm1.Button4Click(Sender: TObject);

var Raspuns : string;

begin

Raspuns:=InputBox('Titlul ferestrei-ImputBox', 'Cum va numiti?', ' ');

ShowMessage('Va salut '+Raspuns);

end;

 

procedure TForm1.Button5Click(Sender: TObject);

var

Raspuns : string;

ModInchidere :boolean;

begin

Raspuns := ' Numele initial';

ModInchidere:=InputQuery('Titlul ferestrei-InputQuery',

'Cum va cheama?', Raspuns);

if ModInchidere then ShowMessage('Ati introdus '+Raspuns)

else ShowMessage('A ramas '+ Raspuns);

end;

Procedura ShowMessage:

A fost utilizată în singura ei variantă.

Funcţia MessageDlg:

-> Pentru funcţia MessageDlg (butonul al doilea), pentru cel de al doilea parametru (în loc de mtConfirmation), se încearcă pe rând valorile posibile din lista următoare: mtWarning, mtError, mtInformation, mtConfirmation, mtCustom.

-> Se încearcă butonul al doilea (MessageDlg) pentru fiecare variantă.

-> Se adaugă, pentru butonul al doilea (MessageDlg), ca parametrul al treilea al funcţiei MessageDlg, între parantezele drepte,  elementele (care desemnează tipuri de butoane) din lista următoare: mbOK, mbCancel, mbHelp, mbAbort, mbRetry, mbIgnore, mbAll.

-> Pentru parametrii cinci şi şase ai funcţiei MessageDlgPos (butonul al treilea) se pot schimba valorile întregi (atenţie, pentru valori prea mari sau negative este posibil ca fereastra de dialog să fie “afişată” în afara ecranului).

Componenta CheckBox:

Proprietatea Alignment:

-> File/CloseAll

-> File/NewApplication

-> Se aduce pe ecran un buton de selecţie (de tip TCheckBox) din paleta standard de componente.

-> Se încearcă efectul proprietăţii Alignment al acestuia (are două valori posibile).

Proprietatea AllowGrayed:

-> Se trece pe True, se rulează programul şi se încearcă ce se întâmplă la click-uri repetate pe butonul de selecţie.

Proprietatea Checked:

-> Se mai aduce o etichetă (Label) pe formular.

-> Se generează evenimentul OnCkick al butonului CheckBox şi se completează cu instrucţiunea următoare:

if CheckBox1.Checked then label1.Caption:='Checked'

else label1.Caption:='NotChecked';

-> Se testează din nou programul.

Proprietatea State:

-> Se mai adaugă pe formular încă o etichetă.

-> Se completează evenimentul OnClick al butonului de selecţie cu instrucţiunile:

if CheckBox1.State=cbUnchecked then label2.Caption:='Unchecked';

if CheckBox1.State=cbChecked then label2.Caption:='Checked';

if CheckBox1.State=cbGrayed then label2.Caption:='Grayed';

-> Se testează modul de funcţionare al programului

-> Se trece proprietatea AllowGrayed pe Flase (valoarea implicită) şi se testează din nou modul de funcţionare al programului.

 

Componenta GroupBox

Nu are proprietăţi sau metode specifice.

-> Se aduce pe formular un GroupBox.

-> Se aduc pe GroupBox trei butoane de selecţie (CheckBox).

-> Se încearcă, apoi, scoaterea lor în exteriorul GroupBox-ului (pe formular).

-> Se aranjază la loc cele trei butoane pe GroupBox.

-> Se mai aduc pe formular (ca în imagine) trei componente Label, trei componente Edit, trei componente UpDown (pagina Win32), şi un buton BitBtn.

-> Celor trei butoane de selecţie (CheckBox) li se asociază evenimentul OnClick al primului CheckBox.

-> Celor trei componente UpDown li se asociază evenimentul OnClick al primei componente UpDown.

 

implementation

 

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);  {Se iniţializează var şi proprietătile comp}

var ValInitiala:integer;

begin

BitBtn1.Kind:=bkClose;

Form1.Caption:='Calculul casierei';

GroupBox1.Caption:='Folositi cat mai putine monede!';

CheckBox1.Caption:='Monede de 5000 lei';

CheckBox2.Caption:='Monede de 4000 lei';

CheckBox3.Caption:='Monede de 1000 lei';

CheckBox1.Width:=120;

CheckBox2.Width:=120;

CheckBox3.Width:=120;

UpDown1.Associate:=Edit1;

UpDown2.Associate:=Edit2;

UpDown3.Associate:=Edit3;

ValInitiala:=1;

UpDown1.Position:=ValInitiala;

UpDown2.Position:=ValInitiala;

UpDown3.Position:=ValInitiala;

Edit1.ReadOnly:=True;

Edit2.ReadOnly:=True;

Edit3.ReadOnly:=True;

Edit1.Width:=20;

Edit2.Width:=20;

Edit3.Width:=20;

Label1.Caption:='Aveti de returnat 28000 lei';

Label2.Caption:='Suma returnata va fi ';

Label3.Caption:='Returnati restul va rugam!';

end;

 

 

procedure TForm1.CheckBox1Click(Sender: TObject);

var

   suma, NrMonede:integer;

begin

 

suma:=0;

NrMonede:=0;

 

if CheckBox1.Checked then

   begin

   NrMonede:=NrMonede+strtoint(Edit1.text);

   UpDown1.Enabled:=True;

   Edit1.Enabled:=True;

   suma:=suma+5000*strtoint(Edit1.text);

   end

     else

   begin

   UpDown1.Enabled:=False;

   Edit1.Enabled:=False;

   end;

 

if CheckBox2.Checked then

   begin

   NrMonede:=NrMonede+strtoint(Edit2.text);

   UpDown2.Enabled:=True;

   Edit2.Enabled:=True;

   suma:=suma+4000*strtoint(Edit2.text);

   end

     else

   begin

   UpDown2.Enabled:=False;

   Edit2.Enabled:=False;

   end;

 

if CheckBox3.Checked then

   begin

   NrMonede:=NrMonede+strtoint(Edit3.text);

   UpDown3.Enabled:=True;

   Edit3.Enabled:=True;

   suma:=suma+1000*strtoint(Edit3.text);

   end

     else

   begin

   UpDown3.Enabled:=False;

   Edit3.Enabled:=False;

   end;

Label3.Caption:='Numarul de monede folosite este '+inttostr(NrMonede);

Label2.Caption:='Suma returnata va fi '+inttostr(suma)+ ' lei.';

end;

 

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

form1.CheckBox1Click(CheckBox1);

end;