Lucrarea nr. 6

Proprietăţile componentei Memo:

Componenta Memo moşteneşte majoritatea proprietăţilor şi metodelor componentei de editare de tip TEdit.

Proprietatea Lines:

-> Se apasă pe butonul cu trei puncte din dreptul proprietăţii Lines.

-> Se introduc cāteva linii de text (delimitate de ENTER).

-> Se apasă butonul OK.

-> Se porneşte Notped se introduce un text cu mai multe linii şi se salvează īn C:\Studenti\Anul I\Textul.txt

-> Se deschide din nou proprietatea Lines şi se face click dreapta (cu butonul drept al mouse-ului) pe fereastra StingListEditor.

-> Se alege Load, se navighează către fişierul text salvat anterior şi se apasă butonul Open

-> Se apasă pe butonul OK.

Proprietatea Align:

-> Se porneşte Delphi.

-> Se aduce pe formular un Memo (din pagina standard de componente).

-> Se īncearcă ce se īntāmplă la schimbarea valorilor proprietăţii Align (după testarea valorii alClient este necesară redimensionarea componentei Memo).

-> Se lasă valoarea implicită alNone.

Proprietatea ScrollBars:

-> Se īncearcă cele patru valori.

Proprietatea WantReturns

-> Se trece pe True, se rulează aplicaţia şi se īncearcă ce se īntāmplă la apăsarea tastei ENTER īn cadrul componentei Memo.

-> Se īncearcă acelaşi lucru pentru valoarea False.

-> Ce se īntāmplă la apăsarea Ctrl+ENTER ?

-> Se lasă pe True care este şi valoarea implicită.

Proprietatea WantTabs:

-> Se trece pe True, se rulează aplicaţia şi se īncearcă ce se īntāmplă la apăsarea tastei Tab īn cadrul componentei Memo.

-> Se īncearcă acelaşi lucru pentru valoarea False.

-> Ce se īntāmplă la apăsarea Ctrl+Tab ?

-> Se lasă pe False care este şi valoarea implicită.

 

Exerciţiu:

Se va realiza o aplicaţie care va calcula primii n=40 termeni ai şirului lui Fibonacci.

Afişarea va avea forma:

Ordin = k Valoare = termenul de ordin k din şirul lui Fibonacci.

Termenul de ordin k al şirului lui Fibonacci se defineşte prin formulele:

f0=0;    f1=1;    fk=fk-1+fk-2

Calculele sunt realizate īn momentul declanşării evenimentului OnPaint al formei.

implementation

 

{$R *.DFM}

 

procedure TForm1.FormPaint(Sender: TObject);

 

{īnainte de begin se declară funcţia locală Fib}

 

function Fib (n:integer) :longint;

var i:integer;

    f0, f1, fn:longint;

begin

if n=0 then Fib:=0 else

   if n=1 then Fib:=1 else

   begin

   f0:=0; f1:=1; i:=2;

   while i <= n do

         begin

         fn:=f0+f1;

         f0:=f1;

         f1:=fn;

         i:=i+1;

         end;

   Fib:=fn;

   end;

end;

 

{tot īnainte de begin se declară variabilele locale}

 

var

n, k:integer;

 

begin

n:=40;

Memo1 . Clear;

for k:=0 to n do

    Memo1.Lines.Add('Ordin=' + IntToStr(k) + 'Valoare=' + IntToStr(Fib(k)));

end;

 

Exerciţiu:

Se propune realizarea ferestrei unde:

-Load cere numele fişierului din care se va īncărca text.

-Save cere numele fişierului īn care se va salva text.

-Clear goleşte fereastra Memo.

-Exit īnchide aplicaţia.

 

Codul aplicaţiei este următorul:

 

implementation

 

{$R *.DFM}

 

var NumeFis:string;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

NumeFis:=InputBox ('Incarcare', 'Introduceti numele fisierului','');

if NumeFis <> ' ' then Memo1.Lines.LoadFromFile(NumeFis);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

NumeFis:=InputBox('Salvare','Introduceti numele fisierului',' ');

if NumeFis <> '' then Memo1.Lines.SaveToFile(NumeFis);

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

ShowMessage('Linii sterse=' + IntToStr(Memo1.Lines.Count));

Memo1.Lines.Clear;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

Close;

end;

 

end.

 

Exerciţiu:

Se propune realizarea unei aplicaţii care să fie o combinaţie a celor două propuse anterior, adică aplicaţia Fibonacci să aibă opţiunea de salvare a rezultatelor.