CADxp: Taille edit_box - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Taille edit_box

#1 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 03 avril 2011 - 00:22

Bonjour à tous,

Ma question est je pense toute simple.
Peut-on sans passer par une boite de dialogue faite avec OpenDcl paramétrer la taille d'un edit_box en DCL ?
Je voudrais agrandir la taille d'une edit_box sur 2 ou 3 lignes par exemple.
J'ai bien essayé les termes heigth ou fixed_heigth = true mais rien n'y fait,
j'ai toujours mon edit_box dans mon dcl qui apparait sur une ligne.
Je sais que l'on peut modifier le nombre de caractères entré par edit_width donc sur la largeur mais sur la hauteur ???

Merci par avance de vos réponses.
0

#2 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 03 avril 2011 - 06:25

Ou bien si ce n'est pas possible en dcl,
comment avec OpenDcl et un edit_box faire un saut de ligne ?
J'ai bien essayé avec OpenDcl en limitant le nombre de carractères à 25 et avoir un saut de ligne sur le 26ième caractère mais je ne trouve pas l'option ou le control permettant de le faire.

merci par avance de votre aide
0

#3 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11291
  • Inscrit(e) : 02-septembre 05

Posté 03 avril 2011 - 09:23

Salut,

En DCL un contrôle edit_box ne peut avoir qu'une seule ligne.

Avec ObjectDCL (que je connais très mal) on peut avoir des contrôles TextBox multiligne, il fuffit de mettre la propriété FilterStyle à 8 (Multiligne String).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#4 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 03 avril 2011 - 10:04

Bonjour Gile

J'ai essaye avec la propriete Multiligne String dans Opendcl Mais ca ne marche pas.
Je travaille sous Opendcl et pour les edit box il y a une function qui limite Le nombre de caracteres Mais Comment faire pour quand Le nombre maximum de caracteres est atteint on indique a l'edit box de faire un Saut de ligne.

Merci par avance de votre aide
0

#5 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8463
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 04 avril 2011 - 07:40

Prends donc une LISTBOX, tu gères les diffrentes lignes comme tu gères des éléments de liste.
Tu pourras même gérer des colonnes.

C'est une idée qui vaut ce qu'elle vaut...
Image IPB

Bureau d'études dessin.
Spécialiste Escaliers
Développement - Formation

./__\.
(.°=°.)
0

#6 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 08 avril 2011 - 12:23

Bonjour Tramber,

J'ai pas pu te répondre plus tôt car j'étais en déplacement cette semaine.
J'ai essayé avec une listBox mais on ne peut éditer de texte à l'intérieur.
Ou alors je ne vois pas de quoi tu parles.

Merci pour tes éclaircissements


0

#7 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 09 avril 2011 - 21:51

Bonjour à tous,

Dés fois en trop s'entêtant, la réponse est souvent sous nos yeux.
Pour mon histoire de saut de ligne, Gile a donné la bonne réponse mais ca ne fonctionnait pas car j'avais coché pour le textbox onMaxText qui limite le nombre de caractères d'une chaine du coup évidemment le saut de ligne ne pouvait fonctionner.
Je confirme donc qu'avec l'option Multiline String, ca fonctionne très bien.

Maitenant, je suis confronté à un autre problème.
J'ai deux listbox qui sont alimenter par deux listes différentes mais qui ont le même nombre d'éléments.

Je souhaiterais si je modifie la valeur de la 1ere listbox en mettant par exemple la valeur sur le 3ième élement de ma première liste, la seconde listbox se change automatiquement est pointe sur le 3ième élement de ma seconde liste. Ceci ne serait valable que si je modifie la valeur de ma première listbox, mais pas dans le sens contraire, si par exemple, je modifie la valeur de ma seconde listbox, je ne veux pas qu'on modifie la première.

Je veux juste le cas ou si l'utilisateur met la nième valeur de ma première listbox, la seconde listbox pointe elle aussi sur le nième élement de ma seconde liste.
J'espère avoir été assez explicite.

Et honnêtement, j'ai tout essayé.
Avec l'option, SelChanged, SetFocus, DropDown, EditChanged mais rien n'y fait. et même en agissant avec le dcl_Form_Close en attribuant des valeurs dans une boucle mais rien......
Peut être voire surement que je m'y suis mal pris.

En attendant votre aide, merci.


0

#8 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8463
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 11 avril 2011 - 09:02

Où est ton code ?

Car je ne vois rien de compliqué à récupérer une selection et en former une autre dans l'une ou l'autre des listbox...
0

#9 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 15 avril 2011 - 23:57

Bonjour Tramber,

Désolé de te répondre tardivement mais j'étais en déplacement cette semaine.

