Текст программы
void __fastcall TForml::Mina(int x, int y) { Canvas › Brush › Color = clGreen; Canvas › Pen › Color = clBlack; Canvas › Rectangle(x+16,y+26,x+24,y+30); // корпус Canvas › Rectangle(x+8,y+30,x+32,y+34); Canvas › Pie(x+6,y+28,x+34,y+44,x+34,y+36,x+6,y+36); // полоса на корпусе Canvas › MoveTo(x+12,y+32); Canvas › LineTo(x+28,y+32); // основание Canvas › MoveTo(x+8,y+36); Canvas › LineTo(x+32,y+36); // вертикальный "ус" Canvas › MoveTo(x+20,y+22); Canvas › LineTo(x+20,y+26); // боковые "усы" Canvas › MoveTo(x+8, y+30); Canvas-XLineTo(x+6,y+28); Canvas › MoveTo(x+32,y+30); Canvas › LineTo(x+34,y+28); } // рисует флаг void __fastoall TForml::Flag(int x, int y) { TPoint p[4]; // координаты флажка и нижней точки древка // точки флажка р[0].х=х+4; р[0].у=у+4; р[1].х=х+30; р[1].у=у+12; р[2].х=х+4; р[2].у=у+20; // установим цвет кисти и карандаша Canvas › Brush › Color = clRed; Canvas › Pen › Color = clRed; // чтобы контур флажка бил красный Canvas › Polygon(p, 2); // флажок // древко Canvas › Pen › Color = clBlack; Canvas › MoveTo(p[0].x, p[0].у); Canvas › LineTo(x+4,y+36); TPoint m[5]; // буква М m[0].x=x+8; m[0].y=y+14; m[l].x=x+8; m[l].y=y+8; m[2].x=x+10; m[2].y=y+10; m[3].x=x+12; m[3].y=y+8; m[4].x=x+12; m[4].y=y+14; Canvas › Pen › Color = clWhite; Canvas › Polyline(m,4); Canvas › Pen › Color = clBlack; } // команда главного меню Новая игра void__fastcall TForml::NlCllck(TObject *Sender) { NewGame(); ShowPole(status); } // выбор в меню "?" команды О программе void__fastcall TForml::N4Click(TObject *Sender) { AboutForm-ХГор = Forml › Top + Forml › Height/2 – AboutForm › Height/2; AboutForm › Left = Forml › Left + Forml › Width/2 – AboutForm › Width/2; AboutForm › ShowModal(); } // выбор в меню "?" команды Справка void __fastcall TForml::N3Click(TObject *Sender) { WinHelp(Forml › Handle,"saper.hip",HELP_CONTEXT,1); }
Листинг 10.13. Модуль формы О программе (saper2_.cpp)
#include <vcl.h> #pragma hdrstop #include "saper_2.h" #pragma package(smart_init) #pragma resource "*.dfm" TAboutForm *AboutForm; __fastcall TAboutForm::TAboutForm(TComponent* Owner) : TForm(Owner) { } // Выбор URL-адреса void __fastcall TAboutForm::Label5Click(TObject *Sender) { /* В функцию ShellExvte надо передать указатель на null terminated строку (char*). Свойство Caption – это AnsiString. Преобразование Ansi-строки в указатель на nt-строку выполняет метод c_str() */ //, открыть файл, имя которого находится в поле Labels ShellExecute (AboutForm › Handle,"open",Label5 › Caption.c_str(), NULL,NULL,SW_RESTORE); } // щелчок на кнопке QK void __fastcall TAboutForm::ButtonlClick(TObject *Sender) { ModalResult = mrOk; }