Open_view

Internφ programovacφ jazykC/C++Pascal

function Open_view(var viewdef : string; base : tcursnum; flags : integer; position : trecnum; hParent : window_id; var hView : window_id) : window_id;
window_id Open_view(const char *viewdef, tcursnum base,uns32 flags, tcursnum position, void *reserved, window_id hParent, window_id *hView);
function Open_view(viewdef : PChar; base : tcursnum; flags : uns32; position : trecnum; var reserved; hParent : window_id; var hView : window_id) : window_id;

Parametry

viewdef specifikace formulß°e, kter² mß b²t otev°en
base otev°en² kurzor nebo konstanta NO_REDIR
flags viz Parametry otev°enφ formulß°e.
position Φφslo prvnφho zßznamu
reserved procedura vyhrazenß pro budoucφ pou₧itφ, zadejte NULL resp. NIL;
hParent identifikace (handle) formulß°e, kter² mß b²t v₧dy pod otevφran²m formulß°em, nebo 0
hView v²stupnφ parametr: identifikace (handle) otev°enΘho formulß°e

Popis

Funkce Open_view otev°e na obrazovce okno obsahujφcφ formulß° specifikovan² parametrem viewdef. ZaΦφnß-li °et∞zec viewdef hv∞zdiΦkou (*), musφ nßsledovat jmΘno formulß°e v databßzi, zaΦφnß-li znakem plus (+), musφ nßsledovat jmΘno textovΘho souboru, kter² obsahuje definici formulß°e, zaΦφnß-li jinak, je tento °et∞zec p°φmo definicφ formulß°e.

Pokud parametr base mß jinou hodnotu ne₧ NO_REDIR, bude formulß° p°esm∞rovßn na tento kurzor.

Je-li mezi p°φznaky parametr∙ flags i hodnota MODAL_VIEW (otev°φt formulß° jako modßlnφ), je d∙le₧itΘ si uv∞domit, ₧e program se ve funkci Open_view zastavφ po tu dobu, po kterou formulß° bude otev°en. Program bude pokraΦovat teprve po uzav°enφ modßlnφho formulß°e.

Parametr position udßvß Φφslo zßznamu, na n∞m₧ mß b²t formulß° otev°en. Je-li v okn∞ formulß°e vφce zßznam∙, bude specifikovan² zßznam prvnφ v po°adφ. Pokud je tento parametr kladn², pova₧uje se za po°adovΘ Φφslo zßznamu ve formulß°i, je-li zßporn², pova₧uje se za externφ Φφslo zßznamu v tabulce nebo kurzoru, do n∞ho₧ formulß° vede, a uplatnφ se jeho absolutnφ hodnota.

Parametr hParent mß hodnotu jinou ne₧ nula pouze tehdy, pokud si p°ejeme, aby otevφran² formulß° se nemohl ocitnout nikdy pod (d°φve otev°en²m) formulß°em hParent.

Parametrem hView m∙₧e b²t bu∩ konstanta NULL (NIL ve vnit°nφm jazyce, NULL_WINDOW_ID v Pascalu), nebo prom∞nnß. V druhΘm p°φpad∞ funkce zapφÜe do tΘto prom∞nnΘ identifikaci otev°enΘho formulß°e a tuto prom∞nnou si zapamatuje. Jakmile bude formulß° uzav°en, WinBase602 zapφÜe do tΘto prom∞nnΘ nulu. Dφky tomu m∙₧e program snadno zjistit, ₧e u₧ivatel uzav°el n∞kter² formulß°.

Poloha, rozm∞ry, barva a obsah okna jsou dßny jeho definicφ.

Pokud se ve formulß°i provede p°φkaz RETURN, jeho argument se p°edß oknu hlavnφmu oknu WinBase602 ve zprßv∞ WM_COMMAND. Tuto zprßvu si pak m∙₧e ve vnit°nφm jazyce vyzvednout funkce Get_message.

Hodnota funkce

V p°φpad∞ ·sp∞chu funkce vracφ identifikaci otev°enΘho formulß°e, p°i ne·sp∞chu vrßtφ nulu.

P°φklad

otev°enφ a zav°enφ needitovatelnΘho formulß°e

Open_view("*FORM1", NO_REDIR, NO_INSERT+NO_DELETE,0,0,id_FORM1); 
...
Close_view(id_FORM1);

otev°enφ formulß°e na zßznamu s Φφslem rec, program ve smyΦce Φekß na zav°enφ od u₧ivatele

Open_view("*FORM1",NO_REDIR,MODAL_VIEW+NO_MOVE,-rec,0,id_FORM1); 
repeat Peek_message until id_FORM1 = 0;

otev°enφ formulß°∙ synchronizovan²ch trvale na stejn² zßznam

Open_view("*form1",NO_REDIR,0,20,0,id1);
Open_view("*form2",NO_REDIR,PARENT_CURSOR,0,id1,id2);
Register_rec_syn(id1,id2);
...

Viz