Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Проблемы с сохранением рисунков   Найти похожие ветки 

 
Magic ©   (2003-01-20 14:13) [0]

Вот это сообщение появляется при прохождении отмеченной строки:

EInvalidOperation: "Canvas does not allow drawing"

constructor TBall.Create(Canv: TCanvas; cX, cY, Rad: integer);
begin
inherited Create(Canv);
Radius:=Rad;
X:=cX-Rad;
Y:=cY-Rad;
Width:=cX+Rad-X;
Height:=cY+Rad-Y;
Under:=TCanvas.Create;
Visible:=TRUE
end;

procedure TBall.Draw;
begin
case Visible of
TRUE: begin
Under.CopyRect(Rect(X,Y,X+Width,Y+Height),Canvas,Rect(0,0,Width,Height));
Canvas.Ellipse(X,Y,X+Width,Y+Width);
end;
FALSE:begin
Canvas.CopyRect(Rect(0,0,Width,Height),Under,Rect(X,Y,X+Width,Y+Height))
end
end
end;



Почему? Догадка такая, что это абстрактный тип...

Тогда каким лучше пользоваться?


 
alxx ©   (2003-01-20 14:18) [1]

Похоже канвас ни к чему не прикреплен. Можно попробовать TBitmap или TMetaFile.


 
Magic ©   (2003-01-20 15:25) [2]

Пробовал - тоже самое:(((


 
Skier ©   (2003-01-20 15:36) [3]

>Magic
От какого класса наследуется TBall ?


 
Magic ©   (2003-01-20 15:44) [4]

TBall - TVisualObject - TObject
В общем, мой собственный клас.


 
Skier ©   (2003-01-20 15:52) [5]

>Magic
Дело в том что канве нужно задать контекст устройства для
того чтобы можно было рисовать
Set Handle to the HDC for the device context the canvas must draw into. (from Help),
А т.к. у тебя TBall не оконный компонент, то этот контекст
тебе взять нельзя (имею в виду от TBall-а). (см. API ф-ию GetDC(...)) И ввообще не понятно, как ты собираешься использовать
отрисовку , если компонент невизуальный. Поясни, зачем ты рисуешь, т.е. как планируешь это дальше использовать и для чего ?


 
Magic ©   (2003-01-22 10:44) [6]

Он сам себя рисует: Canvas.Ellipse(...);
Но перед тем как мне нарисовать его, мне нужно сохранить под ним рисунок, чтобы потом восстановить. Я пытаюсь это сделать CopyRect"ом, но.... Все плохо:((


 
Magic ©   (2003-01-22 11:22) [7]

см



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-96643
CPPBuilderDev
2003-01-20 13:04
2003.01.30
TTreeView -> как узнать какой node выделил user?


3-96532
qwerty2
2003-01-14 23:46
2003.01.30
Изменить текст в DBLookupComboBox


3-96544
Andrey V.
2003-01-15 08:03
2003.01.30
ВОпрос по ЗАпросу


14-96955
Johnny Smith
2003-01-10 08:59
2003.01.30
Тут как-то обсуждали творчество


7-97052
Alex_Fecit
2002-11-19 10:18
2003.01.30
Данные на харде