Lucrarea nr. 5

Proprietăţile componentei Label:

Proprietatea Alignment:

-> Se porneşte Delphi.

-> Se aduce pe formular o componentă de tip TLabel (pagina Standard).

-> Se trage de ea astfel încât să se mărească atât pe orizontală cât şi pe verticală.

-> Se modifică proprietatea Alignment pe cele trei valori standard posibile.

-> Ce se întâmplă?

-> Realizaţi trei butoane, cu denumiri sugestive, care să asigneze, fiecare, acestei proprietăţi, cele trei valori posibile! (Pentru funcţionarea corectă a aplicaţiei, treceţi valoarea proprietăţii AutoSize, a componentei Label, pe False!)

Proprietatea Layout:

-> Se modifică proprietatea Layout pe cele trei valori standard posibile.

-> Ce se întâmplă?

-> Realizaţi încă trei butoane, cu denumiri sugestive, care să asigneze, fiecare, acestei proprietăţi, cele trei valori posibile! (Pentru funcţionarea corectă a aplicaţiei, treceţi valoarea proprietăţii AutoSize, a componentei Label, pe False!)

Proprietatea AutoSize:

-> Cu aplicaţia oprită, încercaţi ce se întâmplă cu componenta Label la trecerea proprietăţii AutoSize a acesteia pe valoarea True!

Proprietarea WordWrap

Specifică dacă în caz de nevoie textul etichetei poate fi afişat sau nu pe mai multe linii. Dacă se alege varianta True, şi dacă textul etichetei este prea lung, atunci textul care nu încape pe linia actuală va fi “aruncat” la începutul liniei următoare. Dacă se alege varianta False, textul etichetei se limitează la o singură linie (şi textul poate fi trunchiat).

-> Testaţi efectul acestei proprietăţi!

Proprietăţile ShowAccelChar şi FocusControl:

Se referă la modul de afişare a caracterului ”&” (ampersand) situat în textul aferent componentei. Dacă se alege varianta True, atunci caracterul care urmează după ”&” va fi subliniat. Un caracter subliniat joacă rolul unui caracter accelerator. Dacă utilizatorul acţionează tasta corespunzătoare caracterului subliniat, atunci focarul va ajunge la componenta specificată de proprietatea FocusControl. Această facilitate permite transferarea rapidă a focarului la componentele care nu au proprietatea Caption (astfel de componente sunt, de exemplu, liniile de editare). Dacă pentru proprietatea ShowAccelChar se alege varianta False, caracterul ”&” va fi afişat ca atare, iar proprietatea FocusControl nu poate fi utilizată.

-> Se executa File/CloseAll şi File/NewApplication.

-> Se adaugă pe formular un buton de Close.

-> Se aduce pe formular un buton (Button), un Edit, şi un Label.

-> Pe buton se scrie “Afisaza!”, pe Label se scrie “&Editeaza!” şi în Edit se scrie “Textul meu”.

-> Proprietatea ActiveControl a formularului se trece pe Button1.

-> Proprietatea ShowAccelChar a componentei Label se trece pe True.

-> Proprietatea Focus Control a componentei Label se trece pe Edit1.

-> Evenimentului OnClick a butonului i se asociază o instrucţiune care afişează un mesaj cu conţinutul componentei Edit.

-> Se rulează programul, se testează ce se întâmplă la apăsarea butonului şi ce se întâmplă la apăsarea tastei “e” în timp ce în focar se află butonul.

-> Puteţi reparcurge oricând ultimii şapte paşi?

Proprietăţile componentei Edit:

Proprietatea Text:

Poate fi modificată în timpul rulării programului cu o instrucţiune de genul:

 

            var ValAct: string;                   {Declaraţie de variabilă}

 

            Edit1.Text := ‘Noul conţinut al liniei de editare’;

sau       Edit1.Text := ValAct;

 

sau citită cu o instrucţiune de genul:

 

ValAct := Edit1.Text;

Proprietatea AutoSelect:

-> Pentru aplicaţia precedentă, se încearcă rularea programului pentru cazurile în care proprietatea AutoSelect a componentei Edit are, pe rând, cele două valori posibile.(Efectul este vizibil la intrarea componentei Edit în focar cu ajutorul tastei Tab sau cu ajutorul scurtăturii din Label – tasta “E”.)

Proprietatea BorderStyle:

-> Se încearcă cele două valori posibile ale acestei proprietăţi.

Proprietatea CharCase:

