FastFiber

Wel/Niet greyed out.

Gestart door Marcel, do 25 08 2005, 18:01:52

Vorige topic - Volgende topic

Marcel

Mischien kan iemand mij vertellen hoe ik dit moet aanpakken.?

Ik heb in mijn DCL een toggle knop en vier popup lijsten.Ik wil graag dat deze vier popup listen bij het niet aangevinkt zijn van de toggle  greyed-out zijn, en pas werken als de toggle wel is aangevinkt.Zonder dat de betreffen dialog box van het scherm verdwijnd.

Hoe doe ik dat.

Alvast bedankt voor de suggesties.

Kenny H

Dag Marcel,

Allereerst sorry voor laat antwoord.
Ik heb morgen mijn eerste herexamen.  :twisted:

Citeer(set_tile "Keytoggle" naam)
 (if (= "0" naam)
   (progn
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
   )
   (progn
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
   )
 )
naam is willekeurig te kiezen
Keytoggle is de key van de toggle knop die ge gebruikt in uw dcl
keypop zijn de keys van de popups die ge gebruikt in uw dcl

Hopend u te hebben geholpen :!:

MVG

Kenny
8) Volvo 4 Life 8)

WebRacer

 

    Voorbeeld in DCL-->

       :boxed_row {label= "Prefix";
           : toggle {alignment=left;
              fixed_width = true;
              key="prefix1";}
         : edit_box {alignment=left;
                edit_width=10;
                is_enabled=false;
                key="prefix";}
          }


    Voorbeeld in lisp dan -->

      (action_tile "prefix1" "(mode_tile \"prefix\" (- 1 (atoi $value)))")
       (action_tile "prefix" "(SETQ prefix (GET_TILE \"prefix\"))")


Het is dus de is_enabled=false/true die het doet, en de (mode_tile \"prefix\" (- 1 (atoi $value))) aan de toggle die het grijs/wit zet!!
?

Kenny H

Nog een beetje info over de mode_tile

Citeer(mode_tile key mode)

Arguments

key


A string that specifies the tile. The key argument is case-sensitive.

mode

An integer that can be one of the following:

0 Enable tile

1 Disable tile

2 Set focus to tile

3 Select edit box contents

4 Flip image highlighting on or off
8) Volvo 4 Life 8)

Kenny H

Zoals ge hebt gemerkt zijn er meerdere oplossingen.

Nu kunt ge kiezen.
8) Volvo 4 Life 8)

Marcel

Citaat van: Kenny HZoals ge hebt gemerkt zijn er meerdere oplossingen.

Nu kunt ge kiezen.
Dat heb ik gedaan maar kom er niet uit.
Hier is een stuk uit mijn code.
Het is dus de bedoeling dat pas na aanvinken stempel de vier popuplisten(architect,projectleider,tekenaar en fase te verwerken zijn en bij niet aangevinkt zijn grayed-out zijn.



;                Definieer akties
 (set_tile   "error"
         "            Default     Schaal 1:20     Formaat A0"
 )

 (if (= toggletest 2)
   (progn
     (mode_tile "n_schaal" 0)
     (mode_tile "n_lagen" 0)
     (mode_tile "ja" 1)
     (mode_tile "list_formaat" 1)
     (mode_tile "stempel" 1)
   )
)

 (if (= toggletest 1)
   (progn
     (mode_tile "n_schaal" 1)
     (mode_tile "n_lagen" 1)
     (mode_tile "ja" 0)
     (mode_tile "list_formaat" 0)
     (mode_tile "stempel" 0)
   )
)


 (if (= 3duser 1)
   (mode_tile "3dopzet" 0)
 )

 (if (= 3duser nil)
   (mode_tile "3dopzet" 1)
 )

;(done_dialog 1)

 (action_tile "Ge_lagen" "(progn (setq Milagen nil)(setq Stlagen nil)(setq Allagen nil))"
 )
 (action_tile "Mi_lagen" "(progn (setq Milagen 1)(setq Stlagen nil)(setq Allagen nil))"
 )
 (action_tile "St_lagen" "(progn (setq Milagen 1)(setq Stlagen 1)(setq Allagen nil))"
 )
 (action_tile "Al_lagen" "(progn (setq Milagen 1)(setq Stlagen 1)(setq Allagen 1))"
 )
 (action_tile "3dopzet" "(setq opzet3D 1)(dried)")
 (action_tile
   "list_schaal"
   "(setq schaalecht (nth (atoi $value) displistschaal))(schaalid)"
 )
 (action_tile
   "list_formaat"
   "(setq formaatecht (nth (atoi $value) listformaat))"
 )

 (action_tile "stempel" "(do_stempel)")
 (action_tile "list_architect"   "(setq architect (nth (atoi $value) displistarchitect))"  )
 (action_tile "list_projectleider" "(setq projectleider (nth (atoi $value) displistprojectleider))"  )  
 (action_tile "list_tekenaar" "(setq tekenaar (nth (atoi $value) displisttekenaar))"  )
 (action_tile "list_fase" "(setq fase (nth (atoi $value) displistfase))" )


 (action_tile "n_lagen" "(setq Lx 1)")
 (action_tile "ja" "(do_kader)")
 (action_tile "accept" "(done_dialog 1)")
 (action_tile "path" "(paden)")
 (action_tile "opzetinfo" "(info_dialog)")
 (set_tile "route" route1)
 (set_tile "St_lagen" "1")
 (set_tile "dwgnaam" dwgnaam)
 (set_tile "list_schaal" schnr)
 (if (= lx 1)
   (set_tile "list_formaat" "7")
 )

 (princ layland)

 (setq what_next (start_dialog))
 (cond ((= 1 what_next) (do_opzet)))

 (action_tile "exit" "(exit)")
 (start_dialog)
 (unload_dialog dcl_id)
 (princ)
)

