Страница 1 из 1

доступ к Pick Color

Добавлено: 22 мар 2018, 14:23
Stasss
Приветствую!
Интересуюсь, как получить доступ к элементам Red, Green, Blue диалога "Pick Color" из программ MapBasic или .NET ?
Т.е. например, когда этот диалог открыт, я бы мог ему "подсунуть" эти три компоненты извне.

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 08:10
Sibit
А зачем такие сложности? Очевидно же, что из MapBasic нельзя получить прямой доступ к диалогам, что рисует Mapinfo.

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 08:25
freeExec
Правьте сам стиль, а не цвет в диалоге.

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 09:31
Stasss
freeExec писал(а):
23 мар 2018, 08:25
Правьте сам стиль
Стили же все разные: тематики, разные типы объектов....
А этот диалог один на всех. Или может я вас не понял.....

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 09:56
freeExec
Какой у вас кейс с "исправить цвет в окошке"?

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 10:50
Stasss
freeExec писал(а):
23 мар 2018, 09:56
Какой у вас кейс
Я так понимаю, что вопрос значит - для чего мне это?

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 11:14
freeExec
Да, очевидно, что вы зашли не с того конца.

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 13:00
Stasss
freeExec писал(а):
23 мар 2018, 11:14
очевидно, что вы зашли не с того конца
да нееее, цель ясна (ну мне точно).
Хочу сделать кастом-палитру с проименованными заготовками типа "ColorNameN - RRR, GGG, BBB", чтобы не вбивать руками каждый цвет. И именно надо со своими названиями, т.к. так быстрее искать в немалом списке...

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 15:29
Boris
Предлагаю подвести итог обсуждения данного вопроса - при такой постановке задачи "хочу влезть в стандартную форму 'закрытой' программы, а ваших наводящих вопросов - не хочу".
Доступ к окну может быть реализован с помощью стандартных команд Win API - SelectWindow, SendKey и т.п.
Еще можно хакнуть DLL-ку.
PS
На такие вопросы стоит давать максимально корректные ответы. Как решить задачу присвоение цветов из списка или палитры есть минимум с три разных варианта решений. Но ведь это именно то, что автору и не нужно.

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 16:19
Stasss
Boris писал(а):
23 мар 2018, 15:29
а ваших наводящих вопросов - не хочу
не увидел наводящих вопросов......
Boris писал(а):
23 мар 2018, 15:29
Но ведь это именно то, что автору и не нужно.
с чего вы это взяли?
Boris писал(а):
23 мар 2018, 15:29
Как решить задачу присвоение цветов из списка или палитры есть минимум с три разных варианта решений
а вот этим могли бы и поделиться.....раз это относится к теме (а точнее к цели), почему бы мне отказываться.
Я просто увидел один путь, с чего и начал тему. Но от других путей я не отказывался... Где вы это увидели?

Re: доступ к Pick Color

Добавлено: 23 мар 2018, 17:31
Boris
freeExec писал(а):
23 мар 2018, 09:56
Какой у вас кейс с "исправить цвет в окошке"?
Несколько раз спросили "Зачем?" и "Что собственно делаете?".
Вы ответили
Stasss писал(а):
23 мар 2018, 13:00
да нееее, цель ясна (ну мне точно).
Телепаты на форуме в резком дефиците.
А вот команда присвоения цвета на MapBasic'е хорошо известна,например, из MapInfo Pro Help:
By issuing an Alter Object statement with an Info clause, you can reset an object's style (e.g., the Pen or Brush). The Info clause lets you modify the same style attributes that you can query through the ObjectInfo( ) function.

For example, you can determine an object's current Brush style by calling the ObjectInfo( ) function:

Код: Выделить всё

Dim b_fillstyle As Brush
b_fillstyle = ObjectInfo(Selection.obj, OBJ_INFO_BRUSH) 
Conversely, the following Alter Object statement allows you to reset the Brush style:

Код: Выделить всё

Alter Object obj_variable_name 
	Info OBJ_INFO_BRUSH, b_fillstyle 
Note that you use the same code (e.g., OBJ_INFO_BRUSH) in both the ObjectInfo( ) function and the Alter Object statement. 
Естественно это требует некоторых танцев - выбор объекта или перебор УЖЕ выделенных. Но все эти операции так же описаны.
Вариант 2: На сколько я в курсе, приведенное окно появляется только в случае выбора в палитре квадратика "...". А вот обычные цвета выбираются из нее. Так вот палитра может быть переопределена в настройках Mapinfo -"Custom Colors".

Re: доступ к Pick Color

Добавлено: 24 мар 2018, 08:44
Stasss
Boris писал(а):
23 мар 2018, 17:31
Вариант 2:
За варианты спасибо! Буду исследовать.
Но!
Boris писал(а):
23 мар 2018, 17:31
Несколько раз спросили "Зачем?" и "Что собственно делаете?".
Вы ответили
Boris писал(а):
23 мар 2018, 17:31
Stasss писал(а): ↑
Вчера, 15:00
да нееее, цель ясна (ну мне точно).

Телепаты на форуме в резком дефиците.
а ниже что написано?
не это?
Stasss писал(а):
23 мар 2018, 13:00
Хочу сделать кастом-палитру с проименованными заготовками типа "ColorNameN - RRR, GGG, BBB", чтобы не вбивать руками каждый цвет. И именно надо со своими названиями, т.к. так быстрее искать в немалом списке...
Вернуться к началу
Вы издеваетесь? умелое выдергивание из контекста в действии? Пипец просто!!!!!!

И еще все-таки по делу.
Я наблюдал за окном мэпбейсик во время выполнения различных операций присвоения цвета: к объектам, к слою, к элементам тематических карт... Там все сложные коды выходят, и с разными "шапками" (началами). Думается сложно уловить вариативность этого "начала" в прикладной прорамме.
Но все же поисследую еще варианты ваши и прочее...

Re: доступ к Pick Color

Добавлено: 24 мар 2018, 13:27
Boris
Stasss писал(а):
24 мар 2018, 08:44
Я наблюдал за окном мэпбейсик во время выполнения различных операций присвоения цвета: к объектам, к слою, к элементам тематических карт... Там все сложные коды выходят, и с разными "шапками" (началами). Думается сложно уловить вариативность этого "начала" в прикладной прорамме.
Даже не могу представить, что именно сложное может выдавать MapInfo, что сложнее, чем программирование на MapBasic'е или NET.
Окно MapBasic'а - хорошо, я и сам его часто использую, но документацию оно не отменяет.
Если задача выглядит именно так как написано, а не "хочу присваивать цвета объектам с помощью собственного инструмента выбора цвета", то (см. выше) "замену стандартного окна выбора цвета без вскрытия DLL выполнить нельзя".

Re: доступ к Pick Color

Добавлено: 25 мар 2018, 08:46
Stasss
Нашел оператор Alter MapInfoDialog !
Sibit писал(а):
23 мар 2018, 08:10
Очевидно же, что из MapBasic нельзя получить прямой доступ к диалогам, что рисует Mapinfo.
Так что вы не правы...

Теперь этот оператор нужно подробно изучить, а также все, что ему сопутсвует....