Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как клонировать экземпляр компонента [D7, XP]


Terasbetoni ©   (2008-09-17 17:45:00) 

Здравствуйте. Подскажите, как сделать так, чтобы какой-нибудь компонент прорисовывался в нескольких местах (в нескольких местах формы, или на нескольких формах). И чтобы обе (или больше) копии реагировали, допустим, на события мыши на них.


Юрий Зотов   (2008-09-20 20:46:00) [1]

Почему телепатор? Никаких телепаций. Надо клонировать компонент, все четко и ясно.

Ответ: WriteComponent + ReadComponent.

Примечание: все способы, связанные с вызовом конструктора, задачу создания клона, по сути, не решают, так как не копируют текущие значения свойств компонента.


KSergey   (2008-09-20 14:46:00) [2]

> Германн ©   (20.09.08 01:12) [16]

Какой-то это телепатор, если надо все четко объяснить?! Хреновый какой-то


Германн   (2008-09-20 01:12:00) [3]


> Terasbetoni   (19.09.08 19:06) [11]
>
> >>чтобы какой-нибудь компонент прорисовывался в нескольких
> местах
>
> а не
>
> чтобы несколько компонентов прорисовывались каждый в своём
> (одном) месте
>


Теперь объясни свою задачу четко и ясно без экивоков. С учетом:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1220280502&n=18

Иначе ничего кроме флуда не получишь.


{RASkov}   (2008-09-19 22:56:00) [4]

> а почему не работает нифика ничего :)

да еще и стирается это все, как тряпкой со школьной доски)


{RASkov}   (2008-09-19 22:53:00) [5]

> [13] KilkennyCat ©   (19.09.08 22:42)
> зря улыбаешся

Дык счас вопросы посыпятся, а почему не работает нифика ничего :) ... а может это и нужно было?(я же не зря комментарий именно про это в начало вставил) тогда, да - зря.
Ну ничего лишняя улыбка хуже не сделает)


KilkennyCat   (2008-09-19 22:42:00) [6]


> {RASkov} ©   (19.09.08 19:21) [12]


зря улыбаешся. учитывая [11] это единственное решение.


{RASkov}   (2008-09-19 19:21:00) [7]

> [11] Terasbetoni   (19.09.08 19:06)
> чтобы какой-нибудь компонент прорисовывался в нескольких местах

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

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

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Height:=220; Width:=350;
 Button1.Left:=132; Button1.Top:=76;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 with Button1 do begin
  PaintTo(Canvas, Left+Width+10, Top);
  PaintTo(Canvas, Left+Width+10, Top+Height+10);
  PaintTo(Canvas, Left, Top+Height+10);
  PaintTo(Canvas, Left-Width-10, Top+Height+10);
  PaintTo(Canvas, Left-Width-10, Top);
  PaintTo(Canvas, Left-Width-10, Top-Height-10);
  PaintTo(Canvas, Left, Top-Height-10);
  PaintTo(Canvas, Left+Width+10, Top-Height-10);
 end;
end;

end.

:)


Terasbetoni   (2008-09-19 19:06:00) [8]

>>чтобы какой-нибудь компонент прорисовывался в нескольких местах

а не

чтобы несколько компонентов прорисовывались каждый в своём (одном) месте


Dennis I. Komarov   (2008-09-19 18:18:00) [9]

if
> Решение, предложенное в [4] не решает поставленной задачи.

then
 задача поставлена не правильно...


Terasbetoni   (2008-09-19 18:05:00) [10]

Поросенок Винни-Пух ©   (17.09.08 18:24) [6]
Jeer ©   (17.09.08 18:35) [8]

Подождите. А в чем я не прав? Решение, предложенное в [4] не решает поставленной задачи.


Jeer   (2008-09-17 18:35:00) [11]


> Поросенок Винни-Пух ©   (17.09.08 18:24) [6]
>
> а сам-то ты сложный и трудный?


Нет, он бетон с террасы (Terasbetoni) - в общем, кремень-парень.

Туго.., в общем.


KilkennyCat   (2008-09-17 18:25:00) [12]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342


Поросенок Винни-Пух   (2008-09-17 18:24:00) [13]

а сам-то ты сложный и трудный?


Terasbetoni   (2008-09-17 18:23:00) [14]

Dennis I. Komarov ©   (17.09.08 18:04) [4] -- вот меня прикалывают такие простые парни... =)


Dennis I. Komarov   (2008-09-17 18:04:00) [15]

for i:=0 to <СКОКА НАДО> - 1 do
 begin
   TAny.Create...
    ...
 end


Поросенок Винни-Пух   (2008-09-17 18:03:00) [16]

создать экземпляр, скопировать свойства, назначить те же обработчики, установить парента и позишн.


Terasbetoni   (2008-09-17 17:56:00) [17]

Я про рантайм. Число копий, которые наделает пользователь, неизвестно как бы...


Правильный$Вася   (2008-09-17 17:51:00) [18]

в рантайме клонировать? или в дизайне?


Наверх

Титульная страница Поиск, карта сайта Написать письмо