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

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

Подскажите контрол для реализации слоев


Страницы:   1 2

@!!ex ©   (2009-11-03 16:43:00) 

Нужно сделать следующее:
Набор слоев.
К каждому слою привязаны элементы.
Элементы можно перетаскивать между слоями.

Проблема в том, что не могу найти в стандартной палитре компоненты, которые бы позволяли перетаскивать элементы таким образом... Самому писать не хочеться...


Лаларту   (2009-11-04 00:55:00) [1]

на знак равно внимание не обратил ;))


Лаларту   (2009-11-04 00:53:00) [2]


> if num>=FList.Count then exit;

ну может я и погорячился по поводу апшибок ))
просто конструкция непривычная потому и бросилась в глаза. Обычно делают
if num>FList.Count-1 then exit;


antonn   (2009-11-04 00:49:00) [3]


> если индекс элемента больше FList.Count-1

небольше


antonn   (2009-11-04 00:48:00) [4]


> Лаларту   (03.11.09 23:44) [15]
>
> ну например в удалении одного объекта и перемещение порядка
> объектов

procedure TElementsVectorList.Delete_Element(num:integer);
var Cadr:pElement;
begin
if num>=FList.Count then exit;
Cadr:=pElement(FList.Items[num]);
Dispose(Cadr);
FList.Delete(num);
end;

если индекс элемента больше FList.Count-1 он удаляется, иначе будет AV или что то в этом роде :)
Аналогично:
procedure TElementsVectorList.MoveCoord(x,y:integer);
var Cadr:pElement;
begin

if(move_p>=0)and(move_p<FList.Count)and(size_p>=0)and(size_dot>0) then

если индекс перемещаемого объекта в пределах 0..(FList.Count-1) то выполняется условие


Лаларту   (2009-11-04 00:38:00) [5]


> там же нужно еще сделать чтобы детальки можно было редактировать
> через инспектор.


ну тык сделай проперти в публисшед


@!!ex   (2009-11-04 00:32:00) [6]

Спасибо за ссылку, может чего и получится. :)


@!!ex   (2009-11-04 00:30:00) [7]

> [18] Лаларту   (03.11.09 23:58)

Зарегистрировать она его зарегистрирует... там же нужно еще сделать чтобы детальки можно было редактировать через инспектор.


Лаларту   (2009-11-03 23:58:00) [8]

> @!!ex ©   (03.11.09 23:49) [16]
> Все. Написал свой контрол. Его бы еще в компоненты переделать,
>  было бы совсем замечательно. :)

ну тык ничего сложного

http://www.realcoding.net/article/view/6558

волшебная процедурка

procedure register;
begin
 RegisterComponents('Samples', [TOurOpenDialog]);
end;


Лаларту   (2009-11-03 23:50:00) [9]


>  и перемещение порядка объектов

тоесть не порядка, а када двигаешь
procedure TElementsVectorList.MoveCoord


@!!ex   (2009-11-03 23:49:00) [10]

Все. Написал свой контрол. Его бы еще в компоненты переделать, было бы совсем замечательно. :)


Лаларту   (2009-11-03 23:44:00) [11]

ну например в удалении одного объекта и перемещение порядка объектов


antonn   (2009-11-03 23:37:00) [12]


> И кстати в коде есть абшибки ))
>
> FList.Count вместо FList.Count-1

ээ, в каком месте? обычно я себе такого не позволяю, пересмотрел еще раз, не попадается на глаза :)


> Kolan ©   (03.11.09 21:16) [12]

я нечаяно, больше не буду %)
хотя да, по ссылке проет имеет весьма отдаленное отношение к слоям, если там будут контролы :)


Лаларту   (2009-11-03 23:10:00) [13]


> Kolan ©   (03.11.09 21:16) [12]
> Спасибо, antonn, вы взорвали мне мозг. Минут 5 я видел и
> изучал скриншот, одновременно пытаясь понять где тут то,
>  что относится к сабжу и удивляясь вашему рабочему столу.
> Потом я втыкал причем тут «Форум Delphi: Векторное рисование».
>  И только минут через 10 я понял, что это, ..., сайт такой
> и вы предлагаете тыкать ссылки.


Тоже сначала запарился ))

И кстати в коде есть абшибки ))

FList.Count вместо FList.Count-1


Kolan   (2009-11-03 21:16:00) [14]

Спасибо, antonn, вы взорвали мне мозг. Минут 5 я видел и изучал скриншот, одновременно пытаясь понять где тут то, что относится к сабжу и удивляясь вашему рабочему столу.

Потом я втыкал причем тут «Форум Delphi: Векторное рисование». И только минут через 10 я понял, что это, ..., сайт такой и вы предлагаете тыкать ссылки.


@!!ex   (2009-11-03 20:22:00) [15]

> [10] antonn ©   (03.11.09 19:53)

Спасибо.


antonn   (2009-11-03 19:53:00) [16]

может как отправная точка пригодится: http://desksoft.ru/index.php?forum=13&th=237


> Проблема в том, что не могу найти в стандартной палитре
> компоненты, которые бы позволяли перетаскивать элементы
> таким образом... Самому писать не хочеться...
>

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


Kolan   (2009-11-03 19:01:00) [17]

@!!ex
Я бы полностью скопировал интерфейс фотошопа в этой части. Очень многие к нему сильно привыкли.


@!!ex   (2009-11-03 18:16:00) [18]

> [7] Kolan ©   (03.11.09 18:12)

Вопрос именно в управлении слоями пользователем.


Kolan   (2009-11-03 18:12:00) [19]

Слои как в фотошопе? Я думаю, что слои — это логическая группировка. А отрисовывать объекты все равно нужно на одной канве.


@!!ex   (2009-11-03 17:23:00) [20]

Панельками не сделать, объектов то может быть дофига.... Сотни.


Страницы:   1 2

Наверх

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