Форум: "Основная";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];
ВнизПомогите с отрисовкой текста на TImage Найти похожие ветки
← →
denkop (2011-09-23 14:53) [0]Нужен компонент, который будет рисовать произвольный текст на загруженную картинку в TImage. Набросал код, но работает он неправильно. Компонент уходит в бесконечное перерисовывание.. Подскажите пож, что не так делаю. Вот код:
unit uLabeledImage;
interface
uses ExtCtrls, Graphics, Classes;
type
TLabeledImage = class(TImage)
private
FLabelFont: TFont;
FLabelOffsetX, FLabelOffsetY: integer;
FLabelCaption: string;
protected
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property LabelFont: TFont read FLabelFont write FLabelFont;
property LabelCaption: string read FLabelCaption write FLabelCaption;
property LabelOffsetX: integer read FLabelOffsetX write FLabelOffsetX;
property LabelOffsetY: integer read FLabelOffsetY write FLabelOffsetY;
end;
procedure Register;
implementation
uses Windows, UxTheme;
procedure Register;
begin
RegisterComponents("test", [TLabeledImage]);
end;
constructor TLabeledImage.Create(AOwner: TComponent);
begin
inherited;
FLabelFont:=TFont.Create;
end;
destructor TLabeledImage.Destroy;
begin
FLabelFont.Free;
inherited;
end;
procedure TLabeledImage.Paint;
begin
Picture.Bitmap.Canvas.Font.Assign(FLabelFont);
Picture.Bitmap.Canvas.TextOut(FLabelOffsetX, LabelOffsetY, FLabelCaption);
inherited;
end;
end.
← →
Омлет © (2011-09-23 15:51) [1]При событии Picture.OnChange происходит перерисовка, в которой ты опять, рекурсивно вызываешь Picture.OnChange.
Использовать за основу TImage - плохая идея. Лучше взять TGraphicControl, к примеру, и вручную контролировать отрисовку компонента.
← →
Омлет © (2011-09-23 15:54) [2]К тому же, текст у тебя выводится на оригинальном изображении, т.е. изменить его уже нельзя будет.
← →
Dimka Maslov © (2011-09-23 22:14) [3]Поверх TImage кидается TLabel c прозрачным фоном.
← →
reonid © (2011-09-29 11:55) [4]Можно рисовать на унаследованном от TGraphicControl канвасе.
THackGraphicControl(Self).Canvas
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c