Dorința de a face ceva cu propriile lor mâini - acest lucru este, în opinia mea, una dintre cele mai semnificative nu este pe scară largă, dar foarte gravă pe scara unei anumite motoare individuale ale progresului, care se află în stare latentă în cadrul fiecărei persoane. Aceasta este, desigur, el nu dormeai deloc - foarte mulți, el lucrează în mod activ.
Desigur, să fie dispuși să facă este o varietate de moduri, și, în opinia mea, programare - un mod bun de exprimare. Deci, acum vreau să le spun celor ale cititorilor noștri care au un programator dungă creativ cu privire la modul de a crea propriul economizor de ecran, de asemenea, cunoscut sub numele de protectorul de ecran și protectorul de ecran.
Deci, mai întâi un pic despre ce screensaver-ul este. Pentru utilizator acest economizor de ecran care apare pe ecran atunci când computerul este ceva timp inactiv. Din perspectiva unui programator, acesta este cel mai frecvent program în formă de EXE-fișier. cu toate acestea, având o multitudine de extensie non-standard - .SCR. Prin ea însăși, de a crea un screensaver, puteți utiliza orice mediu de programare pentru Windows; suntem cu voi va folosi Delphi.
Prin urmare, este logic să se facă un desen într-o procedură separată. Ei vă puteți schimba folosind instrumentele de desen ca un API standard de Windows și Delphi, precum și bibliotecile specializate OpenGL și DirectX. Am același screensaver pur și simplu afișează fotografia sau desenul dat. Aici este codul procedură pe care îl pune în aplicare:
În timp ce eu nu voi insista asupra ei în detaliu, deoarece sensul lor ar fi clar din codul de procedură, de afișare „miniaturi“. În plus față de variabilele de mai sus, avem nevoie de o procedură de fereastră.
Este doar un sistem de tratare a evenimentului: în cazul în care sistemul spune ca pentru a distruge fereastra, acesta va fi distrus, dacă el spune redesenarea - bine, pererisuem. Acum puteți scrie și, de fapt, procedura de miniaturi desen:
Ei bine, acum să se ocupe. În primul rând, variabilele necesare sunt declarate - mâner la (principal) fereastra părinte, fereastra copil al clasei noastre, iar variabila pentru a procesa mesaje. În primul rând, ne-am trage din parametrul de linie de comandă mâner la fereastra părinte, și apoi inițializa clasa sa. După cum puteți vedea, aproape toți parametrii sunt setate la zero - astfel încât fereastra noastră nu va avea nici o pictogramă sau meniu, doar numele ScreenSaverClass01 clasa. se termină cu zero, de asemenea.
În continuare, înregistrați clasa ferestrei folosind procedura RegisterClass. și apoi - a obține mărimea regiunii, trebuie să completați fereastra. Prin aceasta, vom crea fereastra copil, și apoi să creați o pânză pe care noi vopsea (e doar un înveliș pe VCL-context fereastra „miniaturi“), iar apoi există un standard pentru toate aplicațiile bazate pe Windows bucla de mesaje. După cum puteți vedea, acesta poate fi oprit numai dacă sistemul în sine vrea - si va face ei doresc să utilizator. După pseudo infinit întreruperea ciclului, noi „ridica gunoi“ - fereastra de context și pânză.
Acum va veni procedura reacției a ferestrei principale diferitelor mesaje de sistem. Acesta este responsabil pentru închiderea screensaver cu diferite acțiuni ale utilizatorului. Este mai convenabil să-l pună în aplicare decât în acest fel să stea o procedură pentru toate de manipulare eveniment formularul nostru. Pune pe fila componente formular ApplicationEvents suplimentare. Dublu click pe evenimentul onMessage în Object Inspector și completați următoarea procedură pentru a citi:
Acum trebuie să adăugați un alt eveniment de tratare a onIdle aceeași componentă. Acesta va conține numai două linii:
După cum puteți vedea, aici am trage pur și simplu - doar în acele momente când sistemul nu este angajat în alt mod. Ei bine, acum aproape totul este gata. Putem schimba doar unele proprietăți ale formei principale și a scrie un pic mai mult cod. Proprietăți o astfel de modificare: culoarea (Color) până la negru (clBlack), BorderStyle setat la bsNone. și WindowState la wsMaximized.
S-a făcut totul cu ajutorul Object Inspector. Apoi, din meniul Project, selectați View Source. c declara o variabilă char, adăugând modulul secțiune utilizează Dialoguri. șterge totul între începutul și sfârșitul, și scrie următoarele linii:
Acum screensaver este gata.
cititorii Atent poate fi observat că în locul casetei de dialog setări normale va fi afișat un mesaj care spune „Acesta este un screensaver foarte cool!“. Acest lucru, după cum vă puteți imagina, puteți fi modificat. Totuși, este posibil să se modifice mișcarea imaginii pe ecran în timp, adăugați un control care nu a screensaver rulează deja (deși, în principiu, pentru economizoare de ecran astfel de verificare nu este critică, deoarece situația este simultan rula mai multe cazuri de improbabil și nu are nici o distructive pentru efectele sistemului) .