![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с графикой [D7]
Expl © (2004-11-03 20:06:00)Объясните пжлста ламеру в чем причина: суть в том, что при нажатии на кнопку на PaintBox'e выводится таблица 5*5 с числами в клетках. Когда прорисовываю просто таблицу, то она сразу отображается, а когда после ее прорисовки ставлю прорисовку чисел, то при нажатии таблица появляется и мгновенно исчезает. В чем тут сёка?
Mihey_temporary (2004-11-03 21:04:00) [1]Ну вот и слава богу.
Expl (2004-11-03 20:31:00) [2]Я понял! Надо было писать не
p.Font.Name:='Arial';
p.Font.Size:=20;
а
p.Canvas.Font.Name:='Arial';
p.Canvas.Font.Size:=20;
Expl (2004-11-03 20:29:00) [3]Причем, я тут посмотрел, глючить начинает если в процедуре есть вот эти 2 строчки:
p.Font.Name:='Arial';
p.Font.Size:=20;
А без них и с выводом текста работает, правда, шрифт не тот.
Expl (2004-11-03 20:13:00) [4]procedure Show_Shulte(P: TPaintBox);
var x,y:integer;
k,i,j:integer;
begin
x:=((p.Width div 2)-155);
y:=((p.Height div 2)-155);
P.Canvas.FillRect(P.Canvas.ClipRect);
P.Canvas.Brush.Color := ClBtnFace;
p.Canvas.Pen.Color:=clBlack;
p.Canvas.Pen.Style:=psSolid;
P.Canvas.Brush.Style:=bsSolid;
For i:=0 to 4 do
For j:=0 to 4 do
P.Canvas.Rectangle(x+i*64,y+j*64,x+(i+1)*65,y+(j+1)*65);
p.Canvas.Pen.Color:=clGreen;
P.Canvas.Brush.Color := clGreen;
P.Canvas.Brush.Style:=bsSolid;
P.Canvas.Ellipse(x+128+(32-8),y+128+(32-8),x+128+(32+8),y+128+(32+8));
//вывод текста
P.Canvas.Brush.Color := ClBtnFace;
p.Font.Name:='Arial';
p.Font.Size:=20;
for i:=0 to 4 do
for j:=0 to 4 do
if (i<>2) or (j<>2) then
begin
k:=random(24)+1;
if k<10 then
p.Canvas.TextOut(x+23+i*64,y+18+j*64,IntToStr(k))
else p.Canvas.TextOut(x+16+i*64,y+18+j*64,IntToStr(k));
end;
end;
Mihey_temporary (2004-11-03 20:09:00) [5]Покажи код.