ArchiFORUM
http://archiforum.cz/

GDL DATA I/O ADD-ON - dialog
http://archiforum.cz/viewtopic.php?f=9&t=3117
Stránka 1 z 1

Autor:  forad [ úte dub 26, 2011 11:20 pm ]
Předmět příspěvku:  GDL DATA I/O ADD-ON - dialog

filename =data
Fix = OPEN ("Text", filename, "separator=' '; mode =RO ,dialog")

Jakým způsobem zajistit znovu otevření dialogu pro výběr třeba jiného souboru?
Snažím se to udělat pomocí tlačítka UI BUTTON.

Díky.

Autor:  LubosC [ stř dub 27, 2011 8:22 am ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

dle meho musi dojit k uzavření kanálu pomocí close az pak mohu otevirat dalsi a nebo otevřít jiny s jiným číslem možná.

Autor:  forad [ stř dub 27, 2011 11:13 pm ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

No jak si archicad natahne nejaky soubor, tak už jinej nechce, do té doby než mu zmením původní název na jiný pak křičí opet dialog.
Jak ale tedy klikem na button generovat hodnoty promené ,,text,,?

Autor:  jirat [ čtv dub 28, 2011 9:55 am ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

Každý button má(může mít) nějaké ID. Pokud budete nastavený typ buttonu na UI_FUNCTION, při kliknutí na button se do globální proměnné GLOB_UI_BUTTON_ID uloží ID tohoto buttonu.
Potom stačí někde (v hlavním scriptu) kontrolovat jaká je hodnota globální proměnné GLOB_UI_BUTTON_ID a podle toho generovat textovou proměnnou a nebo rovnou otevřít příslušný soubor.
Např.
Kód:
IF NOT(GLOB_UI_BUTTON_ID) THEN
...
ELSE
  IF GLOB_UI_BUTTON_ID = 1 THEN
  ...
  ELSE
  ...
  ENDIF
ENDIF

Nebo ještě zjednodušit tím, že názvy souborů budou obsahovat ID tlačítka. Např. "Text0", "Text1", "Text2" atd.
Potom můžete použít pouze 1 podmínku, a to když nebude zmáčknuté žádné tlačítko (nebude GLOB_UI_BUTTON_ID)
Volání souboru bude potom vypadat např:
Kód:
IF NOT(GLOB_UI_BUTTON_ID) THEN
  filename = "Text0"
ELSE
  filename = "Text"+str(GLOB_UI_BUTTON_ID, 1,0)
ENDIF


Vzhledem k tomu, že se GLOB_UI_BUTTON_ID může opětovným načtením knihovního prvku ztratit(změnit), je výhodnější uložit ji nebo název souboru do proměnné (přednastaveného parametru) pomocí funkce PARAMETERS
Kód:
PARAMETERS filename=filename



Píšu to z hlavy (nemohu to otestovat), tak snad to bude fungovat

Autor:  forad [ čtv dub 28, 2011 11:29 am ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

Super, díky za odpověď, tohle pomohlo:
"Text"+str(GLOB_UI_BUTTON_ID, 1,0)

ale jeste jeden problém,
hodnota GLOB_UI_BUTTON_ID může nabývat jedné hodnoty např. = 1 , tzn. že mohu na tlačítko kliknout jen jednou. Podruhé už nereaguje dialog a hodnota buttonu se nemění.
Pak tedy musí být
filename = "Text"+str(GLOB_UI_BUTTON_ID+klik, 1,0)
Jak tedy zajistit přičítání hodnoty do proměnné ,,klik,, při každém kliknutím na UI_BUTTON ?
Tohle se mi nedaří řešit.
Díky za odpoved

Autor:  LubosC [ čtv dub 28, 2011 1:42 pm ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

pro menší počet klikani bych to obesel misto Např. "Text0", "Text1", "Text2"
na Např. "Text0", "Text01", "Text011"

takto : filename = filename+str(GLOB_UI_BUTTON_ID, 1,0)

prípadne : klik = klik +1
filename = "text"+str(klik, 1,0)

Autor:  jirat [ čtv dub 28, 2011 3:19 pm ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

Lepší bude uchovat aktuální číslo (klik) v nějaké proměnné (ideálně v parametru) a po stlačení buttonu pouze toto číslo o 1 zvětšit. Tím se vyřeší i výchozí hodnota (0) a nemusím testovat jestli je GLOB_UI_BUTTON_ID.

V případě, že používám jediné tlačítko a chci jen přičítat, by to potom mohlo vypadat takto:
Kód:
IF GLOB_UI_BUTTON_ID THEN
  PARAMETERS klik = klik+1
ENDIF


Pokud bych měl víc tlačítek, budu testovat, jakou má GLOB_UI_BUTTON_ID hodnotu a na to zvolím akci (například klik = klik-1, nebo klik = 0, atd...).

POZN: Při testování mi to načítá o 2, asi se hlavní script provede 2x za sebou.
http://www.archinvea.cz/gdl/button-pocitadlo.gsm

Autor:  forad [ čtv dub 28, 2011 4:43 pm ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

tak pánové, klobouk dolů, díky moc!! povedlo se ,konečně trochu dústojnější otevírání souborů.
Ikdyž ten script funguje opravdu 2x, tím pádem i dialog vyskočí 2x, ale to už nějak překousnu.

Díky!

Autor:  jirat [ čtv dub 28, 2011 11:35 pm ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

Jestli je opakování výrazu vlastnost (a ne chyba), tak by se to dalo opĕt testovat,použitím nějakého počítadla.
Kód:
counter=0
IF GLOB_UI_BUTTON_ID THED
 counter=counter+1
 IF counter%2=1 THEN
  PARAMETERS klik = klik+1
 ENDIF
ENDIF

Autor:  LubosC [ pát dub 29, 2011 9:56 am ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

A co teprve co se da vytvořit a naučit archicad pomoci API :)) případne spojení API a GDL prvků.
Kdysi jsem třeba řešil jak vepsat do razitka zony počet určitých objektu na dané zoně ( počet zon a objektů v patře byl velký)
ručně a s možnou chybou sem vyplňoval razitko a počítal objekty přes hodinu . Dnes to umim na jedno kliknutí a bez chyby :)

Autor:  jirat [ pát dub 29, 2011 10:41 am ]
Předmět příspěvku:  Re: GDL DATA I/O ADD-ON - dialog

Jo tak to bych se chtěl taky jednou naučit, ale už ni na to nezbývá dost času. Navíc je k tomu potřeba ještě nějaké softwarové vybavení a určitě nějaký certifikát od Graphisoftu, nemýlím-li se.

Stránka 1 z 1 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/