Iesire text pe panza din Delfi - overflow stivă în limba rusă

Trebuie să spun că nu e tot ce se poate face cu un script în modul grafic: undeva (nu poate aminti exact unde, probabil, într-o bază mare știu de Delphi) au văzut că este posibil să se schimbe grăsime, înălțimea, și altceva la fontul .

Și ceva de genul asta, cred că putem face acest lucru:

  1. Pe handler onmousemove pentru imagine pentru a contura o casetă de text (a crea unele de pavilion și îi atribuie adevărul);
  2. intrarile de la tastatura eveniment pentru a scrie în textul ei (dacă pavilion = true), în cazul în care tasta = Enter de intrare completă (atribuit de pavilion false și să schițeze cadru, dar că rama a fost șters necesară în mod corect 2 componentă de imagine: pe unul, toate desena și evidențiați (ar trebui să fie transparentă (transparent = Adevărat, transparența culorii - în mod implicit - primul cel mai mic component cu un punct de imagine))). Voi încerca să fac, dar nu a fost încă promit.

Se pare să aibă ceva de genul acesta (tip de câmp memo transparent (RichEdit du-te, de asemenea, în loc Memo)). Trebuie să spun că există un dezavantaj: este imposibil de a schimba dimensiunea mouse-ului (vă puteți gândi la cum se face, dar nu am timp).

  1. Crearea unui proiect de aruncare 2 Imaginea componentei (prima pe de altă parte), astfel încât acestea au aceeași dimensiune și o pune chiar sub bine, alt buton, SpeedButton (AllowAllUp = Adevărat, GroupIndex = (nu este zero)).
  2. Adăugat sub formă de proiecte pentru care și arunca Memo sau RichEdit.
  3. Întinde aceste componente pe întregul formular (Align = alClient).
  4. Am stabilit forma proprietatea Transparent = true și TransparentColor alege orice culoare (dar nu și cea care poate fi text, dar software-ul poate fi de asemenea modificat, desigur, dacă este necesar).
  5. La RichEdit componentă sau fundal memo set de culori, cum ar fi formă TransparentColor.

Odată cu dezvoltarea de forme se poate face imediat, - proceda la codificare (descrieți pe scurt):

  1. Selectați o zonă dreptunghiulară onmousemove componentă handler Image.
  2. Apoi, în handler onmouseup arată a doua forma noastră în ea.
  3. Scriem text, acoperire prin apăsarea tastei Enter.

Apoi, sperăm, totul va fi în codul este clar.

Formularul principal CODE (pe de altă parte, nu ar trebui să nu fie scrise, numai proprietățile de configurare!):

Puteți face acest lucru:

  1. După procesarea evenimentului în mouseclick Image, atunci când faceți clic să memoreze o poziție în care a făcut clic (X1, Y1)
  2. Mai mult proces eveniment MouseButtonDown (tip), trage o cutie de pe X1, Y1 la poziția curentă mouse-ul, și, desigur, amintiți-vă X2, Y2
  3. MouseButtonUp procesul de eveniment, și anume, atunci când butonul este eliberat, atunci vom crea RichEdit element de X1, Y1, dimensiunea este setată la X2, Y2, proprietăți de frontieră set - lipsă, și să se concentreze pe ea.
  4. Pentru a configura RichEdit, proces evenimentul de ieșire din ea, adică, atunci când comutatorul la panza, atunci valoarea variabilei de înregistrare RichEdit: șir, și apoi emite variabila funcția Canvas TextOut în X1, Y1, sau bine, în centrul dreptunghiului de X1, Y1 X2, Y2

Delphi nu este în valoare de ea, așa că nu pot da un exemplu), dar acest tip de logică) Fii creativ)

Răspuns 18 '11 septembrie la ora 07:56

Iesire text pe panza

Răspuns 18 '11 septembrie la ora 07:54

Aici, de exemplu, textul din imagine va Edit'a Image1 negru și transparent, care este, fundalul va fi.

Răspuns 18 '11 septembrie la ora 07:56

articole similare