Aceste dialoguri includ componentele OpenDialog (SaveDialog) și OpenPictureDialog (SavePictureDialog).
Principalele proprietăți:
FileName - specifică numele fișierului selectat
FilterIndex - definește indexul filtrului implicit când dialogul este deschis.
InitialDir - definește directorul când se deschide dialogul.
DefaultExt - o delimitează extensia de fișier implicită.
Titlu - titlul ferestrei.
Opțiuni - diferite opțiuni pentru componenta care definesc condițiile pentru selectarea unui fișier. De exemplu, proprietateaCreatePrompt afișează un comentariu și o cerere de a crea un fișier nou. dacă utilizatorul a scris numele unui fișier inexistent.
Componentele dialogurilor pentru deschiderea și salvarea fișierelor permit procesarea unui număr de evenimente:
OnCanClose - apare atunci când utilizatorul închide fereastra în mod normal după selectarea unui fișier.
OnFolderChange - apare atunci când directorul este schimbat.
OnSelectionChange - apare atunci când numele fișierului este schimbat.
OnShow - apare atunci când dialogul este deschis.
OnTypeChange - apare la schimbarea tipului de fișier.
Exemplu: permite aplicației să includă fereastra de editare RichEdit1 și dialogurile OpenDialog și SaveDialog. Apoi procesați comanda Deschidere. care încarcă fișierul selectat de utilizator în RichEdit1. pot fi reduse la următoarele:
AnsiString MyFName = "";.
Acest bloc de declarație este un dialog, și verifică dacă utilizator numele fayl.Zatem al fișierului selectat (OpenDialog1-> filename) este stocat în peremennoyMyFName selectat și fișierul este încărcat în textul RichEdit1 metodomLoadFromFile.
Procesează comanda Salvează ca. care stochează textul ferestrei RichEdit1 în fișierul selectat de utilizator, este după cum urmează:
Primul dintre acești operatori atribuie komponentaSaveDialog1 NumeFișier proprietate numele fayla.Eto stocate numele implicit va fi oferit utilizatorului la deschiderea dialog Save As Acesta ar trebui să fie operatorul și otkryvaetdialog. dacă utilizatorul a ales-o. o stochează într-un nou nume de fișier și stochează textul componentei RichEdit1 în fișierul cu acel nume.
Procesează comanda Salvează. RichEdit1 în fereastra deschisă anterior sau, dacă textul nu este dintr-un fișier, atunci în fișierul selectat de utilizator este după cum urmează:
Dacă numele fișierului MyFName nu este egal cu un șir gol. și anume se știe că nu este nevoie să se recurgă la dialog. Textul este salvat utilizând metoda SaveToFile. Dacă numele fișierului este necunoscut. apoi textul este salvat folosind dialogul SaveDialog1, de asemenea. așa cum sa discutat mai sus.
7.2 Dialogul de selectare a fontului (componenta FontDialog)
Această componentă este caseta de selectare de fonturi de dialog în care pentru a selecta shirfta numele polzovatelmozhet, stilul său (marca), dimensiunile și alte proprietăți componente atributy.Osnovnoe - Font, în care setările inițiale atributele fontului pot fi setate sau citite atribute znachenieya selectate de către utilizator în procesul de dialog Proprietățile MaxFontSize și MinFontSize stabilesc limite pentru dimensiunile maxime și minime ale fontului. În mod implicit, valorile acestor proprietăți sunt 0, fără restricții impuse. Proprietatea Opțiune conține mai multe opțiuni care determină caracteristicile ferestrei de selectare a atributului de font. În mod prestabilit, toate opțiunile sunt dezactivate, cu excepția opțiunii fdEffects. care afișează indicatori de efecte speciale (bold, italic, subliniere etc.) și o listă de culori.
Un fragment al codului care ilustrează aplicarea componentei FontDialog la utilizarea componentei RichEdit1 ca fereastră de editare arată astfel:
Dacă (FontDialog1-> Execute ())
În acest fragment, atributele fontului numai pentru partea selectată a textului se modifică. Dacă doriți să modificați fontul întregului text, este recomandabil să folosiți operatorul:
Dacă (FontDialog1-> Execute ())
7.3 Dialogul de selectare a culorii (componenta ColorDialog)
Cu această componentă se selectează caseta de dialog de selectare a culorii. în care utilizatorul poate selecta o culoare din paleta de bază. Proprietatea principală a componentei este proprietatea Color. care corespunde acelei culori. pe care utilizatorul le-a ales în dialog. Valoarea de culoare obținută poate fi transferată la orice obiect component. De exemplu, următorul fragment de cod va determina ca fundalul componentei RichEdit1 să fie colorat de culoarea selectată de utilizator în dialogul ColorDialog1.
Dacă (ColorDialog1-> Execute ())
// Codul aplicației pentru aplicarea diferitelor dialoguri
#pragma resource "* .dfm"
AnsiString MyFName = ""; // Descrierea variabilei
void __fastcall TForm1 :: Button1Click (TObject * Expeditor) // Deschideți fișierul
if (OpenDialog1-> Execute ()) // Deschideți dialogul OpenDialog1
MyFName = OpenDialog1-> FileName; // Atribuirea unei variabile la numele fișierului
void __fastcall TForm1 :: Button2Click (TObject * Expeditor) // Salvați ca
dacă (SaveDialog1-> Execute ()) // Deschideți dialogul SaveDialog1
RichEdit1-> Linii-> SaveToFile (MyFName); // Salvați un fișier cu numele specificat
void __fastcall TForm1 :: Buton3Click (TObject * Expeditor) // Salvează
RichEdit1-> Lines-> SaveToFile (MyFName); // Salvare dacă numele fișierului este specificat
RichEdit1-> Linii-> SaveToFile (MyFName); // Salvați ca și cum numele fișierului nu este specificat
void __fastcall TForm1 :: Button4Click (TObject * Sender) // Modificați fontul, partea selectată a textului
dacă (FontDialog1-> Execute ()) / Apelați dialogul FontDialog1
void __fastcall TForm1 :: Button5Click (TObject * Sender) // Modificați atributele fontului în întregul text
void __fastcall TForm1 :: Button7Click (TObject * Sender) // Schimba culoarea de fundal a fontului
Fig.7.1 Cod de program al exemplelor care ilustrează modul de funcționare a casetelor de dialog
Codul programului al acestei aplicații când apăsați butoanele corespunzătoare vă permite să:
· Amintiți-vă fișierul cu numele vechi;
· Salvați fișierul cu un nume nou;
· Modificați fontul pentru partea selectată a textului;
· Schimbați fontul întregului text;
· Modificați culorile fontului.
7.4Direcțiile de căutare și înlocuire a textului (componente FindDialog și ReplaceDialog)
Aceste componente cauzează dialoguri pentru a căuta și înlocui fragmente de text. Ele au următoarele proprietăți de bază:
FindText - definește textul. specificate de utilizator pentru a căuta și înlocui.
ReplaceText - definește în componenta ReplaceDialog textul, care ar trebui să înlocuiască FindText.
Opțiuni - set de opțiuni. care determină caracteristicile ferestrelor de dialog de căutare și înlocuire.
Prin ele însele, componentele FindDialog și ReplaceDialog nu efectuează nicio căutare sau înlocuire. Ele oferă doar o interfață cu utilizatorul. O căutare și înlocuire ar trebui să fie efectuate programat. Pentru a face acest lucru, puteți utiliza evenimentul OnFind. Când utilizatorul face clic pe butonul Găsiți următorul în dialog. și evenimentul OnReplace. Dacă utilizatorul face clic pe butonul Înlocuire sau Înlocuire toate. În evenimentul OnReplace, puteți afla ce buton a apăsat utilizatorul, de la valorile parametrilor frReplace și frReplaceAll.
// Codul de program al unei aplicații care vă permite să căutați o anumită piesă de text
#pragma resource "* .dfm"
void __fastcall TForm1 :: Button1Click (TObject * Expeditor)
// Setați textul de căutare inițială în Memo
FindDialog1-> FindText = Memo1-> SelText; // Selectați textul
FindDialog1-> Execute (); // Apelați dialogul de căutare
void __fastcall TForm1 :: FindDialog1Find (TObject * Expeditor)
E - numărul de caractere din prima poziție a căutării înainte de sfârșitul textului
F = S + "numărul simbolurilor fragmentului" + "al primului caracter al elementului selectat
fragment în următoarea căutare "* /
prin mărimea simbolurilor fragmentului text selectat * /
S + = Memo1-> SelLength; // Creșterea numărului S prin număr. caractere ale fragmentului selectat
/ * SubString (S + 1, E) - Funcția returnează o parte a textului începând cu S + 1
simbol și până la sfârșitul textului,
LowerCase () - Funcția returnează un șir în care sunt date toate caracterele
la literele mici,
Pos (FindDialog-> FindTextA.LowerCase ()) - O funcție care returnează un index
Dacă fragmentul nu este găsit, 0 * /
dacă (F! = S) // Dacă fragmentul este găsit
altceva ShowMessage ("text" "+ FindDialog1-> FindTextA +" nu mai este găsit));
Fig.7.2 codul programului al aplicației, care permite căutarea unui fragment de text dat
Să explicăm în detaliu scopul unui număr de funcții utilizate în acest cod.
Funcția LowerCase () - returnează un șir în care toate caracterele sunt reduse la litere mici.
Funcția SabString () este utilizată pentru a prelua fragmente din șirul Memo1. Această funcție returnează o subrecurs. începând cu simbolul în poziția specificată de primul parametru al funcției și conținând numărul de caractere. nu depășește valoarea. specificată de al doilea parametru al funcției. Astfel, expresia Memo1-> Text.SubString (S + 1, E) returnează partea textului. începând cu caracterul S + 1 și sfârșitul textului.
Funcția Po () caută linia. la care este aplicabil (în cazul nostru Memo1-> Text.SubString (S + 1, E)) prima apariție a subrecursului. specificată de parametrul său (în cazul nostru FindTextA). Dacă căutarea este reușită. funcția returnează indicele primului caracter al evenimentului găsit al substringului. Numărătoarea indiciilor începe cu una, dacă subcadrul nu este găsit. returnează 0.
Exemplul 2. Elaborați un program pentru a găsi și înlocui fragmentul text găsit în componenta Memo. utilizând dialogul de înlocuire ReplaceDialog. Interfața acestui program va conține aceleași elemente ca și în exemplul 1. Codul de program al aplicației care rezolvă problema este prezentat în Figura 7.3.
// Codul programului al aplicației, care permite căutarea și înlocuirea fragmentului text găsit
#pragma resource "* .dfm"
void __fastcall TForm1 :: Button1Click (TObject * Expeditor)
Memo1-> SelStart = 0; // Mutați cursorul la începutul textului
// Setați textul de căutare inițială în Memo
ReplaceDialog1-> Execute (); / Apelați dialogul de înlocuire
void __fastcall TForm1 :: ReplaceDialog1Find (TObject * Expeditor)
E - numărul de caractere din prima poziție a căutării înainte de sfârșitul textului
F = S + "numărul simbolurilor fragmentului" + "al primului caracter al elementului selectat
fragment în următoarea căutare "* /
prin mărimea simbolurilor fragmentului text selectat * /
S + = Memo1-> SelLength; // Creșterea numărului S prin număr. caractere ale fragmentului selectat
/ * SubString (S + 1, E) - Funcția returnează o parte a textului începând cu S + 1
simbol și până la sfârșitul textului,
LowerCase () - Funcția returnează un șir în care sunt date toate caracterele
la literele mici,
Pos (FindDialog-> FindTextA.LowerCase ()) - O funcție care returnează un index
Dacă fragmentul nu este găsit, 0 * /
dacă (F! = S) // Dacă fragmentul este găsit
altceva ShowMessage ("text" "+ ReplaceDialog1-> FindTextA +" "nu mai este găsit");
void __fastcall TForm1 :: ReplaceDialog1Replace (TObject * Expeditor)
dacă (Memo1-> SelText! = "") // Dacă memo1 nu are un șir gol
// Substituirea fragmentului de text găsit
// Înlocuiți fragmente în întregul text
ShowMessage ("fragment" + ReplaceDialog1-> FindTextA + "arăta mai departe");
Fig. 7.3 Codul programului al aplicației, care permite căutarea și înlocuirea fragmentului de text găsit
8. Fișierele utilizate în proiectele C ++ Builder
Proiect (proiect) - un set de fișiere care sunt utilizate la crearea unui stand-alone executabil sau biblioteca de componente dinamic-nuemoy (DLL) .C ++ Builder gestionează proiecte cu ajutorul mai multor fișiere auxiliare-TION. Pentru un nou proiect, C ++ Builder creează următoarele fișiere principale:
1. Fișierul principal al proiectului.
2. Dosarul de informare al proiectului.
3. Fișierul de implementare a modulelor.
4. Fișierul antet al modulului.
6. Fișierul resurselor aplicației.
Fișierul principal de proiect conține funcția Win-Main (), care inițiază aplicația și o pornește pentru execuție. Are extensia (.cpp).
Proiect fișier de informații este un fișier text care conține un set de opțiuni de compilator, nume de fișiere sursă și în pro-EKT, precum și numele extensiei fișierului de bibliotecă necesare (.bpr).
Fișierul de implementare a modulului și fișierul Antet Module sunt fișiere text care conțin codul de implementare al modulului și un fișier antet care descrie clasa de formular. Acestea au extensii, respectiv (.cpp) și (.h). Mediul C ++ Builder creează fișiere de execuție suplimentare și fișiere antet pentru fiecare nouă formă a acestui proiect.
Fișierul formular conține informații despre formele aplicației. Are extensia (.dfm). Fiecare fișier de formular corespunde fișierului de implementare a modulului.
Fișierul resurse al aplicației este un fișier binar care conține resurse de proiect. Are extensia (.res).
Următorul grup de fișiere este creat de compilator:
Fișierul executabil este un fișier executabil autonom pentru aplicație. Are o extensie (.exe).
Fișierul obiect modul este un fișier modulul compilat care este legat de fișierul executabil. Are extensia (.obj).
Fișierul tabelului de simboluri este un fișier binar. folosit de depanator în timpul depanării aplicației. Are o extensie (.tds).
Întrucât în orice aplicație C ++ Builder include mai multe fișiere, atunci când se creează un nou proiect, se recomandă:
· Creați un nou catalog pentru fiecare proiect nou.
· Creați un nou proiect utilizând comanda File \ New Application.
· Salvați imediat proiectul și fișierul modulului cu comanda File \ Save All.