dynamische TShape erstellen und Panel/Grafik/etc zuweisen



  • Hallo!

    Ich habe eine Grafik auf der ich kleines Kreise zeichnen will.
    Anzahl der Kreise lese ich aus und das funktioniert auch.
    Das Zeichnen in einem neuen blanken Projekt geht auch.
    Wenn ich den Code in meinem Zielprojekt verwende sehe ich diese Kreise nicht.

    Woran liegt das?
    Und kann ich die dynamisch erstellten Kreise einem Panel zuweisen, sodass ich später z.B. mit

    PanelXYZ->Visible = false;
    

    Die Grafik samt der Kreise ausblenden kann??

    Mein Code für das erstellen der Kreise:

    DynamicArray <TShape*> GalaxiePunkt;
        GalaxiePunkt.Length = ii; 
    	for(i=0; i<GalaxiePunkt.Length; i++)
    	{
                GalaxiePunkt[i] = new TShape(this);
                GalaxiePunkt[i]->Parent = this;
                GalaxiePunkt[i]->Shape = stCircle;
                GalaxiePunkt[i]->Brush->Color = clWhite;
                GalaxiePunkt[i]->Brush->Style = bsSolid;
                GalaxiePunkt[i]->Pen->Style = psClear;
                GalaxiePunkt[i]->Pen->Color = clBlack;
                GalaxiePunkt[i]->Height = 5;
                GalaxiePunkt[i]->Width = 5;
                GalaxiePunkt[i]->Top = 255+i;
                GalaxiePunkt[i]->Left = 358+i;
                GalaxiePunkt[i]->Visible = true;
                GalaxiePunkt[i]->Tag = 1;
        }
    


  • Hallo

    Das Zeichnen in einem neuen blanken Projekt geht auch.
    Wenn ich den Code in meinem Zielprojekt verwende sehe ich diese Kreise nicht.

    Woran liegt das?

    Dann liegt es an dem was in deinem Zielprojekt noch vorhanden ist.
    Dein Codeauszug jedenfalls gibt keine Hinweise.

    Und kann ich die dynamisch erstellten Kreise einem Panel zuweisen, sodass ich später z.B. mit...

    Siehe FAQ, Abschitt Komponenten benutzen, die Threads über dynamische Arrays von Komponenten.
    (Letztendlich must eben nur dein bereits vorhandenes lokales Array zu einem Member des Forms machen.)

    bis bald
    akari



  • Ich habe in der Form nen TabControl, MessageMemo, Buttons und eine Grafik(Bild).
    Also ich denke das die Kreise erstellt werden, aber hinter den anderen .. keine Ahnung. Könnte das sein?

    Mehr mach ich bis jetzt noch nicht. Ich wollte nur mal schauen ob die Kreise auf der Grafik(in diesem Falle - Form) erscheinen. Bei einem blanken Projekt geht das auch.

    Gruß
    Gästle



  • Wo ist diese FAQ ... ich find da nix ... wo ist der Thread!?!?

    *hilflos guck*



  • Hallo

    Du must als Parent dann nicht this (das Form) sondern das Control angeben wo die Shapes reinsollen. Zum Beispiel eines der TabSheets.

    Ich meine diesen FAQ-Eintrag.

    bis bald
    akari



  • Okay. Habs schon vorher rausgefunden. Trotzdem danke!

    Ein weiteres Problem das ich nicht genau verstehe.

    Thema: Strukturen

    struct Sys
    {
            int Name;
            int Left;
            int Top;
    };
    

    Oben erstelle ich eine einfache Struktur die Name, Left(Position) und Top(Position) enthält.

    DynamicArray<Sys*> System;
    System.Length = ii;
    
    for(i=0;i<ii ; i++)
    {
                *XundY = bold(SystemKoordinaten[i]); // gibt mir einen String zurück der "left:XXXpx;top:XXXpx;..." enthält. 
    // Ziel ist es in der folgenden Zeile, die Werte auszulesen.
                sscanf(*XundY, "left:%dpx;top:%dpx;z-index:%d\" title=\"System %d", &System[i].Left, &System[i].Top, &zindex, &System[i].Name);
    }
    

    Vom logischen Verständis meines begrenzten C/C++ - Wissens muss ich die Struktur mit . ansprechen, oder? Er meckert da aber und möchte das ich . oder .* verwende.

    Wenn ich nun -> verwende gibt es beim Ausführen gleich einen Fehler.
    Kann mir da jemand helfen?

    Vielen Dank



  • Habs.

    Das muss natürlich (?) auch mit

    System[i] = new Sys;
    

    erstellt werden.

    Danke! Super!


Anmelden zum Antworten