Работа с tcanvas в Делфи

Мнения: 4 Благодари 1 път в 1 мнение

Работа с TCanvas в Делфи

За да създадете обикновени 2D ефекти в Делфи обикновено използват TCanvas.
TCanvas - това е платното. За да се възползва от него. Възможно е да се покаже изображение, можете да програмно изготвят графични примитиви върху него, промяна на цвета на всеки пиксел на неговите координати. Ако не се научите да работите с примитивни графика, ще остане formoshlopami!
Пример за работа с TCanvas. Начертайте зелен кръг:
Предизвикателството: да донесе зеления кръг в прозореца на програмата. Open Delphi. Създаване на нов проект. Писане в onCreate форма:

де 20,20 - координатите на горния ляв ъгъл на невидим квадрат, кръг, вписани в Корор, 100 100 - координатите на долния десен ъгъл.
Стартирайте програмата. нищо не се случи. Защо? Защото onCreate се случва, преди да се покаже формата. Ние се движат по линията на код под формата на onShow. О! Нихром също не работи! Преместване на линията под формата OnClick. Стартирайте програмата и щракнете с мишката върху него. Имаше един черен кръг. и всичко изглежда наред. НО. Сега се опитайте да се движи под формата на разстояние екран изяви, или да прекарате друг прозорец на върха на гамата ни. Или просто се търкаля \ разполагане на програмата. кръг изтрити
И какво се случва? Просто програмата pererisovyvat фон. Това се случва, след получаване на WM_PAINT съобщение на операционната система. На следващо място, стартирайте манипулатор OnPaint. От гледна точка на опита си да се премести този код в OnPaint форма. WOW. Всички оре. Кръгът не е изтрита повече.
НО. Той безполезен няколко пъти в секунда. Един и същи. Тук започва оптимизацията.
Поставете под формата на компонент TImage, поставени в Align alClient. Този компонент ще се простират от другата страна на прозореца. Сега пиша в onCreate форма:

Ние добавихме в лявата Image1, защото сега ние ще работим с неговото платно. Run, всичко работи в onCreate. Той е работил, защото TImage разполага със собствен растерна графика и то винаги показва, а не да го почистите. Въпреки това, сега на бял фон. Между другото, ние не обикаля зелено. Писане в onCreate по този начин:

Четка - Тази четка. Питаме я зелен цвят. Пусни. Това остави черен контур, като Pen (писалка) - това е черна. Приписва се:

А. Всички ясен
Пример за работа с TCanvas. движение:
Цел: Да се ​​направи зелен кръг бавно отплава към страната. Създаване на глобална променлива видове X1 число = 0. вложка във форма TTimer на. Ние събрахме на интервала на 55. писане в onTimer

Пусни. Ох. Нашата кръг започва наденица С цел да не се харесва това, че е необходимо да почистите на заден план. това се прави по следния начин. OnTimer пишат по този начин:

Т.е. промените цвета на четката до бяло, обадете FillRect (ClientRect) - за попълване на правоъгълник. ClientRect - само кутия правоъгълник. Сега бялото платно. Промяна на цвета обратно в зелено и начертайте кръг. Всичко работи. Кръгът отива във формуляра.

Забележка:
Предистория форма все още преобразена, независимо от факта, че тя не се вижда. Понякога от тази цифра може да трепти. За да се избегне това, трябва да добавите следния формуляр за участие onCreate: