Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.20;
Скачать: CL | DM;

Вниз

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

 
@!!ex ©   (2009-11-03 16:43) [0]

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

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


 
Jeer ©   (2009-11-03 16:54) [1]

У.. как все запущено после Игр :)


 
@!!ex ©   (2009-11-03 16:56) [2]

Да... я тоже об этом подумал... оказывается совсем не умею работать с компонентами, и писать их не умею...


 
MBo ©   (2009-11-03 16:57) [3]

непонятно, зачем здесь какие-то особые контролы.


 
clickmaker ©   (2009-11-03 16:59) [4]

а обычные панельки не подойдут?


 
@!!ex ©   (2009-11-03 17:23) [5]

Нужно что-то типа такого:

http://img32.imageshack.us/i/layers.gif/

Только в TreeView у меня не получилось сделать перетаскивание объектов между ветками.


 
@!!ex ©   (2009-11-03 17:23) [6]

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


 
Kolan ©   (2009-11-03 18:12) [7]

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


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

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

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


 
Kolan ©   (2009-11-03 19:01) [9]

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


 
antonn ©   (2009-11-03 19:53) [10]

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


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

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


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

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

Спасибо.


 
Kolan ©   (2009-11-03 21:16) [12]

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

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


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


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


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

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

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


 
antonn ©   (2009-11-03 23:37) [14]


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

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


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

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


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

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


 
@!!ex ©   (2009-11-03 23:49) [16]

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


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


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

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


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

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

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

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

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

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


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

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

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


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

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


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


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


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


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


> Лаларту   (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) то выполняется условие


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


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

не больше


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


> if num>=FList.Count then exit;

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


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

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



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

Текущий архив: 2009.12.20;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.014 c
15-1255874210
POOP
2009-10-18 17:56
2009.12.20
Что называют диаметром линзы?


1-1228909434
Alex_C
2008-12-10 14:43
2009.12.20
Как в DBGrid отловить MouseWheel?


1-1229369606
Zilog
2008-12-15 22:33
2009.12.20
TListView - где это событие найти?


2-1257086072
a1b1
2009-11-01 17:34
2009.12.20
передача файлов, контекстное меню, cm_Mouseleave


15-1256243411
Юрий
2009-10-23 00:30
2009.12.20
С днем рождения ! 23 октября 2009 пятница