Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизРисование на компонентах Найти похожие ветки
← →
apic © (2007-10-20 11:24) [0]Пытаюсь нарисовать линию на TBevel:
...
TheCanvas := TControlCanvas.Create;
TheCanvas.Control:=FormMain.Bevel2;
TheCanvas.FillRect(FormMain.Bevel2.ClientRect);
p.X:=0;
p.Y:=110;
TheCanvas.PenPos:=p;
TheCanvas.LineTo(10, 110);
...
но ничего не получается. Как правильно рисовать на других компонентах?
← →
DevilDevil (2007-10-20 11:42) [1]попробуй так...
function GetControlCanvas(Control : TControl) : TCanvas;
begin
Result := nil;
if (Control = nil) or not(Control is TWinControl) then exit;
Result := TPanel(Control).Canvas;
end;
← →
DevilDevil (2007-10-20 11:44) [2]кстати говоря, 10 пиксельную линию ты мог не увидеть.
Попробуй так...TheCanvas.Brush.Color := clRed;
TheCanvas.FillRect(TheCanvas.ClipRect);
← →
apic © (2007-10-20 12:11) [3]Спасибо DevilDevil Я писал на OnActive формы! Если бы не твой код
TheCanvas.Brush.Color := clRed;
TheCanvas.FillRect(TheCanvas.ClipRect);
я бы никогда не увидел, что после всего, что я нарисовал, весь внешний вид компонента сбрасывается опять!!! Только мерцание красного цвета заставило пошагово отладить и понять, что к чему. На OnClick все работает!
← →
DevilDevil (2007-10-20 13:19) [4]рад, что помог
← →
apic © (2007-10-23 11:29) [5]Еще вопросик: после вызова TheCanvas.Destroy (в данном случае TheCanvas.Control:=FormMain.Image1), все, что я рисовал на этом канвасе остается, а можно сделать, что бы при удалении этого канваза удалялось все, что я на нем рисовал? Хочу создать, что-то типа слоев над Image.
← →
DevilDevil © (2007-10-23 11:37) [6]> apic © (23.10.07 11:29) [5]
нет, нельзя.
перед вызовомDestroy
, нарисуй на канвасе то, что должно быть.
или...
перед/после вызоваDestroy
, попробуйFormMain.Image1.Repaint;
← →
ЮЮ © (2007-10-23 11:40) [7]>
>
> [5] apic © (23.10.07 11:29)
> Еще вопросик: после вызова TheCanvas.Destroy (в данном случае
> TheCanvas.Control:=FormMain.Image1), все, что я рисовал
> на этом канвасе остается, а можно сделать, что бы при удалении
> этого канваза удалялось все, что я на нем рисовал?
Насколько я помню, рисование на канвасе компонента TImage приводит к рисованию на битмаре его Picture.
Зачем было создавать канвас для компонента его и так имеющего?
> Хочу создать, что-то типа слоев над Image.
Могу порекомендлвать TImage32 из библиотеки Graphics32 с его Layers
← →
apic © (2007-10-23 11:49) [8]FormMain.Image1.Repaint ПАМАГЛО!!!!!!!!!!!!!!!!
← →
apic © (2007-10-23 11:52) [9]Правда все остальные "слои тоже" стерлись :(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c