|
partiale (sau finale).Datele pot fi arhivate fie asa cum sant,fie sub
|
səhifə | 12/16 | tarix | 03.01.2019 | ölçüsü | 1,42 Mb. | | #89992 |
| partiale (sau finale).Datele pot fi arhivate fie asa cum sant,fie sub
forma de pagina .txt (se extrag doar datele de tip text).
Acest obiect este suportul celorlalte obiecte (la fel ca TPanel).
Daca doriti sa subimpartiti documentul in mai multe benzi,alegeti Bands
si setati True benzile dorite(HasTitle,HasSummary...etc.).Utilizati Data-
Set pentru conectarea la o baza de date,Options si Page pentru a seta
aspectul paginilor realizate,sau PrinterSettings pentru a seta preferinte-
le de imprimare.Pentru un exemplu complet,vezi si Prj86.
QRSubDetail- este obiectul care permite introducerea unei benzi supli-
mentare in document.Obiectele incluse in aceasta banda vor fi legate
intre ele,asemanator cu cele incluse in acelasi TPanel.Se utilizeaza
pentru a conecta doua sau mai multe obiecte intre ele,sau pentru a schimba
aspectul general al documentului (alta culoare,alte fonturi etc.).
In plus,QRSubDetail permite conectarea la o alta baza de date,prin pro-
prietatea DataSet.Mai multe astfel de obiecte,pot fi conectate la baze
de date diferite.
QRBand- este un obiect destinat tot pentru a introduce o banda auxiliara,
dar nu are o proprietate DataSet si nu poate fi conectat decat la baza
de date a obiectului de suport (QuickRep).Banda adaugata se va comporta
identic cu cele ale obiectului QuickRep.Pentru a alege tipul de banda,
setati proprietatea BandType (rbTitle,rbPageFooter...etc.).Obiectul nu
poate fi redimensionat,se va adapta automat la dimensiunea docunentului.
TQRChildBand- este un obiect similar cu QRBand,dar permite si utilizarea
componentelor care se extind in momentul utilizarii (Exemplu:ComboBox).
Acest obiect va fi preferat atunci cand se utilizeaza obiecte extensibile
sau atunci cand banda este extrem de lunga si se extinde pe mai multe
pagini.Pentru a inlantui mai multe obiecte de acest gen,se utilizeaza
proprietatile HasChild si respectiv ParentBand.Este bine ca fiecare banda
parinte sa fie legata de o singura banda copil.Daca se leaga mai multe
benzi de tip copil,la acelasi parinte,in momentul imprimarii se va tipari
doar una dintre ele.
Benzile de acest tip pot fi activate sau inactivate individual.O banda
de tip copil activata,va fi imprimata chiar daca banda de tip parinte la
care este legata a fost inactivata.
Setati proprietatea BandType pentru a alege tipul de banda dorit.
Benzile incluse astfel se vor comporta identic cu cele ale obiectului
QuickRep.
QRGroup-introduce tot o banda de editare auxiliara si se utilizeaza pentru
a organiza un grup de astfel de benzi.
Pentru ca datele incluse in benzi sa poata fi vizualizate cu Preview,uti-
lizati un obiect TTable (eventual si TDataSource) pentru a conecta Quick-
Rep si bensile Subdetail la o baza de date oarecare(setati DataSet=Table1)
-95-
QRLabel este un obiect asemanator cu TLabel si este destinat pentru a
introduce in pagina,date de tip caracter (in Caption).Datele afisate sunt
fixe si imprimabile.Restul proprietatilor sunt destinate pentru a alinia
textul sau pentru a seta automat dimensiunea obiectuilui (AutoSize) etc.
Pentru exercitiu,adaugati cateva benzi si cateva obiecte QRLabel in
care utilizati Caption pentru a introduce un text oarecare.Utilizati un
obiect TTable pentru a conecta QuickRep1 la o baza de date,apoi apelati la
metoda Preview pentru a observa aspectul final.Metoda poate fi apelata si
in timpul executiei,cu un buton OK si o procedura:
procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.Preview;
end;
Schimbati benzile,fonturile si culorile pana cand obtineti formatul dorit.
Pentru antet,titlu si semnatura,puteti utiliza benzile corespunzatoare.
QRDBText este un obiect asemanator cu QRLabel,dar este conectat la baza
de date a obiectului QuickRep in care este inclus(adica la baza de date
conectata la banda in care este inclus).Se utilizeaza pentru a prelua si
afisa date dintr-o baza de date,cu ajutorul proprietatilor DataSource si
DataField.Se poate utiliza pentru date de tip sir de caractere,pentru
valori numerice si pentru campuri Memo.Datele afisate pot fi imprimate.
Adaugati unul sau mai multe obiecte de acest gen,pentru a afisa datele
preluate dintr-o baza de date.Pentru a prelua datele din baze de date
diferite,grupati obiectele QRDBText in benzi diferite(conectate diferit).
QREExpr -este un obiect specializat pentru a afisa date preluate dintr-o
baza de date,prelucrate cu o functie oarecare(Average,Copy,Count,Date,
Max,Min,Pretty,Sqrt,Sum etc.).Pentru a stabili expresia de prelucrare a
datelor,alegeti proprietatea Expression si utilizati Expresion builder:
Exemplu: daca QuicRep este conectata prin Table1 la Biolife.db alegeti
functia dorita din caseta Available functions (AVERAGE) si apasati butonul
Add,apoi alegeti campul de date din caseta Field(Length_In) si apasati
butonul Add si apoi confirmati cu OK.Se poate utiliza doar baza de date
la care este conectata banda in care se gaseste obiectul.Este foarte util
pentru a afisa date precalculate sau expresii derivate,conversii etc.
Pentru formarea expresiior se pot utiliza si butoanele cu operatori.
Setul de proprietati permite si o serie de prelucrari auxiliare:culori,
fonturi,imagine transparenta (se vad componentele situate in planul infe-
rior),autodimensionare etc.
QRSYSData este un obiect specializat pentru a afisa cateva variante de
date preluate de la sistemul de operare,cum ar fi: Data,ora,titlul,numarul
de pagini din raport etc.Pentru alegerea tipului de date afisate se uti-
lizeaza proprietatea Data(qrsDate,qrsTime etc.).Pentru a adauga un text
oarecare,se poate seta proprietatea Text,care va adauga textul respectiv
inaintea datelor preluate de la sistem.
QRMemo-este un obiect similar cu TMemo si este utilizat pentru a intro-
duce in document texte extensive (care se pot intinde chiar si pe mai
multe pagini imprimabile).Textul propriu zis va fi inclus in proprietatea
Lines (utilizand String list editor) iar restul proprietatilor se pot
utiliza pentru a seta dimensiunile,culorile,fonturile,transparenta etc.
Pentru a accesa din Help obiectele QReport,executati un clic drept in
paleta de optiuni,alegeti Properties,apoi Help,See also,Component palette
-96-
si apoi selectati paleta QReport components.
QRRichText - este asemanator cu QRMemo si se utilizeaza pentru a introduce
date de tip text in format RichText.Se utilizeaza pentru texte extensive
care respecta un anumit format: spatii goale,spatii TAB,tabele etc.
Se utilizeaza proprietatea Lines pentru a edita textul dorit.
QRDBRichText -este similar cu QRRichText dar utilizeaza proprietatile
DataSource si DataField pentru a prelua datele dintr-o baza de date.
Se utilizeaza pentru texte in format RichText (exemplu microtabele incluse
in campurile de date ale bazei de date).
QRShape -este un obiect destinat pentru a putea adauga figuri geometrice
dreptunghiulare,cercuri sau linii.Se utilizeaza pentru a putea reprezenta
grafic datele simple,sau pentru a adauga diverse marcaje de atentionare
sau de evidentiere a unor fragmente din document.Se utilizeaza la fel ca
si obiectul TShape ( prin proprietatile Brush si Shape).
QRImage -este specializat pentru includerea imaginilor de tip Bitmap in
document.
EXEMPLU: utilizati Tools/Image Editor pentru a realiza o fila de tip
bitmap si arhivati fila realizata in acelasi director cu documentul de
tip QReport.Pentru a introduce imaginea realizata in documentul QuickRep,
adaugati un obiect QRImage,alegeti proprietatea Picture iar din Picture
Editor alegeti Load si selectati fila dorita.Se poate utiliza pentru
orice tip de imagine digitala suportat de TPicture(TBitMap,TIcon,TMeta-
file,TGraphic si toti descendentii sai).Puteti utiliza acest obiect
pentru a introduce in document fotografii,harti,desene,grafice etc.
QRDBImage - este identic cu QRImage,dar utilizeaza proprietatie DataSource
si DataField pentru a prelua imaginea dintr-o baza de date.Imaginea pre-
luata nu va fi afisata decat in momentul apelarii metodei Preview.Pentru
a verifica obiectul in faza de design,executati un click de mouse drept
si alegeti Preview.
QRCompositeReport -este un obiect destinat pentru a seta preferintele de
imprimare,cu ajutorul proprietatilor Options si PrinterSettings.Se uti-
lizeaza pentru a specifica numarul de copii,prima si ultima pagina etc.
Este util in cazul documentelor formate din mai multe pagini imprimabile.
QRPreview se poate utiliza pentru a adauga in faza de design obiecte si
componente care nu se vor afisa sau imprima in faza de Preview (de exemplu
pentru a salva un obiect anterior,care a fost actualizat (inlocuit cu
altul nou),dar care contine date importante pentru o etapa ulterioara a
proiectului.Poate fi utilizat ca un fel de Recycle Bin in care se salveaza
obiectele care nu sunt necesare la un anumit moment dat,dar vor fi reuti-
lizate intr-o etapa ulterioara.
QRChart - este un obiect specializat pentru prezentarea de grafice.Este
asemanator cu TChart si se utilizeaza pentru a prezenta grafice cu date
aleatorii sau preluate dintr-o baza de date.Pentru setarea obiectului,
executati un click de mouse cu butonul drept,in aria obiectului si
alegeti EditTChart apoi utilizati optiunile obiectului specializat denumit
Editing QRDBChart.
Cele 18 obiecte din paleta QReport permit elaborarea de documente
complexe,cu aspect personalizat si cu date de tip diferit,preluate din
surse diferite si prelucrate automat.Documentele pot fi arhivate sau
imprimate extrem de usor.Daca datele prezentate sunt extrem de lungi si
pot fi fragmentate,este bine sa le reprezentati in rapoarte multiple.
-97- Dialogs - OpenDialog
Paleta de componente denumita Dialogs contine un grup de obiecte desti-
nate pentru operatii cu file intregi.Aceste obiecte permit aplicatiilor
Delphi sa apeleze direct casetele de dialog ale sistemului de operare
Windows,astfel incat selectarea unei anumite file sa se faca extrem de
facil (prin interfata grafica a sistemului Windows).Aceste obiecte sunt
foarte utile pentru programarea unor operatii de deschidere,copiere sau
imprimare a unor anumite file.Pentru fiecare obiect,caseta de dialog de
tip Windows corespunzatoare acelui obiect poate fi apelata prin metoda
Execute.Fiecare obiect are si un set propriu de metode destinate pentru
a modifica aspectul casetelor de dialog in functie de preferinte.
OpenDialog -este obiectul prin care se poate apela caseta de dialog
OpenFile din Windows.In aceasta caseta de dialog,utilizatorul poate
selecta fila pe care doreste sa o deschida.Pentru a deschide caseta de
dialog,se apeleaza metoda Execute.Fila selectata va fi deschisa automat,
iar proprietatea FileName va fi setata automat,astfel incat sa contina
calea completa de acces la fila.Pentru a prelua datele din fila deschisa,
trebuie adaugata procedura corespunzatoare cu formatul datelor.Pentru a
deschide o fila text si pentru a prelua datele intr-un camp memo,puteti
utiliza un exercitiu de genul:
EXEMPLU: (vezi si Prj87).
Salvati o fila noua si proiectul in Prj87.Adaugati un obiect TOpenDialog,
un buton,un camp TMemo si unul TLabel.Selectati butonul si adaugati urma-
toarea procedura OnClick:
procedure TForm1.Button1Click(Sender : TObject);
var rezultat:variant;
F:TextFile;
sir1:string;
begin
rezultat:=OpenDialog1.Execute;
if rezultat = -1 then
Label1.Caption:=OpenDialog1.Filename;
AssignFile(F,OpenDialog1.Filename);
Reset(F);
while not EOF(F) do
begin
Readln(F,sir1);
Memo1.Lines.Add(sir1);
end;
CloseFile(F);
if rezultat = 0 then
begin
Label1.Caption:='fila nu poate fi deschisa !';
Memo1.Clear;
end;
end;
In exercitiul Prj87 am adaugat cateva retete de bucatarie :compot,olandez
si sushi.Puteti deschide oricare dintre aceste file,sau puteti utiliza
caseta de dialog pentru a deschide orice fila de tip text din memorie.
Pentru file care contin alt fel de date,trebuie sa editati alta procedura
pentru exploatarea datelor (dar fila va fi deschisa indiferent de format).
Proprietatile Filter si Options permit personalizarea casetei de dialog.
-98- Dialogs - TSaveDialog
TSaveDialog este obiectul prin care se poate apela o caseta Windows de
tip Save dialog box.Apeland metoda execute,se va deschide caseta de dialog
Windows in care utilizatorul poate alege fila pe care doreste sa o copieze
in directorul selectat.Numele si calea de acces la fila selectata se vor
arhiva in proprietatea Filename.Daca doriti ca fila selectata sa fie
salvata cu un anumit nume,introduceti numele respectiv in proprietatea
FileName in etapa de design.In aces caz,in momentul executiei numele
respectiv va fi afisat in caseta Edit din caseta de dialog.
Pentru ca fila respectiva sa fie salvata,trebuie sa adaugati si o
procedura in care sa apelati functia SaveTo File corespunzatoare cu
formatul datelor(TStrings,TPicture,TOleConteiner,TMetafile,TGraphic,
TDBGrid,TCustomTreeView,TCustomMemoryStream,TClientDataSet,TBlobField).
De exemplu,pentru a salva o fila de tip .BMP cu numele de Fila1.bmp puteti
utiliza un exercitiu de genul:
EXEMPLU: (vezi si Prj88)
Salvati o fila noua si proiectul in Prj88.Adaugati un obiect TSaveDialog,
un buton TBitBtn(din Additional) si un obiect TImage.
Selectati obiectul Image1 si utilizati proprietatea Picture pentru a
incarca o fila de tip .BMP oarecare (cu Load).
Selectati butonul si setati Caption la valoarea Save (sau Salveaza).
Pentru a adauga si un desen pe buton,alegeti proprietatea Glyph,apoi
alegeti Load si in caseta de dialog LoadPicture alegeti din directorul
Delphi 3/Images/Buttons pictograma Filesave,apoi confirmati cu open si OK.
Apoi alegeti Events si adaugati urmatoarea procedura OnClick:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
SaveDialog1.Execute;
Image1.Picture.SaveToFile(SaveDialog1.FileName);
end;
Proprietatile obiectului sunt la fel ca pentru TOpenDialog.Singura
metoda proprie este Execute (celelalte sunt mostenite) iar dintre
evenimente se pot utiliza: OnSelectionChange,OnClose si OnShow.
Observati ca obiectul nu executa operatii propriu zise asupra datelor ci
doar realizeaza legatura cu caseta de dialog de tip Windows.Orice ope-
ratie propriu zisa asupra datelor selectate,trebuie specificata prin
proceduri adugate impreuna cu Execute.
Pentru a salva orice tip de date,trebuiesc tratate toate situatiile
posibile.Este mult mai simplu sa utilizati acest obiect pentru a salva
doar o anumita fila (cea generata in aplicatia d-voastra).Eventual puteti
adauga cate un buton si o procedura pentru fiecare tip de date din
aplicatie.Daca generalizati prea mult procedura de salvare,riscati sa
creati confuzii referitoare la tipul de date,caz in care fila selectata
va fi salvata dar nu va putea fi utilizata.
Proprietatea Options ofera o paleta foarte larga de optiuni prin care
puteti organiza modul de interactiune cu utilizatorul.Implicit,toate
aceste optiuni sunt setate False.Pentru a utiliza una dintre optiuni,
trebuie sa setati valoarea True pentru optiunea respectiva.Exemplu:
ofShowHelp=True va adauga in caseta de dialog si un buton Help.Puteti
edita o procedura care sa ofere informatii pentru utilizator in momentul
in care se apasa butonul Help.Proprietatea Filter va permite sa filtrati
in caseta de dialog doar tipurile de file acceptabile.
-99- Dialogs -TOpenPictureDialog
TOpenPictureDialog este destinat pentru deschiderea filelor de tip
grafic.Obiectul,prin metoda Execute,apeleaza caseta de dialog de tip
Windows care permite selectarea filei.Este identic cu TOpenDialog dar,
prezinta si o regiune Preview in care fila selectata poate fi afisata
inainte de a fi deschisa.Daca fila selectata poate fi afisata de un obiect
TPicture,atunci fila va fi afisata in regiunea Preview,iar in caz contrar
se va afisa textul "None".Filele acceptate de TPicture sunt: bitmap(.BMP),
icon(.ICO),Windows metafile(.WMF) si enhanced Windows metafile(.EMF).
Filele neacceptabile returneaza un mesaj de eroare: EInvalidGraphic.
EXEMPLU: (vezi si Prj89)
Salvati o fila noua si proiectul in Prj89.Adaugati un obiect de tip TOpen-
PictureDialog,un buton si un obiect TImage.
Selectati butonul si adaugati urmatoarea procedura OnClick:
procedure TForm1.Button1Click(Sender: Tobject);
begin
OpenPictureDialog1.Execute;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
Tastati F9 si executati aplicatia.Alegeti in caseta de dialog una dintre
filele arhivate in Delphi3/Images/Splash/256color (de exemplu Handshak) si
apoi confirmati cu Open.
TSavePictureDialog este un obiect destinat pentru alegerea si salvarea
filelor de tip grafic.Obiectul apeleaza prin metoda Execute,caseta de
dialog de tip Windows.Este identic cu TSaveDialog,dar prezinta si un camp
Preview in care fila selectata poate fi afisata inainte de a fi deschisa
si/sau salvata.Se utilizeaza la fel ca TSaveDialog.In cazul in care doriti
sa salvati o fila din proiect,utilizati obiectul ca atare.In cazul in care
doriti sa navigati prin memorie,sa alegeti o anumita fila si apoi sa sal-
vati fila in directorul initial,alegeti Options si setati ofNoChangeDir la
valoarea TRUE.
EXEMPLU: (vezi si Prj90)
Salvati o fila noua si proiectul in Prj90.Adaugati un obiect TSavePicture-
Dialog,un buton si un camp TImage.
Alegeti SavePictureDialog1 si setati Options/ofNoChangeDir=True.
Alegeti butonul si adaugati urmatoarea procedura OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var rez:variant;
begin
rez:=SavePictureDialog1.Execute;
if rez = -1 then
begin
Image1.Picture.LoadFromFile(SavePictureDialog1.FileName);
Image1.Picture.SaveToFile('Desen1.bmp');
end;
end;
Tastati F9 si executati aplicatia.Alegeti orice fila de tip .BMP si apoi
apasati butonul Save.Fila selectata va fi salvata in directorul Prj90 cu
numele de Desen1.bmp,deoarece proprietatea NoChangeDir=True forteaza
revenirea la directorul initial,imediat dupa apasarea butonului Save.
Puteti utiliza Filter pentru a modifica tipurile acceptabile.
-100- Dialogs -TFontDialog-TColorDialog
TFontDialog este un obiect destinat pentru schimbarea fonturilor in
timpul executiei unui program.Apeleaza prin metoda Execute,caseta de dia-
log de tip Windows in care se poate alege tipul,stilul si dimensiunea
fonturilor utilizate.Fontul ales va fi salvat in proprietatea Font si va
putea fi transferat la orice alt font din aplicatie.
EXEMPLU: (vezi si Prj91)
Salvati o fila noua si proiectul in Prj91.Adaugati un obiect TFontColor,
un buton si un camp TLabel.
Setati Label1.Caption=Textul initial.
Selectati butonul si adaugati urmatoarea procedura OnClick:
Dostları ilə paylaş: |
|
|