Voici mon code

 (defun c:ch1 (/ lst1 lst2 lst3 d i num_ch result

c:xd_PT1_Form_CH1_OnInitialize

c:xd_PT1_Form_CH1_TBUT1_OnClicked

c:xd_PT1_Form_CH1_TBUT2_OnClicked

c:xd_PT1_Form_CH1_TBUT3_OnClicked

c:xd_PT1_Form_CH1_CBOX2_OnSelChanged

)


(setvar "CMDECHO" 0)

(command "OPENDCL")

(dcl_Project_Load "C:/Users/Christophe/xd_PT1.odcl" T)


(setq result 3)

(setq num_ch " ")


(setq d 6)

(setq i 6)


(setq lst1 (list

"Projeté"

"Existant"

"))


(setq lst2 '("C1" "C2" "C3" "C4" "Inconnu"))


(setq lst3 '("Dim C1" "Dim C2" "Dim C3" "Dim C4" "Inconnu"))


(defun c:xd_PT1_Form_CH1_OnInitialize (/)


(dcl_ComboBox_Clear xd_PT1_Form_CH1_CBOX1)

(dcl_ComboBox_AddList xd_PT1_Form_CH1_CBOX1 lst1)

(dcl_ComboBox_SetCurSel xd_PT1_Form_CH1_CBOX1 2)


(dcl_ComboBox_Clear xd_PT1_Form_CH1_CBOX2)

(dcl_ComboBox_AddList xd_PT1_Form_CH1_CBOX2 lst2)

(dcl_ComboBox_SetCurSel xd_PT1_Form_CH1_CBOX2 d)


(dcl_ComboBox_Clear xd_PT1_Form_CH1_CBOX3)

(dcl_ComboBox_AddList xd_PT1_Form_CH1_CBOX3 lst3)

(dcl_ComboBox_SetCurSel xd_PT1_Form_CH1_CBOX3 i)


(dcl_ComboBox_Clear xd_PT1_Form_CH1_CBOX4)

(dcl_ComboBox_AddList xd_PT1_Form_CH1_CBOX4 (list "Vrai" "Faux"))

(dcl_ComboBox_SetCurSel xd_PT1_Form_CH1_CBOX4 0)


(dcl_Control_SetText xd_PT1_Form_CH1_TBOX1 num_ch)

(dcl_Control_SetText xd_PT1_Form_CH1_TBOX2 " ")


)



(defun c:xd_PT1_Form_CH1_TBUT1_OnClicked (/ typ)


(setq typ (list

(dcl_ComboBox_GetEBText xd_PT1_Form_CH1_CBOX1)

(dcl_ComboBox_GetEBText xd_PT1_Form_CH1_CBOX2)

(dcl_ComboBox_GetEBText xd_PT1_Form_CH1_CBOX3)

(dcl_Control_GetText xd_PT1_Form_CH1_TBOX1)

(dcl_Control_GetText xd_PT1_Form_CH1_TBOX2)

(dcl_ComboBox_GetEBText xd_PT1_Form_CH1_CBOX4)

(dcl_Control_GetText xd_PT1_Form_CH1_TBOX3)

(dcl_Control_GetText xd_PT1_Form_CH1_TBOX4)

))


(dcl_Form_Close xd_PT1_Form_CH1)

(princ "\n")

(princ typ)

)


(defun c:xd_PT1_Form_CH1_TBUT2_OnClicked (/)

(dcl_Form_Close xd_PT1_Form_CH1)

(prompt "\nAucune entité est renseignée.")

)


(defun c:xd_PT1_Form_CH1_TBUT3_OnClicked (/)

(setq d (dcl_ComboBox_GetCurSel xd_PT1_Form_CH1_CBOX2))

(setq i (dcl_ComboBox_GetCurSel xd_PT1_Form_CH1_CBOX3))

(dcl_Form_Close xd_PT1_Form_CH1 4))


 [surligneur] (defun c:xd_PT1_Form_CH1_CBOX2_OnSelChanged (i txt/)

(setq i (dcl_ComboBox_GetCurSel xd_PT1_Form_CH1_CBOX2))

(dcl_ComboBox_SetCurSel xd_PT1_Form_CH1_CBOX3 i)

)[/surligneur] 


(while (< 2 result)

(setq result (dcl_Form_Show xd_PT1_Form_CH1))

(cond


((= 4 result)

(setq num_ch (SelectText))

(setq i i)

(setq d d)

)


)

)



(setvar "CMDECHO" 1)

(princ)

)



Je bloque sur la ligne surligné comme indiqué dans le message précedent.
Merci aussi de m'indiquer si j'adapte la bonne méthode pour programmer en lisp en mettant le OnInitialise dans la routine principale ou si je dois l'appeler comme une fonction simple.

Merci encore de ton aide.

0

#10 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8463
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 16 avril 2011 - 08:53

(setq i ...
me parait inutile puisqu'il est renvoyé par la fonction.

Je dois t'avouer que je ne vois pas d'erreur dans le code a priori.
je suis gené pour te répondre. Essaye une syntaxe type :
(dcl_ComboBox_SetProperty xd_PT1_Form_CH1_CBOX3 "cursel" i)
....?

Pas de problèmes pour le "on_initalize". Moi aussi je le mets assez rapidment au début.
0

#11 L'utilisateur est hors-ligne   VtKp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 16-septembre 09

Posté 17 avril 2011 - 05:55

Ca marche très bien Tramber avec le (dcl_ComboBox_SetProperty xd_PT1_Form_CH1_CBOX3 "cursel" i)

Merci de ton aide
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)