Aici astăzi, mi-am amintit cu WPF și FireMonkey c. Și să mă ierți susținători WPF, dar FireMonkey pentru mine părea că utilizarea mai simplă și mai convenabilă. Există, desigur, și probleme, dar problemele încă mai avem timp să vorbim, dar acum doar uita-te la faptul, ce oportunități sunt deschise pentru noi atunci când se utilizează FireMonkey.
În principiu, că FireMonkey - un descendent al bibliotecii VGScene KSDev, cred că mulți deja știu. Dacă nu, puteți citi un mesaj pe site-ul în cazul în care KSDev a raportat că proprietatea intelectuală KSDev dobândite de Embarcadero. Ce pot să spun? Cred că ceea ce mă bucur că dezvoltarea compatriotului nostru a găsit o astfel de aplicație puternic pentru Embarcadero și au fost puse în aplicare într-un FireMonkey.
În ceea ce privește Delphi XE2. dar acum, în plus față de aplicații simple VCL aplicații au devenit disponibile pentru noi următoarele tipuri de aplicații:
- Aplicație HD FireMonkey - 2D-aplicație
- FireMonkey Aplicație 3D - o aplicație cu 3D-graphics
- FireMonkey aplicații iOS HD - 2D-App pentru iOS
- FireMonkey aplicații iOS 3D - 3D-app pentru iOS
Urmând regula simpla „Tu nu știi cum să lucreze cu 2D grafica - nu scormoni nasul în 3D“, am decis să văd mai întâi ce este aplicația HD. Și dacă nu am iPad (eu îl salvează doar =)), aplicația va crea pentru Windows.
Deci, începe Delphi XE2. a crea un nou proiect: "File -> New -> FireMonkey HD Application". Tot ceea ce poate fi văzut imediat după crearea unui nou proiect - este o mică schimbare aspectul ferestrei principale din proiectant și, la prima vedere, o compoziție puțin diferită a componentei paletă. Asta este, atunci când creați un VCL Application IDE arata ca acest lucru:
Iar atunci când creați o aplicație FireMonkey HD - ca aceasta:
Dar numai la prima vedere. În realitate, cu toate acestea, este mult mai complicată dacă să sape mai adânc. De exemplu, dacă vedeți modulul care conține clasa TButton pentru VCL-aplicații, vom vedea Vcl.StdCtrls (sau doar StdCtrls pentru Delphi XE de mai jos), iar descrierea este aceeași pentru FireMonkey TButton este deja conținută în FMX.Controls. Și tot ceea ce unește două buton aparent identice - este doar TComponent clasa părinte - apoi totul altceva. Și aceste diferențe vă veți simți imediat cât mai curând arunca un buton de pe forma si uita-te la Object Inspector.
FireMonkey comparativ cu bun vechi VCL ne dă un ordin de mărime mai multe oportunități de a dezvolta o interfață de frumos, de a crea animații, etc.
Aici, de exemplu, să ia strâns TButton butonul și conta în sus cât de mult avem nevoie pentru a scrie cod pentru a atunci când treceți cursorul mouse-ului deasupra butonului se schimbă înălțimea, iar după ce cursorul va fi îndepărtată înălțime ar fi revenit la valoarea sa inițială, și, astfel, animația ar fi mai lin , cu o mică întârziere? Problema este foarte simplu, dar cum se spune, „timpul înseamnă bani -“ și aș dori să fac astfel de animații cât mai repede posibil. Cu FireMonkey pentru a rezolva această problemă, nu trebuie nici să scrie acest lucru pentru orice cod - totul se poate face cu ajutorul Object Inspector. A se vedea.
1. Părăsiți buton de pe formularul TButton.
2. Du-te la Object Inspector și pentru a găsi proprietatea înălțime. Este posibil să observați că în treacăt faptul că lângă proprietate există o pictogramă nouă, indicând faptul că proprietatea este posibil să se determine orice efect, la fel ca în Object Inspector'e a apărut lista de selecție din care puteți alege tipul de animație:
3. Selectați lista de primul tip de animație - „Create New TFloatAnimation“ și setați următoarele proprietăți de animație în Object Inspector:
Durata = 0,5
Activat = Adevărat
Inverse = Adevărat
StartValue = 22
StopValue = 50
Trigger = IsMouseOver = true
TriggerInverse = IsMouseOver = false
4. Hit F9 și admira animația nou creată. Atunci când butonul mouse-ului la înălțimea butonului se va schimba lin până când se ajunge la o valoare de 50 de pixeli, iar după înălțimea butoanelor cursor curățate cu aceeași întârziere revine la valoarea inițială. Și orice cod. Butonul rulează aplicația se va comporta astfel:
În primul rând, este de remarcat faptul că toate controalele în FireMonkey (FMX) - sunt containere, adică FMX orice altă componentă poate fi integrată. Și această caracteristică FireMonkey puteți vedea cu ușurință atunci când se creează un buton „viu“:
Aici am creat un nou copil pentru componenta TButton - animație. Nimeni nu va interzice, dacă doriți să luați și să se integreze în TButton butonul a doua inscripție în formă de TLabel sau chiar TPaenel. Aceasta este o caracteristică de mare.
În al doilea rând, în ceea ce privește proprietățile animației. Animație TFloatAnimation pot folosi următoarele proprietăți:
- AnimationType - determină tipul de animație de redare.
- Autorewers - determină dacă animația este redat automat în direcția opusă atunci când valoarea proprietății a atins valoarea finală (StopValue)
- Întârziere - Întârziere în secunde, după care animația va juca
- Durata - lungimea animației în secunde.
- Interpolarea - tipul de interpolare utilizat pentru calcularea valorilor intermediare ale proprietăților. Pentru simplu interpolare liniară este suficient animații (itLinear)
- Inverse - determină dacă animația este redat în sens invers
- Buclă - determină dacă animația este buclate.
- PropertyName - numele proprietății pentru care animația aplicată
StartFromCurrent - specifică dacă animația este redat din valoarea curentă a proprietății sau a unui StartValue - StartValue și StopValue - valoarea inițială și finală a unei proprietăți.
- Trigger - eveniment după care începe procesul de animație
- TriggerInverse - un eveniment după care animația va avea loc în direcția opusă.
- TFloatAnimation - acesta este cel mai utilizat pe scară largă în tip FireMonkey de animație.
Animație pentru culoarea am întrebat buclate, adică proprietate Buclă expuse la True, iar proprietățile trăgaciului și TriggerInverse lăsat gol.
În afară de animație, puteți utiliza, de asemenea și la elementele sale sub forma unor diverse efecte, cum ar fi încețoșat, umbre, etc. De exemplu, figura de mai jos arată elementul TCalloutRectangle acoperit cu efectul de umbră:
Și chiar mai mult - pentru efecte puteți crea o varietate de informații, =) În general, oportunități de a crea o interfață frumoasă și aplicații - greutate.
Deci, în concluzie, câteva cuvinte despre stiluri. După cum puteți vedea în aplicația role de mai sus forma arata exact asa ca ceea ce am văzut-o în VCL. În Delphi XE2 VCL Cererile de aplicații devin stiluri disponibile care pot fi personalizate, de exemplu, prin selectarea meniului Project - Options - Application - Aspect. Alegerea stilului este după cum urmează:
Pentru a încărca stilul implicit pentru a apăsa butonul Load Default. Acum, partea distractivă. Fiecare element în stilul de copac va determina stilul de la orice parte a componentei. De exemplu, pentru un buton de stil se întâlnește elementul buttonstyle al elementului de fond - backgroundstyle etc.
4. Pentru a alege forma de culoare în copac backgroundstyle și în Object Inspector schimba culoarea, cum ar fi rosu.
5. Apăsați butonul Apply și uita-te la forma în proiectant:
Pentru a specifica orice element al stilului său unic, acesta trebuie să precizeze valoarea proprietăților StyleLookup. De exemplu, puteți aplica același stil la backgroundstyle butoane sau chiar crea propria cheie unică folosind elemente Contureaza fila, Layouts, animații și efecte ale componentei paletă.
Pentru a rezuma, putem spune că FireMonkey - un freymork destul de confortabil pentru a crea aplicații frumoase, informative și ușor de utilizat - doriți să creați controale cu animație, pe care doriți - cu effet, declanșată de un eveniment, redesena complet stilul componentelor, și așa mai departe. d. Odata cu acest FireMonkey este ușor de utilizat - puteți construi o interfață frumoasă a aplicației fără a scrie o singură linie de cod (cu toate că nimeni nu vă interzice, dacă doriți să - să facă același lucru în codul de aplicare).
Nu voi disimula și spune că, în cursul scrierii acestui articol, am, de asemenea, se confruntă cu unele probleme la locul de muncă. De exemplu, ar putea să nu întotdeauna prima dată pentru a deschide un stil de designer de la TStyleBook. Un fleac, dar totuși prezent. Sau, în cazul animației nu am reușit să stea în mod corespunzător cu privire la efectul de animație TShadow TFloatAnimation - funcționează ca și animație, dar nu evenimentul, dar numai într-un mod în formă de buclă. și alte probleme care au fost dezvoltatorii găsit scris în bloguri și forumuri lor. Dar nu uitați că FireMonkey nu este îndeplinită și 1 lună și, dacă platforma este obișnuit (și eu sper), apoi, în viitorul apropiat vom vedea actualizările și platforma va deveni chiar mai puternic și mai ușor de utilizat.