In neuer Komponente Shapes einfügen



  • Hallo zusammen,
    ich habe eine Neue Komponente aus TShape erstellt, und möchte darin gerne ein weiteres TShape zeichnen (Komponente soll ein Quadrat und darin ein Kreis zeichnen).
    Theoretisch sollte es auch funktionieren, tut es aber nicht. Ich vermute es liegt daran, das ich den Shapes nicht sagen kann, wer das parent ist. Habt ihr ne Idee wie ich das Problemchen lösen kann??
    Danke im vorraus

    __fastcall TEinbauten::TEinbauten(TComponent* Owner)
            : TShape(Owner)
    {
     Shape1 = new TShape(this);
     Shape2 = new TShape(this);
    
     Shape1->Shape = stRectangle;
     Shape1->Brush->Style = bsSolid;
     Shape1->Pen->Style = psSolid;
     Shape1->Left   = 30;  // nur testwerte
     Shape1->Top    = 30; // nur testwerte
     Shape1->Height = 40; // nur testwerte
     Shape1->Width = 40; // nur testwerte
    
    }
    


  • Shape zwei wird nix zugewiesen?

    Bye, TGGC (Pipe my World.)



  • ich weiss, diesen Code hatte ich zwecks übersichtlichkeit entfernt



  • Hallo

    da du ein Shape nicht als Parent zuweisen kannst, kannst du eigentlich nur die Shapes auf den selben Parent (das Form) stellen und das innere Shape von den Werten her festlegen

    TShape *NewShape;
    
      NewShape = new TShape(this);
      NewShape->Parent = Shape1->Parent;
      NewShape->Left = Shape1->Left + 20;
      NewShape->Top = Shape1->Top + 20;
      NewShape->Width = Shape1->Width - 40;
      NewShape->Height = Shape1->Height - 40;
    

    bis bald
    akari



  • NewShape->Parent = Shape1->Parent;

    Aber genau das ist das Problem, Shape1->Parent kenne ich ja nicht. Da ich nicht weiss wie das parent heisst.



  • Hallo

    es spielt doch keine Rolle, wie der Parent heißt oder was das genau ist. Solange du die Referenz des Parents von äußeren Shape hast, kannst du diesen für andere Controls als Parent benutzen.

    bis bald
    akari


Anmelden zum Antworten