home *** CD-ROM | disk | FTP | other *** search
-
-
- procedure fenster(x1,y1,x2,y2:integer);
- var i:integer;
- begin
- gotoxy(x1-1,y1-1);write(chr(201));
- gotoxy(x2+1,y1-1);write(chr(187));
- gotoxy(x1-1,y2+1);write(chr(200));
- gotoxy(x2+1,y2+1);write(chr(188));
- for i:=x1 to x2 do begin
- gotoxy(i,y1-1); write(chr(205));
- gotoxy(i,y2+1); write(chr(205));
- end;
- for i:=y1 to y2 do begin
- gotoxy(x1-1,i); write(chr(186));
- gotoxy(x2+1,i); write(chr(186));
- end;
- window(x1,y1,x2,y2);
- xxx1:=x1;yyy1:=y1;xxx2:=x2;yyy2:=y2;
- end;
-
- procedure resetfenster;
- begin
- window(1,1,80,25);
- xxx1:=1;xxx2:=80;yyy1:=1;yyy2:=25;
- end;
-
- function hga:boolean;
- begin
- if mem[0:$0463]<>180 then hga:=false else hga:=true;
- end;
-
- procedure hilfe(kontext:integer);
- var einlesen:string[255];
- var x1,x2,y1,y2,zzz:integer;
- begin
- ccx:=wherex; ccy:=wherey;
- x1:=xxx1;x2:=xxx2;y1:=yyy1;y2:=yyy2;
- resetfenster;
- if hga then move(bildschirm_hga,speichere_bild_help,4000)
- else move(bildschirm_cga,speichere_bild_help,4000);
- fenster(2,2,79,23);
- clrscr; einlesen:='';
- assign(textdatei,'karthelp.txt');
- (*$i- *) reset(textdatei); (*$i+ *)
- if ioresult<>0 then
- writeln('Fehler beim Lesen der Datei "KARTHELP.TXT" ')
- else
- begin
- while not(eof(textdatei)) and (einlesen[1]<>chr(kontext+48)) do
- readln(textdatei,einlesen);
- einlesen:=''; zzz:=0;
- while not(eof(textdatei)) and (einlesen[1]<>chr(kontext+49)) do
- begin
- writeln(' ',einlesen);
- zzz:=zzz+1; if zzz=21 then repeat until keypressed;
- readln(textdatei,einlesen);
- end;
- close(textdatei);
- end;
- ant:='°';
- while ant<>chr(27) do read(kbd,ant);
- ant:='°';
- if hga then move(speichere_bild_help,bildschirm_hga,4000)
- else move(speichere_bild_help,bildschirm_cga,4000);
- resetfenster;
- if x2<>80 then fenster(x1,y1,x2,y2);
- gotoxy(ccx,ccy);
- end;
-
-
- procedure weissaufschwarz;
- begin textcolor(white);textbackground(black); end;
-
- procedure schwarzaufweiss;
- begin textcolor(black);textbackground(white); end;
-
- procedure my_readln(var eingabe:sriesig;laenge,helpmen:integer);
- var bst:char; x,y,i:integer;
- begin
- eingabe:='';
- x:=wherex; y:=wherey;
- read(kbd,bst);
- while bst=chr(27) do begin hilfe(helpmen); read(kbd,bst); end;
- if bst<>chr(13) then
- begin
- write('':laenge);
- gotoxy(x,y);
- repeat
- if (bst=chr(8)) and (length(eingabe)>0) then
- begin
- x:=x-1;
- eingabe:=copy(eingabe,1,length(eingabe)-1);
- gotoxy(x,y);write(' ');gotoxy(x,y);
- end
- else if (bst<>chr(8)) and (length(eingabe)<laenge) then
- begin
- eingabe:=eingabe+bst;
- gotoxy(x,y);write(bst);x:=x+1;
- end else for i:=1 to 5 do begin sound(440+i*40); delay(50); nosound; end;
- read(kbd,bst);
- while bst=chr(27) do begin hilfe(helpmen);read(kbd,bst); end;
- until bst=chr(13);
- end;
- writeln;
- end;
-
-
- procedure neuesformular;
- begin
- fenster(47,12,79,23);
- weissaufschwarz;
- clrscr;
- (* sofern vorhanden, gib schon definierte formulare aus *)
- if not(letzter_typ in [nix,voll]) then
- for kt:=a to letzter_typ do
- begin
- clrscr;
- writeln(' F o r m u l a r < ',chr(64+ord(kt)),' >');
- for u:=1 to 5 do
- begin
- writeln;
- write(' Name von Feld ',u,': ');
- schwarzaufweiss;writeln(feldnamen[kt,u]);weissaufschwarz;
- end;
- read(kbd,ant); while ant=chr(27) do begin hilfe(4); read(kbd,ant); end;
- end;
- if letzter_typ=voll then begin
- writeln; writeln;
- writeln(' Keine neuen Formulare möglich !!!');
- read(kbd,ant);
- while ant=chr(27) do
- begin hilfe(4); read(kbd,ant); end;
- end
- else begin
- letzter_typ:=succ(letzter_typ);
- clrscr;
- (* lies die feldnamen fuer das neue Formular ein *)
- writeln(' Eingabe für Formular <',
- chr(64+ord(letzter_typ)),'>');
- gotoxy(1,3);
- for u:=1 to 5 do
- begin
- write(' Name für Feld ',u,': ');
- schwarzaufweiss;
- write('':12);gotoxy(wherex-12,wherey);
- my_readln(eingabe,12,4);
- weissaufschwarz;
- feldnamen[letzter_typ,u]:=eingabe;
- writeln;
- end;
- end;
- resetfenster;
- end;
-
-
-
- procedure neuekarteikarte;
- begin
- schwarzaufweiss;
- clrscr;
- fenster(10,3,70,22);
- weissaufschwarz;
- clrscr;
- (* noetig fuer bubble-sort *)
- kartanz:=kartanz+1;
- (* suche die letzte karte in der liste; dies ist notwendig, *)
- (* da die karten ja umsortiert werden koennen *)
- letzte_karte:=erste_karte;
- while letzte_karte^.naechste<>nil do letzte_karte:=letzte_karte^.naechste;
- new(karte);
- karte^.naechste:=nil;
- if erste_karte=nil then erste_karte:=karte
- else letzte_karte^.naechste:=karte;
- writeln(' Erstellen einer neuen Karteikarte');
- gotoxy(1,3); write(' Formular für diese Karte: ');
- read(kbd,ant);
- while ant=chr(27) do begin hilfe(5); read(kbd,ant); end;
- (* wandele char in kartentyp um *)
- u:=ord(upcase(ant)); kt:=nix; for z:=65 to u do kt:=succ(kt);
- karte^.kartentyp:=kt; writeln;
- (* lies die feldinhalte der neuen karteikarte ein *)
- for u:=1 to 4 do begin
- write(feldnamen[kt,u],': ');
- schwarzaufweiss;
- write('':40); gotoxy(wherex-40,wherey);
- my_readln(eingabe,40,5);
- karte^.inhalt[u]:=eingabe;
- weissaufschwarz;
- end;
- writeln;
- (* lies die 7 textzeilen der neuen karte ein *)
- writeln(feldnamen[kt,5],': ');
- for u:=1 to 7 do begin
- write(' ');
- schwarzaufweiss;
- write('':55);
- gotoxy(wherex-55,wherey);
- my_readln(karte^.inhalt5[u],55,5);
- weissaufschwarz;
- end;
- resetfenster;
- end;
-
-
- procedure editiere_karteikarte(karte:kartenzeiger);
- begin
- schwarzaufweiss;
- resetfenster;
- fenster(10,3,70,22);
- clrscr;
- weissaufschwarz;
- repeat
- clrscr;
- writeln(' Editieren einer Karteikarte');
- gotoxy(1,3); writeln(' Formular für diese Karte: ',
- chr(64+ord(karte^.kartentyp)));
- for u:=1 to 4 do begin
- write(feldnamen[karte^.kartentyp,u],': ');
- schwarzaufweiss;
- write('':40); gotoxy(wherex-40,wherey);
- write(karte^.inhalt[u]);
- weissaufschwarz;
- writeln;
- end;
- writeln;
- writeln(feldnamen[karte^.kartentyp,5],': ');
- for u:=1 to 7 do begin
- write(' ');
- schwarzaufweiss;
- write('':55);
- gotoxy(wherex-55,wherey);
- weissaufschwarz;
- writeln(karte^.inhalt5[u]);
- end;
- gotoxy(28,3);
- read(kbd,ant);
- while ant=chr(27) do begin hilfe(2) ; read(kbd,ant) end;
- writeln;
- if ant<>chr(13) then
- begin
- u:=ord(upcase(ant)); kt:=nix; for z:=65 to u do kt:=succ(kt);
- karte^.kartentyp:=kt;
- end;
- until ant=chr(13);
-
- for u:=1 to 4 do begin
- write(feldnamen[karte^.kartentyp,u],': ');
- schwarzaufweiss;
- my_readln(eingabe,40,2);
- if eingabe<>'' then
- karte^.inhalt[u]:=eingabe;
- weissaufschwarz;
- end;
- writeln;
- writeln(feldnamen[karte^.kartentyp,5],': ');
- for u:=1 to 7 do begin
- weissaufschwarz;
- write(' ');
- schwarzaufweiss;
- my_readln(eingabe,55,2);
- if eingabe<>'' then
- karte^.inhalt5[u]:=eingabe;
- end;
- resetfenster;
- end;
-
-
-
- procedure karten_abspeichern;
- var x,y:integer;
- begin
- if kartanz>0 then
- begin
- fenster(47,14,79,16);
- clrscr;write('Abspeichern der Datei: ');
- x:=wherex;y:=wherey;
- write(datnam);gotoxy(x,y);
- my_readln(eingabe,8,6);if eingabe<>''then datnam:=eingabe;
- if datnam<>'' then
- begin
- assign(formulardatei,datnam+'.frm');
- (*$i- *) rewrite(formulardatei); (*$i+ *)
- if ioresult<>0 then
- begin
- writeln; writeln(' Fehler beim Schreiben der Datei: ');writeln;
- write(' ');schwarzaufweiss;
- write(datnam);weissaufschwarz;
- read(kbd,ant); while ant=chr(27) do begin hilfe(6); read(kbd,ant) end;
- end
- else
- begin
- (* unter der variablen hformular werden die formulare und der zeiger *)
- (* auf das letzte formular vor dem abspeichern auf diskette zusammengefasst *)
- hformular.k1:=feldnamen;
- hformular.k2:=letzter_typ;
- write(formulardatei,hformular); close(formulardatei);
- assign(kartendatei,datnam+'.krt'); rewrite(kartendatei);
- karte:=erste_karte;
- while karte<>nil do begin
- write(kartendatei,karte^);
- karte:=karte^.naechste;
- end;
- close(kartendatei);
- end;
- end;
- resetfenster;
- end;
- end;
-
- procedure karten_laden;
- begin
- (* loesche zuerst schon vorhandene karten *)
- karte:=erste_karte;
- while karte<>nil do begin dispose(karte); karte:=karte^.naechste; end;
- fenster(47,14,79,16);clrscr;datnam:='';
- write('Laden der Datei: '); my_readln(eingabe,8,7); datnam:=eingabe;
- if datnam<>'' then
- begin
- assign(formulardatei,datnam+'.frm');
- (*$i- *) reset(formulardatei); (*$i+ *)
- if ioresult<>0 then
- begin
- writeln; writeln(' Fehler beim Lesen der Datei: ');writeln;
- write(' ');schwarzaufweiss;
- write(datnam);weissaufschwarz;
- read(kbd,ant); while ant=chr(27) do begin hilfe(6); read(kbd,ant) end;
- end
- else
- begin
- read(formulardatei,hformular);
- feldnamen:=hformular.k1; letzter_typ:=hformular.k2;
- close(formulardatei);
- assign(kartendatei,datnam+'.krt'); reset(kartendatei);
- new(karte); karte^.naechste:=nil; erste_karte:=karte; vorgaenger:=nil;
- kartanz:=0;
- while not eof(kartendatei) do
- begin
- kartanz:=kartanz+1;
- read(kartendatei,karte^);
- if vorgaenger<>nil then vorgaenger^.naechste:=karte;
- vorgaenger:=karte; new(karte); karte^.naechste:=nil;
- end;
- dispose(karte); close(kartendatei);
- end;
- end;
- resetfenster;
- end;