summaryrefslogtreecommitdiff
path: root/app/schulis-mathematiksystem/1.0/src/mat.druckermenu
blob: 45b036dc6f4f777e5b09544aacc2d28c1d1bd05c (plain)
1
2
PACKETdruckermenuDEFINESdruckeingang,druckezeichnungen,loeschezeichnungen,stellezeichenbreiteein,definieredruckerkanal,stoppedrucker,plottereingestellt:LETdepottaskname="MATHE-PRINTERDEPOT",druckprocindex=1,loeschprocindex=2,untenlinks=3,zentral=5,bell="�",abbruch="!",niltext="",arbeitertaskname="workertask",minimalekanalnr=2,maximalekanalnr=32,text1="Bitte warten bis der letzte Druckauftrag bearbeitet ist.",text2="Drucken von Zeichnungen",text3="Auswahl der Zeichnungen durch ankreuzen",text4="Löschen von Zeichnungen",text5="Sollen die ausgewählten Zeichnungen gelöscht werden",text6="Die Zeichnungen werden gelöscht: ",text7=" Wert zwischen 5.0 cm und ",text8=" cm eingeben! ",text9=" Bitte Zahl zwischen 2 und 32 für Kanalnummer des Druckers eingeben! ",text10="Speicher für Zeichnungen ist nicht eingerichtet.",text11="Ist für die nächste Zeichnung Papier eingelegt",text12="Auswahl einer Zeichnung durch ankreuzen";TEXT VARzeichnungsname;TASK VARarbeitertask,depottask;BOOL VARplotteraktiv:=TRUE;THESAURUS VARauswahl;PROCdruckeingang:IF NOTexiststask(depottaskname)THENerrorstop(text10)END IF;depottask:=/depottaskname;IFhighestentry(ALLdepottask)=0THENdeactivate(druckprocindex);deactivate(loeschprocindex)ELSEactivate(druckprocindex);activate(loeschprocindex)END IF END PROCdruckeingang;PROCdruckezeichnungen:IFexiststask(arbeitertaskname)THENmenuinfo(text(text1,76),untenlinks);LEAVEdruckezeichnungenEND IF;IF NOTplottereingestelltTHENauswahl:=menusome(ALLdepottask,text2,text3,TRUE);IFnotempty(auswahl)THENbegin(arbeitertaskname,PROCzeichnungendrucken,arbeitertask)END IF ELSEzeichnungsname:=menuone(ALLdepottask,text2,text12,TRUE);IFzeichnungsname<>niltextCANDmenuyes(text11,zentral)THENbegin(arbeitertaskname,PROCdruckeeinezeichnung,arbeitertask)END IF END IF END PROCdruckezeichnungen;PROCzeichnungendrucken:disablestop;fetch(auswahl,depottask);plot(auswahl);end(myself)END PROCzeichnungendrucken;PROCdruckeeinezeichnung:disablestop;fetch(zeichnungsname,depottask);plot(zeichnungsname);end(myself)END PROCdruckeeinezeichnung;PROCloeschezeichnungen:IFexiststask(arbeitertaskname)THENmenuinfo(text(text1,76),untenlinks);LEAVEloeschezeichnungenEND IF;auswahl:=menusome(ALLdepottask,text4,text3,TRUE);IF NOTnotempty(auswahl)THEN LEAVEloeschezeichnungenEND IF;IFmenuyes(text5,zentral)THENcommanddialogue(FALSE);footnote(text6);cursor(36,24);erase(auswahl,depottask);commanddialogue(TRUE);oldfootnote;druckeingangEND IF END PROCloeschezeichnungen;PROCstellezeichenbreiteein:LETminimum=5.0;REAL VARmaximum,maxlaenge,breite;INT VARxpixel,ypixel;TEXT VAReingabe;drawingarea(maximum,maxlaenge,xpixel,ypixel);maximum:=floor(maximum);IFendgeraetbreite>maximumTHENendgeraetbreite(maximum)END IF;REPeingabe:=menuanswer(text7+text(maximum)+text8,text(endgeraetbreite),zentral);IFcompress(eingabe)=niltextTHEN LEAVEstellezeichenbreiteeinEND IF;breite:=real(eingabe);IFlastconversionokCANDbreite>=minimumCANDbreite<=maximumTHENendgeraetbreite(breite);LEAVEstellezeichenbreiteeinEND IF;out(bell)END REP END PROCstellezeichenbreiteein;PROCdefinieredruckerkanal:TEXT VAReingabe;INT VARnr;REPeingabe:=menuanswer(text9,text(plotterkanal),zentral);IFcompress(eingabe)=niltextTHEN LEAVEdefinieredruckerkanalEND IF;nr:=int(eingabe);IFlastconversionokCANDnr>=minimalekanalnrCANDnr<=maximalekanalnrTHENplotterkanal(nr);LEAVEdefinieredruckerkanalEND IF;out(bell)END REP END PROCdefinieredruckerkanal;PROCstoppedrucker:IFexiststask(arbeitertaskname)THENend(/arbeitertaskname)END IF END PROCstoppedrucker;PROCplottereingestellt(BOOL CONSTwert):plotteraktiv:=wertEND PROCplottereingestellt;BOOL PROCplottereingestellt:plotteraktivEND PROCplottereingestellt;END PACKETdruckermenu;