![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как клонировать экземпляр компонента [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]в рантайме клонировать? или в дизайне?