Reset_view

Internφ programovacφ jazykC/C++Pascal

procedure Reset_view(hView : window_id; intrec : trecnum; extent : short);
void Reset_view(window_id hView, trecnum intrec, int extent);
procedure Reset_view(hView : window_id; intrec : trecnum; extent : integer);

Parametry

hView identifikace (handle) formulß°e
intrec internφ (po°adovΘ) Φφslo zßznamu ve formulß°i
extent rozsah akcφ

Popis

Procedura Reset_view uvßdφ do souladu obsah formulß°e na obrazovce s obsahem databßze: p°itom data v databßzφ urΦujφ, co bude na obrazovce, nikoli naopak. Funkce se volß potΘ, co program nebo Φinnost u₧ivatele v jinΘm formulß°i zp∙sobily, ₧e obsah formulß°e ji₧ neodpovφdß obsahu databßze.Procedu°e odpovφdß ekvivalentnφ metoda formulß°e Reset_view (i kdy₧ p°i d∙slednΘ objektovΘ prßci s formulß°em a zßpisem zm∞n pomocφ slo₧ek formulß°e nenφ aktualizace pot°ebnß).

Aktualizuje se obsah tΘ Φßsti formulß°e hView, kterß obsahuje zßznam Φφslo intrec. Je-li parametr intrec roven -1, pak se aktualizuje cel² obsah okna. U formulß°∙, kterΘ majφ v okn∞ pouze jeden zßznam, se po₧φvß hodnota -1.

Proceduru Reset_view je ·ΦelnΘ volat tehdy, pokud v d∙sledku editaΦnφch akcφ programu (p°epsßnφ, smazßnφ Φi vlo₧enφ) nastane situace, v nφ₧ obsah formulß°e otev°enΘho na obrazovce ji₧ nenφ aktußlnφ.

Parametr extent procedury Reset_view specifikuje rozsah Φinnosti tΘto funkce. Jeho mo₧nΘ hodnoty jsou oznaΦeny konstantami pou₧iteln²mi i z vnit°nφho jazyka:

Z prvnφch t°φ konstant se vybere nejv²Üe jedna a dle pot°eby se seΦte se Φtvrtou nebo pßtou konstantou. Poslednφ dv∞ konstanty se pou₧φvajφ v∞tÜinou samostatn∞.

Pokud byl obsah formulß°e u₧ivatelem zm∞n∞n a nebyl zapsßn do databßze, pak volßnφm Reset_view s konstantou RESET_DELETIONS, RESET_CACHE nebo RESET_CURSOR jsou zm∞ny ztraceny. Pokud chcete zm∞ny zapsat do databßze, musφte p°edem formulß° s obsahem databßze synchronizovat (nap°. standardnφ akcφ Ulo₧it zm∞ny nebo metodou Commit_view).

P°φklad

procedure RestoreBook(code : string[8]);
{*************************************}
// akce 'Vrßcenφ knihy'
var
  cis_exist : integer;
begin
  zrusitAkci := true;
  pomsinp := 'K≤d knihy (pro vrßcenφ)';
  Open_view('*Inputbox',no_redir,MODAL_VIEW,0,0,idinpb); // modßlnφ formulß°
  if not zrusitAkci and 
     Exists(inpcode,cis_exist) then begin    // kontrola existence knihy
       Knihy[cis_exist].kdo := noneshort;
       Knihy[cis_exist].vypujcena := false;        
       Knihy[cis_exist].dat_vyp := nonedate;        
       Knihy[cis_exist].dat_vra := nonedate;        
       Reset_view(idsub,-1,RESET_CONTROLS+RESET_CACHE); 
  end;
end;

Viz