unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ExtCtrls,filectrl, ComCtrls, jpeg; const nrmaxdeintrebari=250; type TForm1 = class(TForm) MainMenu1: TMainMenu; TEST1: TMenuItem; Optiuni1: TMenuItem; Aratatimpul1: TMenuItem; Aratanota1: TMenuItem; Iesire1: TMenuItem; menu1: TMenuItem; Edit1: TEdit; Edit2: TEdit; Clasa1: TMenuItem; XIIB1: TMenuItem; IXb1: TMenuItem; XD1: TMenuItem; IXC1: TMenuItem; XG1: TMenuItem; IXG1: TMenuItem; IXE1: TMenuItem; IXD1: TMenuItem; IXF1: TMenuItem; XC1: TMenuItem; IXSeral1: TMenuItem; lblCeasRamas: TLabel; Timer1: TTimer; Label3: TLabel; Label4: TLabel; lblCeasPornit: TLabel; Ramas1: TMenuItem; Trecut1: TMenuItem; Nuaratatimpul1: TMenuItem; lblCeasTrecut: TLabel; Label5: TLabel; Label6: TLabel; Minima1: TMenuItem; Maxima1: TMenuItem; Raspunsuri1: TMenuItem; A1: TMenuItem; B1: TMenuItem; C1: TMenuItem; D1: TMenuItem; Label7: TLabel; Label1: TLabel; Edit3: TEdit; Label2: TLabel; Label8: TLabel; Label9: TLabel; lstIntrebari: TListBox; lstRaspunsuri: TListBox; Button1: TButton; Memo1: TMemo; rgRaspuns: TRadioGroup; Memo2: TMemo; btnNext: TButton; btnPrev: TButton; lblNrGenerate: TLabel; lblNrIntrebare: TLabel; lstLiteraAleasa: TListBox; lstRaspunsuriCorecte: TListBox; lblNota: TLabel; btnNota: TButton; lblNumeFisierTest: TLabel; lblCaleFisierTest: TLabel; lblTimpulOprit: TLabel; Memo3: TMemo; Despreprogram1: TMenuItem; ComboBox1: TComboBox; ComboBox2: TComboBox; ListBox1: TListBox; lblFormClose: TLabel; TimerRetea: TTimer; ProgressBar1: TProgressBar; lblProgressBar1: TLabel; menu2: TMenuItem; menu3: TMenuItem; menu4: TMenuItem; menu5: TMenuItem; menu6: TMenuItem; menu7: TMenuItem; menu8: TMenuItem; menu9: TMenuItem; menu10: TMenuItem; lblDeLa1LaN: TLabel; Image1: TImage; Despreprogram2: TMenuItem; N1: TMenuItem; Despreprogram3: TMenuItem; NUfunctioneaza1: TMenuItem; Opresteprof1: TMenuItem; txtOpresteProf: TEdit; Aratabutoanele1: TMenuItem; procedure Iesire1Click(Sender: TObject); procedure XIIB1Click(Sender: TObject); procedure IXb1Click(Sender: TObject); procedure XD1Click(Sender: TObject); procedure Edit1DblClick(Sender: TObject); procedure IXC1Click(Sender: TObject); procedure XG1Click(Sender: TObject); procedure IXG1Click(Sender: TObject); procedure IXE1Click(Sender: TObject); procedure IXD1Click(Sender: TObject); procedure IXF1Click(Sender: TObject); procedure XC1Click(Sender: TObject); procedure IXSeral1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure XIITEZA1Click(Sender: TObject); procedure Ramas1Click(Sender: TObject); procedure Trecut1Click(Sender: TObject); procedure Nuaratatimpul1Click(Sender: TObject); procedure A1Click(Sender: TObject); procedure B1Click(Sender: TObject); procedure C1Click(Sender: TObject); procedure D1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure btnNextClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure rgRaspunsClick(Sender: TObject); procedure btnNotaClick(Sender: TObject); procedure btnPrevClick(Sender: TObject); function verificaPornireaTestului(Sender: TObject):boolean; procedure menu1Click(Sender: TObject); procedure MicrosoftWord1Click(Sender: TObject); procedure MicrosoftExcelI1Click(Sender: TObject); procedure MicrosoftExcelII1Click(Sender: TObject); procedure FoxProI1Click(Sender: TObject); procedure FoxProII1Click(Sender: TObject); procedure IXTEZA1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox1Click(Sender: TObject); procedure ComboBox2Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TimerReteaTimer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Despreprogram2Click(Sender: TObject); procedure Despreprogram3Click(Sender: TObject); procedure NUfunctioneaza1Click(Sender: TObject); procedure Opresteprof1Click(Sender: TObject); procedure txtOpresteProfChange(Sender: TObject); procedure Aratabutoanele1Click(Sender: TObject); procedure Image1Click(Sender: TObject); private { Private declarations } public { Public declarations } //se citesc urmatoarele date din fisierul de configurare strFCNumeServer,strNumeCalc:string;//tipul - Fisier de Configurare - nume variabila, si numele calculatorul in c:\my documents\15.calc intDinFisier_NrTotalIntrebari,intDinFisier_NrIntrebari,intDinFisier_NrIntrebariCuPoze,intDinFisier_ProcentDinTimpTrecut:integer;//pentru generalizare si mai mare a programului Grila realDinFisier_PunctajOIntrebare,realDinFisier_DinOficiu:real;//pentru generalizare si mai mare a programului Grila intNumaraClicPeImagine:integer; arrayJpg: array[0..nrmaxdeintrebari]of TImage; bolAiFostSiLaSfarsit,bolAiFostSiLaInceput,bolPotiIesiCuAltF4:boolean;//ver 1.7.0.10 bolAjutor1,bolAjutor2,bolAjutor3:boolean; procedure umpleListaRaspunsuri(var myLstBox:TListBox;cod:string); function timpulAExpirat:boolean; procedure puneinfatanumarulintrebariiinlstraspunsuri; function preaRepedeIncheiTestul:boolean; procedure NemeSystemKeys(cod:char); procedure NemeShowTaskBar(cod:char); end; var Form1: TForm1; intSalvareRetea:word; implementation {$R *.DFM} function tform1.timpulAExpirat:boolean; begin if strtotime(lbltimpuloprit.caption)-(time-strtotime(lblceaspornit.caption))<0 then timpulAExpirat:=true else timpulAExpirat:=false; end; procedure tform1.puneinfatanumarulintrebariiinlstraspunsuri; var i:integer; begin //for i:=0 to intdinfisier_nrintrebari-1 do for i:=0 to intdinfisier_nrtotalintrebari-1 do //ver 1.7.0.6 lstraspunsuri.items.strings[i]:=inttostr(i)+'. '+lstraspunsuri.items.strings[i]; end; function tform1.preaRepedeIncheiTestul:boolean;//ver 1.7.0.10 var pTrecut:real;//procent trecut tTotal,tTrecut:ttime;//timpul total si cel trecut begin tTotal:=strtotime(lblTimpulOprit.caption); tTrecut:=strtotime(lblCeasTrecut.caption);pTrecut:=tTrecut*100 / tTotal; if timpulAExpirat then preaRepedeIncheiTestul:=false else if pTrecut opresti timer1 preaRepedeIncheiTestul:=false; // timer1.enabled:=false; //end; end; procedure TForm1.Iesire1Click(Sender: TObject); var msg,clasaNr,clasaLitera,nesalvat,sirbun:string; i:word; acum:tdate; strpchar:pchar; strtmp:string;result:boolean;//pt message box intARaspunslanintrebari:byte; begin bolPotiIesiCuAltF4:=false; if preaRepedeIncheiTestul then exit else bolPotiIesiCuAltF4:=true; //if timer1.enabled=false then bolPotiIesiCuAltF4:=true //else bolPotiIesiCuAltF4:=false; strtmp:='"'+edit2.text+'" chiar doriti sa incheiati testul?'; strpchar:=pchar(strtmp); //sa nu afiseze mesajul doriti sa incheiati daca a expirat timpul //am adaugat in if PRIMA conditie daca am ajuns aici pe timp expirat (s-a oprit timerul) //MA bazez pe "scurtcircuitarea conditiei" - daca prima conditie adevarata atunci nu se mai executa a doua conditie (deci nici apelul vreunei functii din conditie) if (timer1.enabled=false)or(Application.MessageBox(strpchar,'Terminarea testului',MB_YesNo + MB_DEFBUTTON2+mb_iconquestion)=IDYes) then begin timer1.Enabled :=false;//trebuie si aici timer1.enabled:=false, NU NUMAI la timer1.exit deoarece pot sa inchei si inainte de expirarea timpului cu buton de iesire (am raspuns si verificat tot) btnNota.click; lstRaspunsuri.items.add(lblNota.caption); //lstRaspunsuri.items.savetofile(lblcalefisier.test); lstraspunsuri.visible:=true; showmessage('Raspunsurile date sunt in lista care a aparut.'+chr(13)+chr(13)+'Raspunsurile "?" completez cu '''+edit3.Text+''' !'); //ver 1.7.0.6 intARaspunsLaNIntrebari:=0;//numar la cate intrebari a raspuns for i:=0 to lstraspunsuri.items.count-1 do if lstraspunsuri.items[i]='?' then inc(intARaspunsLaNIntrebari);//numar la cate nu a raspuns intaraspunslanintrebari:=intdinfisier_nrtotalintrebari-intaraspunslanintrebari;//calculez exact for i:=0 to lstraspunsuri.items.count-1 do //if lstraspunsuri.items[i]='?' then lstraspunsuri.Items[i]:=edit3.text; //ver 1.7.0.6 //sa nu puna peste tot litera "a" (sau b,c,d) ci numai la maxim "intdinfisier_nrintrebari" raspunsuri if (lstraspunsuri.items[i]='?') and (intaraspunslanintrebari'-2') do begin //ver 1.7.0.6 //pornit:=(pornit+1) mod intDinFisier_nrIntrebari; pornit:=(pornit+1) mod intDinFisier_nrtotalIntrebari; end; end; //ver 1.7 if copy(memo1.lines[7*pornit],1,1)='I' then begin //trebuie sa pun imaginea.visible:=true //image1.Picture.loadfromfile(); image1.picture.assign(arrayjpg[pornit].Picture); image1.visible:=true; label4.visible:=true; memo2.visible:=false; end else begin //trebuie sa pun memo2.visible:=true memo2.visible:=true; image1.visible:=false;label4.visible:=false; end; lblNrgenerate.caption:=inttostr(pornit); lstIntrebari.items.strings[pornit]:=lblNrIntrebare.caption; //memo2.Text :=memo1.lines[7*pornit]; memo2.Text :=copy(memo1.lines[7*pornit],2+pos('.',memo1.lines[7*pornit]),length(memo1.lines[7*pornit])); i:=0;gasit:=false; opreste:=false; j:=length(lblnrgenerate.caption); while (i<=memo3.lines.count-2) and not opreste do begin if gasit then memo2.Lines.add(memo3.lines[i]); if copy(memo3.lines[i],1,j)=lblnrgenerate.Caption then gasit:=true; if (memo3.lines[i+1]='')and gasit then opreste:=true; i:=i+1; end; for i:=1 to 4 do begin //rgraspuns.items[(i+ms)mod 4]:=copy(memo1.lines[7*pornit+i],1,length(memo1.lines[7*pornit+i])); rgraspuns.items[(i+ms)mod 4]:=copy(memo1.lines[7*pornit+i],3,length(memo1.lines[7*pornit+i])); lstLiteraAleasa.items[(i+ms)mod 4]:=copy(memo1.lines[7*pornit+i],1,1); end; if paznic then begin rgraspuns.itemindex:=-1; btnNext.enabled:=false; btnPrev.enabled:=false; if not aratabutoanele1.checked then begin btnNext.visible:=false; btnPrev.visible:=false;end; end else begin//gaseste ce raspuns am dat inainte!!!, fiindca am mai trecut o data pe aici for i:=0 to lstLiteraAleasa.Items.count-1 do begin if lstliteraaleasa.items.strings[i]=lstraspunsuri.items.strings[pornit] then rgraspuns.ItemIndex :=i; end; if lblNrIntrebare.caption = inttostr(intDinFisier_nrIntrebari-1) then begin btnNext.enabled:=false; if not aratabutoanele1.checked then btnnext.visible:=false; end else begin btnNext.enabled:=true; if not aratabutoanele1.checked then btnnext.visible:=true; end; btnprev.enabled:=true; if not aratabutoanele1.checked then btnprev.visible:=true; end; //ver 1.7.0.8 inainte sa calculeze nota temporara in fisierul temporar "pune +" in lstRaspunsuriCorecte daca a fost "-" if lstRaspunsuriCorecte.Items.strings[pornit]='-' then lstRaspunsuriCorecte.items.strings[pornit]:='+'; //ver 1.5.0 salveaza nota in fisier txt local btnNota.click; //ver 1.7.0.6 //lstraspunsuri.items[intDinFisier_nrIntrebari]:=lblNota.Caption ; lstraspunsuri.items[intDinFisier_nrtotalIntrebari]:=lblNota.Caption ; clasaNr:=copy(edit1.text,1,pos(' ',edit1.text)-1); clasaLitera:=copy(edit1.text,pos(' ',edit1.text)+1,length(edit1.text)); nesalvat:='TMP '+lblNrIntrebare.caption+' '; lstRaspunsuri.items.savetofile('c:\temp\lucrari\'+clasanr+'\'+clasalitera+'\'+nesalvat+form1.caption+' Nota='+lblNota.caption+'.txt'); label4.caption:=memo2.text;//ver 1.7.0.10 pentru afisarea mesajului explicativ la imagine intNumaraClicPeImagine:=-1;image1click(image1); end; procedure TForm1.btnPrevClick(Sender: TObject); var i,h,m,s,ms,pornit,j:word; gasit,opreste:boolean; begin lblNrIntrebare.caption:=inttostr(strtoint(lblNrIntrebare.caption)-1);lblDeLa1LaN.caption:=inttostr(strtoint(lblNrIntrebare.caption)+1)+' din '+inttostr(intdinfisier_nrintrebari); decodetime(time,h,m,s,ms); //ver 1.7.0.6 //ms:=ms mod (intDinFisier_nrIntrebari-1) + 1; pornit:=0; ms:=ms mod (intDinFisier_nrtotalIntrebari-1) + 1; pornit:=0; while (lstIntrebari.items.strings[pornit]<>lblNrIntrebare.caption) do begin //ver 1.7.0.6 //pornit:=(pornit+1) mod intDinFisier_nrIntrebari; pornit:=(pornit+1) mod intDinFisier_nrtotalIntrebari; end; lblNrgenerate.caption:=inttostr(pornit); lstIntrebari.items.strings[pornit]:=lblNrIntrebare.caption; memo2.Text :=copy(memo1.lines[7*pornit],2+pos('.',memo1.lines[7*pornit]),length(memo1.lines[7*pornit])); //ver 1.7 if copy(memo1.lines[7*pornit],1,1)='I' then begin //trebuie sa pun imaginea.visible:=true image1.picture.assign(arrayjpg[pornit].Picture); image1.visible:=true;label4.visible:=true; memo2.visible:=false; end else begin //trebuie sa pun memo2.visible:=true memo2.visible:=true; image1.visible:=false;label4.visible:=false; end; i:=0;gasit:=false; opreste:=false; j:=length(lblnrgenerate.caption); while (i<=memo3.lines.count-2) and not opreste do begin if gasit then memo2.Lines.add(memo3.lines[i]); if copy(memo3.lines[i],1,j)=lblnrgenerate.Caption then gasit:=true; if (memo3.lines[i+1]='')and gasit then opreste:=true; i:=i+1; end; for i:=1 to 4 do begin rgraspuns.items[(i+ms)mod 4]:=copy(memo1.lines[7*pornit+i],3,length(memo1.lines[7*pornit+i])); lstLiteraAleasa.items[(i+ms)mod 4]:=copy(memo1.lines[7*pornit+i],1,1); end; for i:=0 to lstLiteraAleasa.Items.count-1 do begin if lstliteraaleasa.items.strings[i]=lstraspunsuri.items.strings[pornit] then rgraspuns.ItemIndex :=i; end; if lblNrIntrebare.caption='0' then begin btnPrev.enabled:=false; if not aratabutoanele1.checked then btnprev.visible:=false; if bolAiFostSiLaSfarsit then bolAiFostSiLaInceput:=true; end; btnnext.enabled:=true;//adaugat la ver 1.7 if not aratabutoanele1.checked then btnnext.visible:=true; label4.caption:=memo2.text;//ver 1.7.0.10 pentru afisarea mesajului explicativ la imagine intNumaraClicPeImagine:=-1;image1click(image1); end; procedure Tform1.umpleListaRaspunsuri(var myLstBox:TListBox;cod:string); var i:integer; begin myLstBox.clear; //ver 1.7.0.6 //for i:=1 to intDinFisier_NrIntrebari do begin for i:=1 to intdinfisier_nrtotalintrebari do begin myLstBox.items.add(cod); end; end; procedure TForm1.FormActivate(Sender: TObject); var f:textfile; strTmp,cate:string; i:byte; begin //xiiteza1.click; intSalvareRetea:=1; intNumaraClicPeImagine:=-1; //bolaexpirattimpul:=false;//am pus in comentariu la ver 1.7.0.10 bolAiFostSiLaSfarsit:=false; bolAiFostSiLaInceput:=false;//ver 1.7.0.10 bolAjutor1:=false;bolAjutor2:=false;bolAjutor3:=false; //initFisierConfigurare; strTmp:=extractfilepath(application.exename)+'configGrila.gen'; assignfile(f,strtmp); reset(f);combobox1.clear; readln(f,strFCNumeServer);//numele serverului readln(f,cate);//clase for i:=1 to strtoint(cate) do begin readln(f,strtmp); combobox1.items.add(strtmp); end; readln(f,cate);//teste for i:=1 to strtoint(cate) do begin readln(f,strtmp); case i of 1:begin menu1.caption:=strtmp; menu1.visible:=true;end; 2:begin menu2.caption:=strtmp; menu2.visible:=true;end; 3:begin menu3.caption:=strtmp; menu3.visible:=true;end; 4:begin menu4.caption:=strtmp; menu4.visible:=true;end; 5:begin menu5.caption:=strtmp; menu5.visible:=true;end; 6:begin menu6.caption:=strtmp; menu6.visible:=true;end; 7:begin menu7.caption:=strtmp; menu7.visible:=true;end; 8:begin menu8.caption:=strtmp; menu8.visible:=true;end; 9:begin menu9.caption:=strtmp; menu9.visible:=true;end; 10:begin menu10.caption:=strtmp; menu10.visible:=true;end; end; end; closefile(f); end; procedure TForm1.rgRaspunsClick(Sender: TObject); begin if lblnrintrebare.caption<>'-1' then //la primul apel, la pornirea testului este //lblnrintrebare.caption<>'-1' si sa nu scrie nici un raspuns in lstRaspunsuri //1.2.1lstraspunsuri.Items.strings[strtoint(lblnrgenerate.Caption)]:=lstliteraaleasa.items.strings[rgraspuns.itemindex];//1.2.1 lstraspunsuri.Items[strtoint(lblnrgenerate.Caption)]:=lstliteraaleasa.items[rgraspuns.itemindex];//1.3.0 if lblnrintrebare.caption<>inttostr(intDinFisier_Nrintrebari-1) then begin btnnext.enabled:=true; if not aratabutoanele1.checked then btnnext.visible:=true; end else begin btnnext.enabled:=false; bolAiFostSiLaSfarsit:=true; if not aratabutoanele1.checked then btnnext.visible:=false; end; if lblnrintrebare.caption<>'0' then begin btnprev.enabled:=true; if not aratabutoanele1.checked then btnprev.visible:=true; end else begin btnprev.enabled:=false; if not aratabutoanele1.checked then btnprev.visible:=false; end;end; procedure TForm1.btnNotaClick(Sender: TObject); var i:integer; notacalculata:real; begin notacalculata:=realDinFisier_DinOficiu; //ver 1.7.0.6 //for i:=1 to intDinFisier_NrIntrebari do begin for i:=1 to intDinFisier_NrtotalIntrebari do begin if (lstRaspunsuriCorecte.items[i-1]='+') or // a fost -, insa am schimbat din cauza ca face random (ver 1.7.0.8) intrebarile si in timp ce raspunde la o intrebare cu "-" in fisierul de intrebari in lstRaspunsuri corecte pune "+" si la cele care nu au fost intrebate ramane "-" (lstRaspunsuri.Items[i-1]=lstRaspunsuriCorecte.items[i-1]) then notacalculata:=notacalculata+realDinFisier_PunctajOIntrebare; end; lblNota.caption:=floattostr(notacalculata); end; function tform1.verificaPornireaTestului(sender:tobject):boolean; var strpchar,strpchar2:pchar; sirbun,strtmp,clasanr,clasalitera:string; acum:tdate; calculeazanotamaxima:real; i,intVfNrPozeIncarcate:byte; begin with form1 do if not bolAjutor1 then Despreprogram3Click(nil); if not bolAjutor2 then NUfunctioneaza1Click(nil); if not bolAjutor3 then Despreprogram2Click(nil); if edit1.text='' then begin showmessage('Imi spuneti va rog in ce clasa sunteti?'); result:=false; end else if edit2.text='' then begin showmessage('Imi ziceti va rog cum va cheama?');result:=false; end else if edit3.text='' then begin showmessage('Completati va rog si a treia cerinta ...');result:=false; end else begin strtmp:='Sunteti in clasa "'+edit1.text+'", '+chr(13)+chr(13)+'va cheama "'+edit2.text+'"'+chr(13)+chr(13)+' si dati testul "'+tmenuitem(sender).caption+'"?'+chr(13)+chr(13); strpchar:=pchar(strtmp); if Application.MessageBox(strpchar,'Verificarea datelor personale',MB_YesNo + MB_DEFBUTTON2 + MB_ICONEXCLAMATION)=IDYes then begin //ver 1.7 - pune pozele in arrayJpg button1.click; intVfNrPozeIncarcate:=0; //for i:=0 to intDinFisier_NrIntrebari-1 do begin //ver 1.7.0.6 for i:=0 to intDinFisier_NrTotalIntrebari-1 do begin arrayJpg[i] := Timage.Create(nil); strtmp:= ExtractFilePath(application.exename) +'\subiecte\'+lblnumefisiertest.caption+'\'+inttostr(i)+'.jpg'; if fileexists(strtmp) then begin arrayJpg[i].picture.LoadFromFile(strtmp); inc(intVfNrPozeIncarcate); end else arrayJpg[i].free(); end; if intVfNrPozeIncarcate<>intDinFisier_NrIntrebariCuPoze then begin showmessage('Eroare la RETEA. NU s-au incarcat decat '+inttostr(intvfnrpozeincarcate)+ ' poze din '+inttostr(intdinfisier_nrintrebaricupoze)+chr(13)+'Reporniti testul!'); halt; end; strNumeCalc:=''; for i:=1 to 99 do if fileexists('C:\my documents\'+inttostr(i)+'.calc') then begin strNumeCalc:=inttostr(i); break;end; if strNumeCalc='' then begin showmessage('Eroare la NUMELE calculatorului. Contactati administratorul de laboratorul de informatica.'+chr(13)+'La acest calculator NU se poata da momentan lucrare!'); halt; end; label3.visible:=false; label4.visible:=false; edit1.visible:=false; combobox1.visible:=false; label7.visible:=false; edit2.visible:=false; combobox2.visible:=false; label1.visible:=false; edit3.visible:=false; listbox1.visible:=false; label2.visible:=false; //showmessage( FormatDateTime('hh:mm:ss',time)); //decodetime(time,h,m,s,ms); //lblCeasPornit.caption:=inttostr(h)+':'+inttostr(m)+':'+inttostr(s);//timetostr(time); //lblCeasPornit.caption:=timetostr(time); test1.enabled:=false; form1.caption:='('+strNumeCalc+') '+edit1.text+' '+edit2.text+' '+tmenuitem(sender).caption; //ver 1.5.1 acum:=now; sirbun:=formatdatetime('yyyymmdd',acum); clasaNr:=copy(edit1.text,1,pos(' ',edit1.text)-1); clasaLitera:=copy(edit1.text,pos(' ',edit1.text)+1,length(edit1.text)); if fileexists('c:\temp\lucrari\'+clasanr+'\'+clasalitera+'\'+sirbun+' '+form1.caption+'.txt') or fileexists('c:\temp\lucrari\'+clasanr+'\'+clasalitera+'\NS '+sirbun+' '+form1.caption+'.txt') then begin showmessage('Astazi '+datetostr(now)+', '+edit2.text+' a mai dat o lucrare! NU se mai poate da inca o data :-('); lblFormClose.caption:='Iesire'; bolPotiIesiCuAltF4:=true; form1.close; end else begin //button1.click;//mutat si mai sus in versiunea 1.7.0.4 raspunsuri1.enabled:=false; clasa1.enabled:=false; label2.visible:=false; label8.visible:=false; label9.Visible :=false; calculeazanotamaxima:=realdinfisier_dinoficiu+intdinfisier_nrintrebari*realdinfisier_punctajointrebare; showmessage(edit2.text+' sa obtineti nota maxima ('+floattostr(calculeazanotamaxima)+').'+chr(13)+chr(13)+' Va urez succes!'); memo2.Visible :=true; rgRaspuns.visible:=true; //btnPrev.visible:=true; btnNext.visible:=true;//comentariu in ver. 1.7.2.2 lblNota.caption:=floattostr(realdinfisier_dinoficiu);//'2'; aratatimpul1.enabled:=true; //button1.click;//mutat cu cateva randuri mai sus in versiunea 1.6.3.3 btnnext.click; iesire1.Enabled :=true; opresteprof1.enabled:=true; lblCeasPornit.caption:=FormatDateTime('hh:mm:ss',time); timer1.enabled:=true; timer1timer(timer1); ramas1.click; lbldela1lan.visible:=true; NemeSystemKeys('t'); NemeShowTaskBar('f'); //ver 1.7.2.0 result:=true; end end else result:=false;//if ApplicationMessageBox end; end; procedure TForm1.menu1Click(Sender: TObject); begin lblnumefisiertest.caption:=tmenuitem(sender).caption; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.MicrosoftWord1Click(Sender: TObject); begin lblnumefisiertest.caption:='MW'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.MicrosoftExcelI1Click(Sender: TObject); begin lblnumefisiertest.caption:='MEI'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.MicrosoftExcelII1Click(Sender: TObject); begin lblnumefisiertest.caption:='MEII'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.FoxProI1Click(Sender: TObject); begin lblnumefisiertest.caption:='FPI'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.FoxProII1Click(Sender: TObject); begin lblnumefisiertest.caption:='FPII'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.IXTEZA1Click(Sender: TObject); begin lblnumefisiertest.caption:='Test'; if verificaPornireaTestului(sender) then begin end; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin //showmessage('on change'); end; procedure TForm1.ComboBox1Click(Sender: TObject); var i:integer; begin //showmessage('on click'); //label7.visible:=false; label1.visible:=false; combobox2.enabled:=false; //listbox1.visible:=false; edit1.text:=combobox1.text; listbox1.itemindex:=-1; edit2.text:='';edit3.text:=''; combobox2.text:=''; if fileexists(ExtractFilePath(application.exename) +edit1.text+'.gen') then begin //label7.visible:=true; combobox2.clear; combobox2.enabled:=true; combobox2.items.loadfromfile(ExtractFilePath(application.exename) +edit1.text+'.gen'); combobox2.setfocus; end; end; procedure TForm1.ComboBox2Click(Sender: TObject); begin //label1.visible:=true; listbox1.visible:=true; edit2.text:=combobox2.text; listbox1.SetFocus; end; procedure TForm1.ListBox1Click(Sender: TObject); begin edit3.text:=listbox1.items.strings[listbox1.itemindex]; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if lblFormClose.caption<>'Iesire' then//ca sa NU se apeleze recursiv iesirea! iesire1.click; if bolPotiIesiCuAltF4 then begin//ver. 1.7.0.10 ca sa nu iasa cu Alt+F4 fara sa respecte conditiile showmessage('Calculatorul (programul) a raspuns perfect la toate comenzile primite'+chr(13)+chr(13)+'si din punctul lui de vedere a terminat lucrarea cu succes!'); Action := caFree; NemeSystemKeys('f'); NemeShowTaskBar('t');//ver 1.7.2 end else begin showmessage('NU este frumos ce faci '+combobox2.text+' ! (Alt+F4)'+chr(13)+chr(13)+'Te rog sa continui lucrarea!'); Action := caNone; end;end; procedure TForm1.TimerReteaTimer(Sender: TObject); begin inc(intSalvareRetea); ProgressBar1.Position := intsalvareretea; lblProgressbar1.font.color:=sqr(intsalvareretea*250); if intSalvareRetea>=15 then begin timerretea.enabled:=false; progressbar1.Visible :=false;lblprogressbar1.Visible :=false; end; end; procedure TForm1.Button2Click(Sender: TObject); begin //if imagelist1.fileload(rtbitmap,'c:\temp\1.bmp',claqua) then begin // showmessage('Am incarcat'); //image2.Picture.Bitmap :=imagelist1.bitmap; //end else showmessage('NU am incarcat'); end; procedure tform1.NemeSystemKeys(cod:char); var OldVal : LongInt; disable:boolean; begin if cod='t' then disable:=true else disable:=false; SystemParametersInfo (SPI_SCREENSAVERRUNNING, Word(Disable), @OldVal, 0); end; procedure tform1.NemeShowTaskBar(cod:char); begin if cod = 't' then ShowWindow(FindWindow ('Shell_TrayWnd',nil), SW_SHOWNA) else ShowWindow(FindWindow ('Shell_TrayWnd',nil), SW_HIDE); end; procedure TForm1.Despreprogram2Click(Sender: TObject); begin bolAjutor3:=true; showmessage('Este versiunea 1.7.2'+chr(13)+chr(13)+'Fiti un bun ascultator.'+chr(13)+chr(13)+'prof. Nemecsek'+chr(13)+'web: www.tehnoinfo.as.ro'+chr(13)+'email: tehnoinfo@as.ro'); end; procedure TForm1.Despreprogram3Click(Sender: TObject); begin bolAjutor1:=true; showmessage('(1.) Daca nu vedeti in partea de jos a ecranului butoanele <<< si >>> atunci prima data dati un raspuns.'+chr(13)+'sau (2.) dati un clic pe imagine (cand este din cauza imaginii, si imaginea sa va micsora daca dati un clic) si verificati ce se intampla la inca un clic!'+chr(13)+chr(13)+'( 3.) Mesajul dintre butoane va indica la a catea intrebare sunteti si cate sunt in total.'+chr(13)+chr(13)+'(4.) Dupa ce raspundeti la intrebare puteti merge mai departe sau sa reveniti la intrebarea anterioara'+chr(13)+'(exceptie prima si ultima intrebare).'+chr(13)+chr(13)+'(5.) Se incheie testul daca apasati pe TERMINARE. Daca dati din greseala "TERMINARE", acum nu se va incheie direct, ci o sa fiti intrebati daca chiar doriti sa iesit ori ba.'); end; procedure TForm1.NUfunctioneaza1Click(Sender: TObject); begin bolAjutor2:=true; showmessage('Din cauze de securitate NU functioneaza urmatoarele combinatii de taste:'+chr(13)+chr(13)+'Ctrl+Alt+Del, Alt+Tab, Ctrl+Esc'+chr(13)+chr(13)+'si nu se "vede" nici bara de programe.'+chr(13)+chr(13)+'email producator: tehnoinfo@as.ro'); end; procedure TForm1.Opresteprof1Click(Sender: TObject); begin txtopresteprof.text:=''; opresteprof1.checked:= not opresteprof1.checked; txtopresteprof.visible:=opresteprof1.checked; if txtopresteprof.visible then txtopresteprof.setfocus(); end; procedure TForm1.txtOpresteProfChange(Sender: TObject); begin if txtopresteprof.text='legyenjo' then begin NemeSystemKeys('f'); NemeShowTaskBar('t'); end;end; procedure TForm1.Aratabutoanele1Click(Sender: TObject); begin aratabutoanele1.checked:=not aratabutoanele1.checked; if timer1.enabled and aratabutoanele1.checked then begin //btnprev.visible:=aratabutoanele1.checked; btnnext.visible:=aratabutoanele1.checked; btnprev.visible:=true; btnnext.visible:=true; end; end; procedure TForm1.Image1Click(Sender: TObject); begin if image1.visible then begin //utilizatorul a dat clic pe imagine - vrea schimbari! inc (intNumaraClicPeImagine); with TJPEGImage(Image1.Picture.Graphic) do Scale := TJPEGScale(intNumaraClicPeImagine mod 2); //showmessage(inttostr(image1.width)+':'+inttostr(image1.height)); rgRaspuns.top:=image1.top+image1.height; end else begin rgRaspuns.top:=memo2.top+memo2.height+10; end; btnprev.top:=rgraspuns.top+rgraspuns.Height+12;btnnext.top:=btnprev.top; lbldela1lan.top:=btnprev.top+5; end; end.