Read and write color in Combobox

Started by Emiliano, March 26, 2012, 10:58:44 PM

Previous topic - Next topic

Emiliano

I just can not understand how to use the combobox with style "4 - Color".  :'(
I simply want to understand how to read and set a color.

- To read the color set, use the following code
Code (autolisp) Select

(setq col (dcl_ComboBox_GetTBText Applic_Form_ComboCol)))


However, in this way, the revenue of the color string in the language of AutoCAD (English, Italian, German, etc..)
how can I get the number of colors selected to avoid checking the language of AutoCAD?

- To set a color using the lisp code, I tried using
Code (autolisp) Select

(setq num_color "3") ;<--Green
(dcl_ComboBox_SetCurSel Applic_Form_ComboCol (+ (atoi num_color) 1))


This code works, until the list of the colors, is added, at the top the last color used.  :'(

I'm confused  ???
Can you help me?
Thanks in advance.

owenwengerd

Owen Wengerd (Outside The Box) / ManuSoft

Emiliano

Hi
Thanks for the reply.
Now I understand that finding the number of selected color in combox.

However the most difficult problem is to select, using the lisp code, a certain color.
I have a combobox that contains eg. the following list of colors:

Color71
Color73
Color96
Red
Yellow
Green <--Current Selection
Cian
Blue
Magent

How do I select the color "Blue" using Lisp code?
Thanks in advance


Emiliano

Thanks again for your reply.
I hope it is useful to someone, with your help I wrote the following functions:

Code (autolisp) Select

(defun TTComboGetColor (control / col)
  (setq col (dcl_ComboBox_GetItemData control (dcl_ComboBox_GetCurSel control)))
  col
)

(defun TTComboSetColor (control col / findel)
  (setq findel (dcl_ComboBox_FindColor control col))
  (if (= findel nil)
    (progn
      (dcl_ComboBox_AddColor control col)
      (setq findel (dcl_ComboBox_FindColor control col))
    )
  )
  (dcl_ComboBox_SetCurSel control findel)
)

Peter2

Is this solution still the current way to get the selected color in OpenDCL 8?

I looked around, found old examples with "GetTBText" (which seem to be outdated ...), tried with GetLBText and GetCurSel, and at the moment I'm a little bit confused ....
Peter
ODCL 9.1.... German, AutoCAD 2023, Bricscad 26, Win 11

owenwengerd

Yes, this is the correct way to get the selected color value. If you want the displayed text, GetLBText should work.
Owen Wengerd (Outside The Box) / ManuSoft