назву і ім'я учня - записується в таблицю бази даних - UsersFigures.
Далі наведені основні фрагменти коду відповідають за збереження фігур:
Отримання знімка екрана:
Використовується в обробнику натискання кнопки «Готово» - TfrmDiagnostics.btnCheckClick.
Canva:=TCanvas.Create;:=TBitmap.Create;:=GetDC (0) ;. Handle:=DC; Screen do.Width:=Width; .Height:=Height; .Canvas.CopyRect (Rect (0, 0, Width, Height) ,, Rect (0, 0, Width, Height)) ;. SaveToFile (saveway); (0, DC) ;. Free;
Canva.Free;
Збереження фігури в папку і базу даних:
Використовується в процедурі завершення збереження .Button2Click
DM.tbUsersFigures.Open; (DM.tbUsersFigures.Locate ( usName raquo ;, edFileName.Text, [])) then
begin ( Силует з таким ім'ям вже існує # 13 +
в базі даних. Введіть інша назва # 13, mtWarning, [mbOk], 0) ;. SetFocus ;;;
{* запис у БД імені та посилання для файлу *}
DM.tbUsersFigures.Close; DM.tbUsersFigures do ;; ( userID ). AsString:=InttoStr (User.UserId); ( usName ). AsString:=edFileName.Text;:=laquo;UsersFigureslaquo;+edFileName.Text+raquo;.bmpraquo;;:=schetik+1;.Caption:=inttostr( schetik);
{* запис скріншот екрану в папку *}
Canva:=TCanvas.Create;:=TBitmap.Create;
DC:=GetDC (0);
. Форма «Портфоліо Учнів».
Дана форма спрощено складається з двох кнопок і одного зображення TImage. При запуску форми SQL запитом з БД отримуємо список всіх посилань на фігури, зібраних користувачем. При натисканні кнопки «Вперед» і «Назад» - програма переходить до наступної або попередньої посиланню відповідно і тут же завантажує в TImage картинку з шляху зазначеного на засланні.
Далі наведені основні фрагменти коду форми портфоліо: запит виконуваний при запуску форми -
TfrmSaverFiler.FormCreate: DM.qUsersFigures do; .Clear; .Add ( SELECT userID, usName, usLink, usDate ) ;. Add ( FROM UsersFigures );:=IntToStr ( User.UserId) ;. Add ( WHERE (userID= + ab + ) ) ;. Add ( ORDER BY usDate desc ) ;;;;
Перехід до наступного посилання - кнопка «Наступний» - TfrmSaverFiler.Button2ClickTfrmSaverFiler.Button2Click (Sender: TObject);:string;:=dbgSaverFiler.DataSource.DataSet.Fields[2].AsString;.AutoSize:=False;.Stretch:=True;.Picture.LoadFromFile(way);.Caption:= dbgSaverFiler.DataSource.DataSet.Fields [1] .AsString; .DataSource.DataSet.next ;;
3. Впровадження панелі швидкого перегляду.
Так як дана панель є зменшеним аналогом Портфоліо, то для відображення раніше зібраних фігур були використані ті ж методи, за винятком того, що посилання виходять не з бази даних, а безпосередньо, під час збереження нової фігури. Для цього створено масив створених фігур lastpict, який очищається після виходу з Діагностики:
Фрагмент коду обробки кнопки, що відповідає за збереження фігур ::=numlp + 1;// Збільшуємо число елементів масиву (lastpict, numlp);// Збільшуємо масив [2]:=lastpict [1];// Передвівагем картинки
lastpict [1]:=lastpict [0]; j:=numlp - 1 to 1 do [j]:=lastpict [j - 1];
end; [0]:=saveway;// Прирівнюємо першій картинці - нову.
. Режим Змагання.
Під час проходження діагностики можна натиснути кнопку «Змагання». З'явиться віконце з різними настройками, в числі яких - час змагань. Після натискання «Старт» - запуститься таймер і піде цокаючий відлік часу (у правому верхньому куті буде видно цифровий зворотний відлік). Коли учень зберігає фігуру змінна, що відповідає за число зібраних фігур, інкрементується, а фігури скидаються в початкове положення. Коли час закінчується, всі дані про користувача і про числі зібраних фігур - записуються у БД і тут же виводяться на екран у вигляді зведеної таблиці, де останній отриманий результат - варто нагорі.
Далі наведені фрагменти коду, що відповідають за відлік часу і збереження в БД:
Таймер: TfrmDiagnostics.Timer1Timer (Sender: TObject);:=D2 + 1; .Caption:=FloatTOStr ((vremya-d2));// Цифровий отсчетtikon then PlaySound ( tik.wav raquo ;, 0, SND_ASYNC);// Цокаючий звук (d2=vremya) then begin.Enabled:=false; Click (Self);// Запуск збереження;
: TfrmDiagnostics.Button4Click (Sender: TObject); temp: integer; (dbgDiagnostics.Visible=False )then.Enabled:=False;.Enabled:=false;.Visible:=false;.Visible:=false;.Enabled:=false;(laquo;final.wavraquo;, 0, SND_ASYNC);:=(D2-D1); DM.tbSorev do ;; ( SorevID ). AsString:=InttoStr (User.UserId); ( SorevScore ). AsInteger:=score;(laquo;Sor...