1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
//-- Unit2.cpp (Form2)
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//--
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//--
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//-- On Paint de PaintBox1
void __fastcall TForm2::PaintBox1Paint(TObject *Sender)
{
// Un raccourci qui n'est utile que pour simplifier la rédaction
TCanvas *C = PaintBox1->Canvas;
// Propriétés de Brush
C->Brush->Style = bsSolid;
C->Brush->Color = clRed;
// Propriétés de Pen
C->Pen->Style = psSolid;
C->Pen->Mode = pmCopy;
C->Pen->Color = clBlack;
// Un rectangle avec bords
C->Rectangle(0,0,180,180);
// Deux lignes horizontales
C->MoveTo(0, 60); C->LineTo(180, 60);
C->MoveTo(0, 120); C->LineTo(180, 120);
// Deux lignes verticales
C->MoveTo(60, 0); C->LineTo(60, 180);
C->MoveTo(120, 0); C->LineTo(120, 180);
// Propriétés de la fonte
C->Font->Color = clBlack;
C->Font->Size = 24;
// Inutile de redessiner le fond pour chaque caractère
C->Brush->Style = bsClear;
// On déroule le dessin des chiffres centrés dans leur case
AnsiString N;
int x;
int y;
for(int j = 0; j < 9; j++)
{
// Le caractère à afficher
N = IntToStr(j + 1); // de 1 à 9
// Calcul du centre de la case
x = ((j % 3) * 60) + 30;
y = ((j / 3) * 60) + 30;
// Dessin du caractère centré
C->TextOut(x - (C->TextWidth(N) / 2),
y - (C->TextHeight(N) / 2),
N);
}
}
//-- OnMouseDown de PaintBox1
void __fastcall TForm2::PaintBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
// Calcul du chiffre à partir des cases
int x = X / 60;
int y = (Y / 60 ) * 3;
// Memorisation du résultat
Result = x + y + 1;
// On ferme
Close();
}
//-- |
Partager