Refolosirea forme în delphi
Sarcina reutilizării formelor în Delphi pot fi împărțite în două părți, și anume:
- Modalități de a crea forme vizuale pentru reutilizare, fără posibilitatea de a face rapid modificări ulterioare în ele.
- Modalități de a crea forme vizuale cu posibilitatea ulterioară de ajustare flexibilă.
Prima parte a problemei este relevantă atunci când se creează diverse dialoguri și forme de rezolvare a problemelor tipice (de exemplu, log on-dialog). Apariția acestor dialoguri aproape standardizate, dar din anumite motive, aceste dialoguri nu sunt puse în aplicare (sau nu puse în aplicare exact așa cum ne-ar dori), ca parte a bibliotecilor Delphi. La fel de important este această sub-sarcină atunci când creați formulare, sugerând posibilitatea unui apel ulterior din alte limbaje de programare și medii.
A doua parte a sarcinii este relevantă pentru proiectarea de forme, constând din mai multe „piese“, sau forme, unele elemente din care ar trebui să fie de la un proiect pentru a schimba atributele sale (de exemplu, Enabled sau a proprietății Vizibil), iar la începutul design-ul nu este întotdeauna posibil să se spună exact ceea ce controalelor vor schimba proprietățile lor.
De la o versiune la Delphi format de fișier poate schimba forma. Acest lucru conduce la necesitatea unor modificări de fișiere în timpul tranziției la noile versiuni de Delphi.
Cel mai adesea se creează un fel de un director partajat cu formularele utilizate în diverse proiecte. Cu toate acestea, în Delphi a inclus acționează ca un depozit instrument de formulare - obiecte de depozitare.
Folosind DLL ca formă de stocare
Dacă este necesar, utilizați formularele în alte medii de dezvoltare sau în diferite versiuni ale Delphi, în același timp, poate fi „ambalate“ sub formă de bibliotecă de legături dinamice (DLL). Această metodă vă permite să distribuiți forma fără a furniza codul sursă, care pot fi uneori utile în scopuri comerciale. Când se folosește această metodă în DLL este declarat de a exporta o serie de funcții. Minim stabilit - funcția afișa un formular modal.
Ca un exemplu, un simplu DLL pentru a crea un formular. Pentru a face acest lucru în IDE, selectați File / New / Altele, și în dialogul - meniul „DLL Wizard“. Salvați modulul sub numele FormDLL. Biblioteca va adăuga forma martor, care va fi apoi afișate într-o varietate de aplicații (File / New / Form). Pe formularul, aranja ListBox, umplându-l cu trei valori, și două butoane - „OK“ si „Cancel“. proprietatea BorderStyle a formei pentru a seta bsDialog și butoanele ModalResult dispun - în mrOk și mrCancel, respectiv. Aspect forma de mai jos.
Rămâne să scrie cod pentru a afișa funcția de forma și returnează alegerea utilizatorului. Mai jos este codul sursă complet pentru modulul FormDLL
Asta e tot. Utilizați acest DLL este foarte simplu - trebuie să-l pună în directorul în care are nevoie de aplicarea ei. Puteți organiza ca o încărcare statică a DLL (la pornire) și o dinamică (încărcarea și descărcarea-l după cum este necesar).
Pentru organizarea sarcinii statice trebuie să declare funcția de DLL, după cum urmează:
după care funcția poate fi utilizată în mod obișnuit pentru Delphi.
Organizarea de încărcare dinamică un pic cam dificil. În primul rând, trebuie să declare în mod corespunzător un tip de procedură:
Apoi, puteți încărca DLL și apela funcția:
Acest cod este extrem de simplificat, de exemplu, nu există erori de validare în timpul încărcării biblioteci.
Formulare ActiveX
În Windows utilizate în mod obișnuit ActiveX tehnologie de programare orientată pe componente. La rândul său, Delphi vă permite să profite de această tehnologie pentru componentele de proiectare ActiveX în sine, cât și pentru utilizarea lor în aplicații. Nu voi aici intra în labirintul de tehnologie ActiveX, pur și simplu oferi atenție un exemplu simplu de a crea forme ActiveX și utilizarea acestuia.
Ei bine, să începem - Fișier / Nou / Altele. În caseta de dialog pentru a muta fila ActiveX și selectați ActiveXForm. În caseta de dialog de configurare apare pe ecran
Parametru VCL Numele Clasa - clasa părinte pentru punerea în aplicare a unei ActiveX-forme în Delphi
Parametru nou ActiveX Nume - numele clasei formular.
Unitatea de Implementare - numele modulului care conține descrierea formei
Denumirea proiectului - Numele proiectului
Threading model - model de threading. Acesta descrie comportamentul atunci când se utilizează formează o multitudine de fluxuri.
Păstrați intacte toate opțiunile din caseta de dialog și faceți clic pe OK. În același timp, vom obține un proiect gol, cu o formă goală. loc ListBox pe formular și completați-l în același mod ca și atunci când se utilizează DLL. Apoi, trebuie să creați o metodă pentru a obține alegerea utilizatorului. Pentru a face acest lucru, selectați Meniu IDE View / Tip Library.
Res adaugă un parametru de ieșire de tip VARIANT *. Rezultatul este prezentat în Fig. Făcând clic pe butonul Refresh în același dialog, vom actualiza forma modulului de implementare a interfeței (ActiveFormImpl1 în proiectul nostru). Nu va fi necompletat pentru scrierea codului metodei. Codul metodă este foarte simplu:
Rămâne de a compila proiectul (Ctrl + F9) și înregistra ActiveX formă în sistem (Run / Register ActiveX Server). Poate fi utilizat.
Pentru a profita de prepararea componentelor din Delphi, a pus, trebuie să-l instalați în Component Palette. Pentru aceasta este elementul de meniu Componentă / Import ActiveX Control. În dialogul Import, selectați din lista ActiveFormProj1 Biblioteca noastră și setați-l pe butonul Install. În mod implicit, acesta este instalat pe fila ActiveX. Crearea unui nou proiect de aplicație Fișier / Nou | Application și forma principala sa pus componenta ActiveFormX. Pentru a obține datele introduse de utilizator, utilizați interfața creată de Get_Result ActiveX formă:
Cele doua metoda descrisă mai sus permite producerea de forme care pot fi refolosite. Cu toate acestea, utilizarea acestor metode pentru proiectarea formularelor cu opțiuni flexibile de configurare destul de laborioase. Începând cu a cincea versiune de Delphi, o oportunitate de a construi o formă de cadre prefabricatelor. Și, după ce a insera un cadru în formă este posibil să se scrie Stivuitoare eveniment sub formă de elemente de cadru. Într-o formă poate găzdui mai multe cadre și organizează interacțiunea lor unul cu celălalt.
Utilizați cadre este foarte simplu. Primul pas - crearea unui cadru (File / New / Frame). În acest caz, un nou cadru va fi adăugat la proiect. Pasul doi - precum și proiectarea de formulare, plasate la componentele vizuale și non-vizuale cadru. Pot scrie stivuitoare de evenimente pentru componente pentru a pune în aplicare comportamentul dorit al componentelor de cadru. A treia etapă - pentru a pune un cadru pe formular. Pentru a face acest lucru, Standart filă paletă componente, selectați pictograma Frames și faceți clic pe mouse-ul pe formular. O listă de cadre incluse în proiect. Selectați cadrul dorit. Toate. În combinație cu magazia obiecte de cadre minimiza necesitatea de a re-proiectarea elementelor de interfață cu utilizatorul.
Repository - obiecte de Repository
Ultimul mod de a reutiliza forma (precum și cadrele) - Utilizarea Delphi obiecte de Repository. Object Repository - un depozit centralizat de formulare, rame și proiecte blank-uri destinate reutilizat în Delphi. Forma pe care o putem vedea când selectați elementul de meniu File / New / Altele, afișează conținutul magaziei. Adăugați o formă sau cadru în magazia nu există nici o dificultate. Doar faceți clic pe butonul din dreapta al mouse-ului și selectați „Adăugați la repository“. Sistemul afișează dialogul de adăugare.
Elementele acestui dialog sunt suficient de clare:
Formulare Lista - o listă de formulare și cadre sunt disponibile pentru adăugare.
Titlu - numele sub care elementul va fi vizibil în magazia
Descriere - descrierea elementului
Pagina - pagina în care va fi afișat elementul.
Pagina depozit de dialog Configurare și obiecte adăugate este invocată prin intermediul instrumentelor IDE / meniul Repository. Daca sunteti fan pentru a săpa în intestine de Delphi, vă spun că descrierea depozitului este stocată într-un fișier delphi32.dro. Descriere Fișierul are formatul de fișier pentru Windows .ini.