Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
/*****************************************************************************
*									     *
*                             Subor ERROR.C                                  *
*									     *
*****************************************************************************/
 
#include <stdio.h>
#include <stdlib.h>
 
#include "key.h"
#include "glob.h"
#include "okno.h"
#include "video.h"
#include "menu.h"
#include "util.h"
#include "slov_fon.h"
#include "error.def"
#include "error.h"
 
 
 
//************************************************************************//
// ERROR                                                                  //
//                                                            30.10.1997  //
//************************************************************************//
 
void error(int i)
{
 chybove_okno(chyba[i]);
}
 
 
//************************************************************************//
// CHYBOVE_OKNO								  //
//                                                            30.10.1997  //
//************************************************************************//
 
void chybove_okno(char *sprava[])
{
 register int i=0;
 int vyska;
 int sirka;
 int zx;
 int zy;
 vyska=zisti_vysku_chyby(sprava);
 sirka=zisti_sirku_chyby(sprava);
 zx=(_stlpcov-sirka)/2;
 zy=(_riadkov-vyska)/2-1;
 if(otvor_okno(zx,zy,zx+sirka,zy+vyska,atributy[17],atributy[18],2)==FALSE)
	neodstranitelna_chyba();
 tlac_riadok_help(" ~ENTER ~ESC n vrat",atributy[4],atributy[5]);
 while(*sprava!=NULL)
	tlac_retazec(zx+1,zy+1+(i++),atributy[17],*sprava++);
 pip();
 do i=key();
 while(i!=ENTER && i!=ESC);
 zatvor_okno();
}
 
 
//************************************************************************//
// HLASKY                                                                 //
//                                                            30.10.1997  //
//************************************************************************//
 
void hlasky(char *sprava[])
 
{
 register int i=0;
 int vyska;
 int sirka;
 int zx;
 int zy;
 vyska=zisti_vysku_chyby(sprava);
 sirka=zisti_sirku_chyby(sprava);
 zx=(_stlpcov-sirka)/2;
 zy=(_riadkov-vyska)/2-3;
 if(otvor_okno(zx,zy,zx+sirka,zy+vyska,atributy[20],atributy[21],2)==FALSE)
	neodstranitelna_chyba();
 tlac_riadok_help(" ~ENTER ~ESC n vrat",atributy[4],atributy[5]);
 while(*sprava!=NULL)
	tlac_retazec(zx+1,zy+1+(i++),atributy[20],*sprava++);
 pip();
 do i=key();
 while(i!=ENTER && i!=ESC);
	zatvor_okno();
}
 
 
//************************************************************************//
// NEODSTRANITELNA_CHYBA						  //
//                                                            30.10.1997  //
//************************************************************************//
 
void neodstranitelna_chyba(void)
{
 nastav_video_mod(0x02);
 printf("\n\nNeodstranitelna chyba !!!\n\7");
 exit(1);
}
 
//************************************************************************//
// ZISTI_SIRKU_CHYBY							  //
//                                                            30.10.1997  //
//************************************************************************//
 
int zisti_sirku_chyby(char *polozky[])
{
 register int i=0,j;
 int max=0;
 char *p;
 
 while(polozky[i] != 0)
	{
	j=0;
	p=polozky[i];
	i++;
	while(*p++!='\0')
		j++;
	if(j>max)
		max=j;
	}
 return max+2;
}
 
//************************************************************************//
// ZISTI_VYSKU_CHYBY							  //
//                                                            30.10.1997  //
//************************************************************************//
 
int zisti_vysku_chyby(char *polozky[])
{
 register int i=0;
 
 while(polozky[i++]!=NULL);
 return i+1;
}
 
/*----------------------------------END-------------------------------------*/