Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Тупость в Delphi с PaintBox

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Тупость в Delphi с PaintBox
Имя
Сообщение << Старые топики   Новые топики >>
Тупость в Delphi с PaintBox - 2010-02-02 17:54:22.753333   
RedWhiteHate

Сообщений: 5
Оценки: 0
Присоединился: 2010-02-02 17:05:52.353333
ну например так:
procedure Tpoint.DRAWS(drw: TCanvas); begin &nbsp;&nbsp; drw.Brush.Color:=clBlack; &nbsp;&nbsp; drw.Pen.Color:=clBlack; &nbsp;&nbsp; drw.Ellipse(100+x1, 300+y1, 110+x1, 310+y1); end; так на Form1 виводит
procedure TForm1.Button5Click(Sender: TObject); begin P.DRAWS(Form1.Canvas); end;
а на PaintBox1 не хочет, нужно на PaintBox, а не хочет, что за тупость??

procedure TForm1.Button5Click(Sender: TObject); begin P.DRAWS(PaintBox1.Canvas); end;  

Помогите…
Post #: 1
RE: Тупость в Delphi с PaintBox - 2010-02-02 19:06:09.283333   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
P.DRAWS(PaintBox1.Canvas);
Ты передаешь в процедуру класс, а не указатель на класс.
Таким оробразом, вызов
P.DRAWS(PaintBox1.Canvas);
можно понять так:
1. получить класс PaintBox1.Canvas
2. сделать копию этого класса
3. передать копию класса в процедуру P.DRAWS

Поэтому нереходи к указателям, ведь копия класса не обязательно будет иметь тот же самый HWND и так далее, все зависит от того как реализовано копирование в конкретном случае.
Post #: 2
RE: Тупость в Delphi с PaintBox - 2010-02-07 15:16:53.936666   
ZnakVoprosa

Сообщений: 37
Оценки: 0
Присоединился: 2010-01-31 19:36:50.236666
procedure Tpoint.DRAWS;
var
drw:tcanvas;
begin
drw.handle:=paintbox1.canvas.handle;
   drw.Brush.Color:=clBlack;
   drw.Pen.Color:=clBlack;
   drw.Ellipse(100+x1, 300+y1, 110+x1, 310+y1);
end;

или
procedure Tpoint.DRAWS(dc:hdc);
var
drw:tcanvas;
begin
drw.canvas.handle:=dc;
   drw.Brush.Color:=clBlack;
   drw.Pen.Color:=clBlack;
   drw.Ellipse(100+x1, 300+y1, 110+x1, 310+y1);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin

P.DRAWS(PaintBox1.Canvas.handle);

end;

или чтобы нарисовать на desktop-е :)

procedure TForm1.Button5Click(Sender: TObject);
var
dc:hdc;
begin

dc:=getdc(0);
P.DRAWS(dc);

end;




Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Тупость в Delphi с PaintBox







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.