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;  //а на выходе из процедуры исчезает   


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

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 

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