-> Se introduce ca valoare a proprietăţii text a componentei Edit textul: “AaBbCcDd”.

-> Se încearcă cele trei valori posibile ale acestei proprietăţi (se urmăreşte textul din cadrul componentei Edit).

Proprietatea HideSelection

Se referă la modul de vizualizare a textului selectat. Dacă se alege varianta True (valoare implicită), atunci textul selectat al liniei de editare nu mai este evidenţiat în momentul pierderii focarului. Dacă se alege varianta False, textul selectat al liniei de editare va fi evidenţiat şi atunci, când focarul ajunge la o altă componentă.

-> Se testează funcţionalitatea acestei proprietăţi.

Proprietatea MaxLength

Specifică numărul maxim de caractere care pot fi introduse în linia de editare. Dacă se alege valoarea 0, care este şi valoarea implicită, atunci numărul caracterelor care pot fi introduse în linia de editare nu este limitat de utilizator.

-> Se testează funcţionalitatea acestei proprietăţi.

 

Proprietatea Modified

Indică dacă utilizatorul a făcut modificări în conţinutul iniţial al liniei de editare, adică dacă a fost modificată de la tastatură proprietatea Text a liniei de editare. Dacă această modificare se face prin program, atunci pentru proprietatea Modified se atribuie valoarea True.

-> Se testează funcţionalitatea acestei proprietăţi - se modifică evenimentul OnClick al butonului Button1 cu instrucţiunea:

 

if Edit1.Modified then

          showmessage('Textul a fost modificat!')

            else

            showmessage('Textul este nemodificat!');

Proprietatea PasswordChar

-> Se testează funcţionalitatea acestei proprietăţi - se modifică evenimentul OnClick al butonului Button1 cu instrucţiunea:

 

if Edit1.Modified then

          showmessage(Edit1.Text)

            else

            showmessage('Textul este nemodificat!');

 

-> Se trece în dreptul proprietăţii PasswordChar semnul ” * ”.

-> Se rulează programul.

{Valoarea implicită este “ #0 ”}

Proprietatea ReadOnly

-> Se trece pe True, se testează programul, se trece înapoi pe False (valoare implicită).

Proprietatea SelLength

Desemnează numărul caracterelor selectate în linia de editare.

Proprietatea SelStart

Desemnează poziţia primului caracter al unui text selectat (valoarea 0 indică primul caracter al liniei de editare). Dacă în linia de editare nu a fost selectat nici un text, atunci această proprietate indică poziţia actuală a cursorului în interiorul liniei.

Proprietatea SelText

Conţine porţiunea selectată de text din linia de editare.

 

Exerciţiu:

Forma utilizată în această aplicaţie conţine trei linii de editare, un buton de comandă şi opt etichete. În liniile de editare se vor introduce coeficienţii a, b şi c dintr-o ecuaţie de gradul doi de forma:

ax2 + bx +c = 0.

După introducerea coeficienţilor se va acţiona butonul de comandă (etichetat Calcul). În urma acestei comenzi se calculează rădăcinile ecuaţiei, iar rezultatele vor fi afişate în două componente de tip etichetă. Fereastra afişată de aplicaţie are aspectul următor:

Textul sursă al programului este:

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c,delta,x1,x2:real;

begin

try

a:=StrToFloat (Edit1.Text);

b:=StrToFloat (Edit2 .Text);

c:=StrToFloat (Edit3 .Text);

if a=0 then

begin

          Label6.Caption:=’Ecuatie de grad 1’;

          Label7.Caption:=’’;

end

else

begin

delta: =b*b - 4*a*c;

if delta >=0 then

begin

x1 := (-b+sqrt (delta) ) / (2*a);

x2 := (-b-sqrt (delta) ) / (2*a);

Label6.Caption:=FloatToStr (x1);

Label7.Caption:=FloatToStr (x2);

end

else

begin

Label6.Caption: = ‘Radacini complexe’;

Label7.Caption:=’’;

end;

end;

except

on EConvertError do ShowMessage(’Eroare de conversie’);

end; {try}

end;

 

procedure TForm1. FormCreate (Sender: TObject);

begin {Evenimentul “OnCreate” pt.forma}

Label1 . ShowAccelChar:=True;

Label1 . FocusControl :=Edit1;

Label2 . ShowAccelChar : =True;

Label2 . FocusControl : =Edit2;

Label3 . ShowAccelChar : =True;

Label3 . FocusControl : =Edit3;

end;

end.