Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.07.2011, 19:42
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию Отрисовка на Canvas

Код:
unit GraphicControl1;
interface
uses
  Windows, Messages, SysUtils, Classes, Controls,Graphics;
type
  TGraphicControl1 = class(TGraphicControl)
  private
    FNum: integer;
    procedure SetNum(Value: integer);
  protected
  public
    procedure Paint;override;
    property Num: integer read FNum write SetNum;
  published
  end;
...

procedure TNode.SetNum(Value: integer);
begin
  if FNum<>Value then begin
    FNum:=Value;
    Canvas.Pen.Color:=clRed;
    Canvas.Font.Size:=14;
    Canvas.TextOut(10,10,IntToStr(FNum));
  end;
end;
Код:
n:=TGraphicControl1.Create(Form1);
n.Parent:=Form1;
n.Left:=x;
n.Top:=y;
n.Num:=1;
вот так вот не хочет работать. число не отрисовается
Ответить с цитированием
  #2  
Старый 16.07.2011, 19:53
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

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

type
  TGraphicControl1 = class(TGraphicControl)
  private
    FNum: Integer;
    procedure SetNum(const Value: Integer);
  protected
    procedure Paint; override;
  public
    property Num: Integer read FNum write SetNum;
  end;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TGraphicControl1 }

procedure TGraphicControl1.Paint;
begin
  Canvas.Brush.Color:=clWhite;
  Canvas.FillRect(ClientRect);
  Canvas.Font.Size:=14;
  Canvas.Font.Color:=clBlack;
  Canvas.TextOut(10, 10, IntToStr(FNum));
end;

procedure TGraphicControl1.SetNum(const Value: Integer);
begin
  if Value<>FNum then
  begin
    FNum:=Value;
    Invalidate;
  end;
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TGraphicControl1.Create(Self) do
  begin
    Parent:=Self;
    Left:=100;
    Top:=100;
    Width:=100;
    Height:=100;
    Num:=$10000;
  end;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 16.07.2011, 20:05
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию

спасибо работает
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025