Поиск сообщества
Показаны результаты для тегов 'Canvas.DrawLine'.
Найдено: 1 результат
-
Приветствую. Речь пойдет о создании графики в коде. Когда интересно вывести в TPanel "полноценный" управляемый графический объект, скажем, линию, то мы должны поступать так: line:= TLine.Create(pnlDrawing); line.StrokeThickness:= 10; line.LineType:= TLineType.Top; line.Position:= TPosition.Create(TPointF.Create(130, 130)); line.RotationAngle:= 90; line.HitTest:= True; line.StrokeCap:= TStrokeCap.Round; line.Width:= 100; // line.Stroke:= не могу найти в доке правил описания кистей! line.Parent:= pnlDrawing; где pnlDrawing - TPanel контейнер. Однако же, если необходимо получить лишь визуальную - неуправляемую линию, на помощь приходит TCanvas (FM edition ) как аналог графического контекста в других языках. И по установленным правилам мы помещаем вот такую часть в OnPaint обработчик контейнера рисования. begin with Canvas do if BeginScene then begin try Canvas.DrawLine(TPointF.Create(100, 100), TPointF.Create(100, 100), 0.5); finally Canvas.EndScene; end; end; end; Эксперименты показывают, что Canvas "помнит" размер пена (ручки), установленный как line.StrokeThickness:= 10;, например, в обработчике OnCreate панели или формы. Опыт показал также, что вызов OnPaint работает в стиле SMART - только при необходимости перерисовать панель. Скажеи, при изменении размеров формы. Вопрос: Линия, которая создается в Canvas.DrawLine(...) - это ведь всего лишь примитив в терминах DirectX, если мы говорим о Windows исполнении? А вовсе не полноценный UI компонент TLine. Так?