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