IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Динамическое создание Paintbox
Atos
сообщение 4.05.2005 5:52
Сообщение #1


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Ну вот и меня проблемы с динамическим созданием. sad.gif Сразу твёрдо скажу, чтобы не было лишних споров - в данном случае это оправдано, т.к. в программе, которую хочу насписать, их будет переменное количество. Приведенный код - пока пробный пример.

Тут происходят странные вещи. С PaintBox1 всё нормально. А P при первом нажатии на SpeedButton не выводит графическую информацию. Вернее, выводит и тут же стирает. blink.gif Даже можно заметить промелькивание. При последующих нажатиях выводит нормально :o
В чём тут может быть дело??


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, TreeWork;

type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
PaintBox1: TPaintBox;
procedure SpeedButton1Click(Sender: TObject);
procedure Create(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
P:TPaintBox;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
PaintBox1.Canvas.TextOut(10,10,'1000');
PaintBox1.Canvas.Ellipse(10,10,20,20);


With P do
begin

Height:=100;
Width:=100;
Left:=20;
Top:=20;

Cursor:=crHandPoint;
Color:=clYellow;

ParentColor:=false;
ParentFont:=false;

Font.Color:=clBlack;
Font.Size:=8;

Canvas.Pen.Color:=clRed;
Canvas.Pen.Style:=psSolid;

Canvas.Brush.Style:=bsSolid;
Canvas.Brush.Color:=clYellow;

Canvas.Rectangle(0,0,Height,Width);
Canvas.TextOut(10,10,'1000');
Canvas.Ellipse(10,10,20,20); {здесь при отлаживании текст в прямоугольнике виден на экране}
end;

end; //а на выходе из процедуры исчезает sad.gif

procedure TForm1.Create(Sender: TObject);
begin
P:=TPaintBox.Create(Form1);
P.Parent:=Form1;
end;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Digitalator
сообщение 5.05.2005 23:11
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Скорее всего в MSG Paint, т.е. скорее всего TPaintBox рисует один раз, и чтобы изображение сохранилось необходимо его перерисовывать (в событии onPaint например). Хотя может быть и не так.... надо проверить smile.gif


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.07.2025 6:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"