CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Image prostokat

Image prostokat

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Image prostokat

Nowy postprzez Frytek18 » wtorek, 22 maja 2012, 16:50

Kod: Zaznacz cały

void __fastcall TForm1::ImageMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
               prost_s.x = X;
                prost_s.y = Y;
                FPierwszyPro = true;
                FRysuj_pro = true;

Kod: Zaznacz cały
void __fastcall TForm1::ImageMouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
   // kwadrat
    if (narzedzie == 8) {
    Image->Canvas->Pen->Mode = pmNotCopy;
    prost_k.x = X;
    prost_k.y = Y;
    FRysuj_pro = false;
    }

Kod: Zaznacz cały
void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
     case 8:
                     if (FRysuj_pro == true)
    {
           Image->Canvas->Pen->Mode = pmNotXor;
                         //to klucz do wymazywania
      if (FPierwszyPro == false) Prostokat()   ;
                         //wymazuje poprzedni prostokąt
       prost_k.x = X;
       prost_k.y = Y;
       FPierwszyPro = false;
       Prostokat(); //rysuje nowy prostokąt
        }


        break;



Kod: Zaznacz cały
void TForm1::Prostokat(void)       //Do kwaratu procedura
{
Image->Canvas->Pen->Width = suwak->Position;
Image->Canvas->Brush->Style = bsClear;
Image->Canvas->Pen->Style = bsDiagCross;
Image->Canvas->Rectangle(prost_s.x, prost_s.y, prost_k.x, prost_k.y);
}

Panowie jak zrobic aby rysowany kwadrat drugi nie robił sie w negatywie jak najadę na inny kwadrat?
Avatar użytkownika
Frytek18
Homos antropiczny
Homos antropiczny
 
Posty: 60
Dołączył(a): czwartek, 17 maja 2012, 19:05
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: WIN XP 32 bit
Kompilator: Embarcadero RAD Studio 2010 C++
Gadu Gadu: 5032466
    Windows XPFirefox

Re: Image prostokat

Nowy postprzez Cyfrowy Baron » wtorek, 22 maja 2012, 17:54

Przetestuj podany niżej kod i powiedz, czy o to Tobie chodzi, bo zadajesz pytania tak, że nie wiem o co pytasz.

Plik nagłówkowy np. Unit1.h
KOD cpp:     UKRYJ  
private:        // User declarations
        bool FDrawing;
        bool FFirstRect;

        TPoint F1, F2;

        void __fastcall DrawRect();
        void __fastcall DrawRectangle();

Plik źródłowy np. Unit1.cpp
KOD cpp:     UKRYJ  
void __fastcall TForm1::DrawRect()
{
 Image->Canvas->Rectangle(F1.x, F1.y, F2.x, F2.y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DrawRectangle()
{
 DrawRect();

 Image->Canvas->Pen->Mode = pmCopy;

 Image->Canvas->Pen->Width = 5;
 Image->Canvas->Pen->Color - clBlack;
 Image->Canvas->Brush->Style = bsClear;
 //Image->Canvas->Pen->Style = bsDiagCross;
 Image->Canvas->Rectangle(F1.x, F1.y, F2.x, F2.y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{

        F1.x = X;
    F1.y = Y;
        FFirstRect = true;
        FDrawing = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
                  int X, int Y)
{
        F2.x = X;
        F2.y = Y;
        FDrawing = false;

        DrawRectangle();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
        if (FDrawing == true)
        {
           Image->Canvas->Pen->Mode = pmNotXor;
                         //to klucz do wymazywania
          if (FFirstRect == false) DrawRect();
                         //wymazuje poprzedni prostokąt
       F2.x = X;
       F2.y = Y;
           FFirstRect = false;
           DrawRect(); //rysuje nowy prostokąt

        }
}


Nie mogę jednak zmienić koloru pisaka, nie wiem dlaczego.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości