|
||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Вставьте рисунки factory.bmp, shipping.bmp и finance.bmp с папкиC:\ Program Files \Common Files \ Borland Shared \ Images\ Splash \ 256Color в объекты lmage1, lmage2 и lmage3 соответственно. Вставьте подписи к этим рисункам (см. рис. 1). 8. Запрограммируйте конструктор формы TForm1::TForm1 и функцию _fastcall TForm1::TForm1(TComponenr* Owner): TForm(Owner) { x1 = Image1 -> Left; // Сохраняем начальные координаты x2 = lmage2 -> Left; // левых верхних углов хЗ = lmage3 -> Left; // трех рисунков в форме y = lmage1 -> Тор; }
void Result(info msg) { // Останавливаем таймеры: Form1 -> Timer1 -> Enabled = false; Form1 -> Timer2 -> Enabled = false; // Считываем звуковой файл: if (msg == right) Form1 -> MediaPlayer1 -> FileName = "tada.wav"; else Form1 -> MediaPlayer1 -> FileName = "ding.wav"; // Открываем плеер Form1 -> MediaPlayer1 -> Open(); // Воссоздаем звук Form1 -> MediaPlayer1 -> Play(); // Открываем окно сообщения if (msg = = right) Application -> Меssageвох ("Правильно!", "Сообщения", MB_OK); if (msg = = wrong) Application -> MessageBox ("Hеправильно!", "Сообщения", MB_OK); if (msg = = more) Application -> MessageBox ("Попpo6yйте еще раз!", "Сообщения", MB_OK); Form1 -> Timer1 -> Enabled = true; // Запускаем таймеры Form1 -> Timer2 -> Enabled = true; Form1 -> ProgressBar1->Position = 100; // Индикатор на начало Form1 -> lmage1 -> Left = x1; // Возвращаем рисунки в Form1 -> lmage2 -> Left = x2; // исходное положение Form1 -> lmage3 -> Left = х3; Form1 -> lmage1 -> Top = y; Form1 -> lmage2 -> Top = y; Form1 -> lmage3 -> Top = y; } Функция Result() не является методом класса Form1. Поэтому изменение свойств любых объектов формы в ней происходит путем явного указания имени формы Form1 перед именем соответствующего объекта, например, Form1->Timer1->Enabled. Обеспечьте перетягивание первого рисунка на форме, запрограммировав обработки таких трех событий для объекта lmage1: OnMouseDown (ЕслиНажатьМышь), OnMouseMove (ЕслиТянутьМышь) и OnMouseUp (ЕслиОтпуститьМышь). Для заполнения заготовок приведенных функций воспользуйтесь закладкой Events окна инспектора объектов первого рисунка. void_fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { click = true; // click - это индикатор нажатия на клавишу мыши shift = X; // Запоминаем координату (X;Y) точки shift = Y; // щелканья мышью внутри рисунка }
void_fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (click) { // Если нажата клавиша мыши, изменяем // координаты рисунка на величину // изменения координаты Image1 ->Left = Image1 ->Left + X - shiftX; // у казателя мыши (X;Y) с Image1->Top =Image1->Top +Y-shiftY; // учетом его // смещений в середине }
void_fastcall TForm1::lmage1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, lnt X, int Y) { // Запоминаем, что клавиши мыши отпущенная click - false; } Обратите внимание, что программа не проверяет, на какую именно клавишу мыши нажал пользователь, и потому перетягивание можно осуществлять любой клавишей. Проверить клавиши мыши можно, проанализировав аргумент Button (типа TMouseButton) приведенных функций: Button = {mbLeft (левая клавиша), mbRight (права), mbMiddle (средняя)}. Координаты указателя мыши в пикселях передаются в функции с помощью аргументов X и Y целого типа. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |