Objekt benutzen, welches versteckt ist



  • Irgendwie hab ich gerade ne Denkblockade, ich denke mal es ist eigentlich ziemlich einfach aber ich komm gerade nicht drauf. Am besten ich poste mal meinen Quellcode:

    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
    // Balken außen
    Canvas->Brush->Color = clBlack;//oben
    Canvas->Rectangle(20,20,500,40);
    Canvas->Brush->Color = clBlack;//unten
    Canvas->Rectangle(20,480,500,500);
    Canvas->Brush->Color = clBlack;//links
    Canvas->Rectangle(20,40,40,480);
    Canvas->Brush->Color = clBlack;//rechts
    Canvas->Rectangle(480,40,500,480);
    // Balken mitte
    Canvas->Brush->Color = clBlack;//oben
    Canvas->Rectangle(95,95,425,115);
    Canvas->Brush->Color = clBlack;//unten
    Canvas->Rectangle(95,405,425,425);
    Canvas->Brush->Color = clBlack;//links
    Canvas->Rectangle(95,115,115,405);
    Canvas->Brush->Color = clBlack;//rechts
    Canvas->Rectangle(405,115,425,405);
    // Balken innen
    Canvas->Brush->Color = clBlack;//oben
    Canvas->Rectangle(170,170,350,190);
    Canvas->Brush->Color = clBlack;//unten
    Canvas->Rectangle(170,330,350,350);
    Canvas->Brush->Color = clBlack;//links
    Canvas->Rectangle(170,190,190,330);
    Canvas->Brush->Color = clBlack;//rechts
    Canvas->Rectangle(330,190,350,330);
    // Balken quer
    Canvas->Brush->Color = clBlack;//oben
    Canvas->Rectangle(250,40,270,190);
    Canvas->Brush->Color = clBlack;//unten
    Canvas->Rectangle(250,350,270,480);
    Canvas->Brush->Color = clBlack;//links
    Canvas->Rectangle(20,250,180,270);
    Canvas->Brush->Color = clBlack;//rechts
    Canvas->Rectangle(350,250,480,270);
    }
    

    Wie mache ich das wen ich z.B. möchte das wenn Spieler 1 oben Links auf die Ecke klickt dort sein Stein erstellt wird. 😕



  • Hallo

    da hast du doch die Positionen der einzelnen Recheckte doch.
    Jetzt must du nur noch in OnMouseUp die einzelnen Rechtecke mit den übergebenen Koordinaten vergleichen

    bool Check(const TRect &Rect, int X, int Y)
    {
      return((Rect.left <= X) && (Rect.right >= X) && (Rect.top <= Y) && (Rect.bottom >= Y));
      }
    
    void __fastcall Form1::OnMouseUp(TObject* Sender, TMouseButton Button, Classes::TShiftState Shift, int X, int Y)
    {
      if (Check(TRect(20,40,40,480), X, Y))
      {
        // Klick in oberes linkes Recheck...
        }
      ...
      }
    

    /Edit : Du brauchst übrigens Pen->Color nur setzen, wenn du es ändern willst.

    bis bald
    akari


Anmelden zum Antworten