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

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

Создание компонента [D6, Win95/98, WinXP]


Пользователь ©   (2006-01-16 13:00:00) 

Всем привет.
Очень расчитываю на Вашу помощь.
Нужно динамически (в процессе выполнения программы) создать новый Shape в Scrollbox'e
Зараннее спасибо..


Ega23   (2006-01-16 17:46:00) [1]

Либо заводи переменную, либо перебирай все компоненты класса TShape и проверяй на строковое имя.


domain   (2006-01-16 17:04:00) [2]

function GetShape(ItsName: String): TShape;
begin
 Result:=TShape(ScrollBox1.FindComponent(ItsName));
end;


можно и так, если с переменными запутался.


evvcom   (2006-01-16 16:41:00) [3]


> а как мне узнать имя этого обекта, что бы потом его свойства
> изменять ?

Имя сестра! Его имя!? (c) Мушкетеры

А зачем тебе его имя? Заведи переменную класса (обычно приватную) и
FMyShape := TShape.Create(ScrollBox1);
with FMyShape do ...

Вот через эту переменную и будешь потом добираться.


Пользователь   (2006-01-16 16:26:00) [4]

спасибо, и наверно последнее
а как же мне в коде написать
- создал объект
- "запомнил" его имя

а как в коде потом к нему достукиваться, что писать ?

Сенкс


Ega23   (2006-01-16 16:20:00) [5]


> а как мне узнать имя этого обекта, что бы потом его свойства
> изменять ?


With TShape.Create(ScrollBox1) do
begin
Parent:=ScrollBox1;
Top:=...
Left:=....
Name:='MyScrollBox';
.......
end;


Пользователь   (2006-01-16 16:18:00) [6]

а еще...
я создаю Shape

With TShape.Create(ScrollBox1) do
begin
 Parent:=ScrollBox1;
 Top:=...
 Left:=....
 .......
end;

а как мне узнать имя этого обекта, что бы потом его свойства изменять ?
Огромное спасибо !


Ega23   (2006-01-16 14:31:00) [7]

Ой. А Brush-то я и не заметил.
Да-а-а, так ты долго рисовать будешь....


evvcom   (2006-01-16 14:25:00) [8]


> такой код ScrollBox1.Brush.Bitmap.Canvas.Rectangle(10,10,
> 20,20) не проходит

Почему не проходит? Что-то там проходит, только ты не понял что. Ты ж рисуешь на канве кисти, причем не проверив размеров этой кисти. После такого рисования (удостоверившись в попадании рисунка в размеры канвы кисти) добейся заливки ScrollBox1 этой кистью, и увидишь, что что-то прошло, правда не то, что ты ожидал.


Ega23   (2006-01-16 14:05:00) [9]

Положи на ScrollBox1 PaintBox (или Image) и рисуй на нём.


Ega23   (2006-01-16 14:03:00) [10]

Положи на ScrollBox1 PaintBox (или Image) и рисуй на нём.


Пользователь   (2006-01-16 13:56:00) [11]

А как в нем рисовать можно ?
такой код ScrollBox1.Brush.Bitmap.Canvas.Rectangle(10,10,20,20) не проходит
как добраться до канвы ?
Спасибо !


evvcom   (2006-01-16 13:09:00) [12]


> Создание компонента

Правильнее сказать "создание объекта", "Создание компонента" - это нечто иное.


Ega23   (2006-01-16 13:03:00) [13]


With TShape.Create(ScrollBox1) do
begin
  Parent:=ScrollBox1;
  Top:=...
  Left:=....
  .......
end;


?


Наверх

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