Path: news.cs.au.dk!Morten.Grouleff.Mjolner.Informatics From: Morten Grouleff Newsgroups: daimi.beta Subject: Re: Problem med guienv Date: 22 Apr 1999 13:50:36 +0200 Organization: Mjolner Informatics. Lines: 52 Message-ID: References: <371F0789.2781@cs.au.dk> NNTP-Posting-Host: freki.mjolner.dk Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: xinwen.cs.au.dk 924781836 1573766 255.255.255.255 (22 Apr 1999 11:50:36 GMT) X-Complaints-To: news@cs.au.dk NNTP-Posting-Date: 22 Apr 1999 11:50:36 GMT X-Newsreader: Gnus v5.5/Emacs 19.34 Xref: news.cs.au.dk daimi.beta:10413 Kasper Dupont writes: > Jeg har lavet et pattern, der automatisk foretager noget > initialisering eller oprydning i mit program. f.eks. > > --program: descriptor-- > P(# > do > ... > #); > > Hvor P er defineret i en include fil, som > > P:(# > private: @<>; > do > <>; > INNER; > <>; > #); > > Hvordan bruges dette sammen med GuiEnv? Hvis jeg bruger P inden i > GuiEnv bliver min oprydning kaldt allerede når programmet > starter. Hvis jeg bruger GuiEnv inden i P bliver min oprydning aldrig > kaldt. Guienv er event-baseret. Do-parten af guienv udføres ved opstart af guienv, og guienv "slutter aldrig", dvs. den afgiver ikke kontrollen igen. > Jeg vil ikke ændre mit P pattern, da det bruges og fungerer fint i en > masse kommandolinie programmer. Det er du nødt til. Lav f.eks. P om som flg: P:(# startup: <>; shutdown: <>; private: @<>; do startup; INNER; shutdown; #); Kald P.startup i do-parten af guienv, og kald P.shutdown i onQuit. Afslut dit program ved at kalde terminate et passende sted, i en pushbutton. Der findes sikkert andre løsninger... -- ** Morten Grouleff: ** ** Earthworm Jim PC: ** ** Mjølner Informatics: **