Componenta Memo moşteneşte majoritatea proprietăţilor şi metodelor componentei de editare de tip TEdit.
-> 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.
-> 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.
-> Se īncearcă cele patru valori.
-> 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ă.
-> 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.