Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1257236744
harisma
2009-11-03 11:25
2009.12.20
Проблема с приведением типов


2-1257157663
Сергей
2009-11-02 13:27
2009.12.20
Как передать данные в CRReport.PrintOut


4-1225282594
Н_А
2008-10-29 15:16
2009.12.20
winAPI


15-1255971474
Гость
2009-10-19 20:57
2009.12.20
Женщина программсит


15-1255897640
Leonid Troyanovsky
2009-10-19 00:27
2009.12.20
Лаки ПИТЕРСОН





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский