Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

TShape & TLabel   Найти похожие ветки 

 
Ukraine   (2002-10-22 16:38) [0]

Добрый день!

Помогите написать компонент, совмещающий сабж. Очень надо!
Заранее благодарен


 
Игорь Шевченко   (2002-10-22 16:46) [1]

"Помогите" предусматривает наличие уже какого-то написанного кода, в котором имеются затыки. Этот код есть ?


 
Ukraine   (2002-10-22 16:53) [2]

unit ShapeText;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;

type
TOnUserDraw = procedure(Sender:TObject) of object;
type
TShapeText = class(TShape)
private
{ Private declarations }
FOnUserDraw : TOnUserDraw;
FCaption : string;
procedure SetOnUserDraw(const Value:TOnUserDraw);
procedure DoUserDraw;
protected
{ Protected declarations }
procedure Paint; override;
public
{ Public declarations }
published
{ Published declarations }
//Текст, который нужно выводить вместе с Shape
property Caption : string read FCaption write FCaption;
//Придется самому потом рисовать :-(
property OnUserDraw : TOnUserDraw read FOnUserDraw write SetOnUserDraw;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Samples", [TShapeText]);
end;

{ TShapeText }

procedure TShapeText.DoUserDraw;
begin
if assigned(FOnUserDraw) then FOnUserDraw(Self);
end;

procedure TShapeText.Paint;
begin
inherited;
DoUserDraw;
end;

procedure TShapeText.SetOnUserDraw(const Value: TOnUserDraw);
begin
FOnUserDraw:=Value;
end;

end.

А потом в проге:

procedure TForm1.ShapeText1UserDraw(Sender: TObject);
begin
with (Sender as TShapeText) do
begin
Label1.Left:=Left+Width;
Label1.Top:=Top;
Label1.Caption:=Caption;
end;
end;

Но в этом случае нужно уже созланный Label. А как все совместить?


 
Skier   (2002-10-22 16:55) [3]

>Ukraine

//Текст, который нужно выводить вместе с Shape
property Caption : string read FCaption write FCaption;

Ну так и рисуй его на канве.
B методе TShapeText.Paint.


 
Игорь Шевченко   (2002-10-22 16:56) [4]

Не совсем понятно, что в итоге должно получиться. Точнее, совсем непонятно. Если событие ShapeText1UserDraw определяется, как метод формы, то кто мешает создать на этой же форме Label1 ?


 
Ukraine   (2002-10-22 17:09) [5]

> Игорь Шевченко © (22.10.02 16:56)

Да я и сам запутался :-(
В принципе использовать OnUserDraw то и не надо...
Я его использовал, т.к. не знаю как совместить сабж...

А как сделать чтобы по

var ShapeText1: TShapeText;
...
ShapeText1:=TShapeText.Create(Self);
ShapeText1.Parent:=Self;
ShapeText1.Caption:="Hello";
ShapeText1.Left:=100;
ShapeText1.Top:=100;

создавался этот Shape вместе с Label?
Как???


 
Демонов Е.В.   (2002-10-22 17:15) [6]

type
TShapeText = class(TShape)
private
FLabel:tLabel;

public
constructor create(Aowner:нипомнючто);override;
destuctor destroy;override;

publiched
property Label:tLabel read FLabel;
end;

constructor create(Aowner:нипомнючто);override;
begin
inherited;
FLabel:=TLabel.create(Self);

....чего то ещё делаем;
end;




destuctor destroy;override;
begin
FLabel.free;

inherited;
end;




 
Игорь Шевченко   (2002-10-22 17:19) [7]

Ukraine (22.10.02 17:09)

Глупый вопрос: А нужен ли Label вообще, если уже есть свойство Caption. Может, выводить этот Caption на канве самого Shape функцией DrawTextEx (Canvas.Handle, PChar(Caption), Length(Caption), ARect, ...) ?


 
Ukraine   (2002-10-22 17:24) [8]

>Игорь Шевченко © (22.10.02 17:19)

Ну хотелось бы Label... чтобы тебе и шрифт выбрать можно и.т.д.
Хотя сейчас попробуем и так.

>Демонов Е.В. © (22.10.02 17:15)

Щас попробуем...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-101483
Шишкин Илья
2002-10-11 17:39
2002.10.31
Глюк в Win98 при коннекте


6-101416
dr.karter
2002-08-30 14:16
2002.10.31
Server&ClientSocket


3-101092
Alex Chu
2002-10-09 09:32
2002.10.31
Как узнать имя компьютера на котором запускается приложение?


7-101533
Flying Bird
2002-08-26 00:40
2002.10.31
Как получить (изменить) атрибуты файла?


1-101243
Wolf226
2002-10-22 09:27
2002.10.31
Склонение падежей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский