Форум: "Начинающим";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
ВнизПодскажите контрол для реализации слоев Найти похожие ветки
← →
@!!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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c