Reacties wederom welkom.

Marcel

WebRacer

(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)))
                       (mode_tile \"list_projectleider\" (- 1 (atoi $value)))
                       (mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
                       (mode_tile \"list_fase\" (- 1 (atoi $value)))")


dit zou moeten lukken...
als je in je dcl ook dit hebt >
: popup_list {alignment=left;
        edit_width=36;
        fixed_height=true;
        fixed_width=true;
                    is_enabled=false;
        key="list_architect";
        label="Lijst Architecten";}
?

Marcel

Webracer  het switchen werkt maar waar zet ik nu ("do_stempel")

Kenny H

Beste marcel,

Wil jij ook eens uw dcl plaatsen?
Indien uw lsp persoonlijk is, pm ze dan. :wink:

Al 1 probleem gevonden  :!:
Gij ontbreekt hier nog een set-tile voor die toggletest !

(if (= toggletest 2)
(progn
(mode_tile "n_schaal" 0)
(mode_tile "n_lagen" 0)
(mode_tile "ja" 1)
(mode_tile "list_formaat" 1)
(mode_tile "stempel" 1)
)
)
8) Volvo 4 Life 8)

Marcel

Kenny/Webracer
Dit stond er.

(action_tile "stempel" "(do_stempel)")
(action_tile "list_architect" "(setq architect (nth (atoi $value) displistarchitect))" )
(action_tile "list_projectleider" "(setq projectleider (nth (atoi $value) displistprojectleider))" )
(action_tile "list_tekenaar" "(setq tekenaar (nth (atoi $value) displisttekenaar))" )
(action_tile "list_fase" "(setq fase (nth (atoi $value) displistfase))" )

Dit is heb ik er van gemaakt.
(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)))
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))")

Het commando do_stempel wat er stond staat niet in het nieuwe stukje code.Dit word dus niet uitgevoerd,waar moet ik dat plaatsen.?
Verder werkt alles goed zoals het hoort.




Dit is de code voor do_stempel.


(defun do_stempel ()
 (if (= (get_tile "stempel") "1")
   (setq stempel "J")
 )
 (if (/= (get_tile "stempel") "1")
   (setq stempel "N")
 )
)

Kenny H

Als je op op de knop stempel drukt dan moet die do_stempel starten?

(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)) "(do_stempel)")
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))")

Lukt het nu?
8) Volvo 4 Life 8)

Marcel

Neen dit had ik ook bedacht,en dan verdwijnt de dialog box net zo snel als dat het op het scherm komt.Met de melding
; error: too many arguments

Kenny H

En met die?

(action_tile "stempel" (do_stempel))

Ging het daarmee tervoren?
8) Volvo 4 Life 8)

Marcel

Daar kan ik kort in zijn Ja.

Kenny H

En als je dit nu terug plaatst?
Lukt het dan nog?
8) Volvo 4 Life 8)

FastFiber