Zeichnen



  • In dem von dir geposteten Teil des Quelltextes sehe ich keine OnPaint-Funktion deiner Paintbox.
    Wer ruft denn Paintbox_zeichnen auf?



  • ich selber im hauptprogramm ich dachte dies geht, weil wie starte ich dies denn sonst ich hab ja keine Funktion onClick oder irgendwas wie ich diese starten könnte. Dies soll ja alles gestartet werden wenn ich im Form1 auf den Kreis button klicke



  • wie kann ich denn vom "Hauptprogramm" mein OnPaint aufrufen?



  • Du ruftst OnPaint gar nicht auf. Das ist eine Eventfunktion die automatisch immer dann aufgerufen wird wenn ein Neuzeichnen des Fensters nötig ist. Z. Bsp. wenn sich die Größe ändert, wenn das Fenster verdeckt war etc.
    Du kannst das auch veranlassen indem du die Methode Repaint deiner Form aufrufst.



  • also ich habe halt eine Schleife und in jedem Schleifendurchgang soll es mir die OnPaint aufrufen, geht dies dann durch die Repaint???



  • Was ist das denn für eine Schleife? Warum soll bei jedem Schleifendurchgang neu gezeichnet werden?
    Wenn das wirklich so erforderlich ist dann erfüllt repaint den Zweck.
    Es müssen natürlich immer alle notwendigen Zeichenoperationen in OnPaint durchgeführt werden. Welche das sind musst du dir dann schon selber merken.



  • ich hab ne do-while schleife. Bei jedem Schleifendurchgang erechnet diese mir Koordinaten die beim Form2 am besten durch Punkte oder wie jetzt in dem Fall durch aneinanderhängenden Linien dargestellt werden. Meine OnPaint sieht gerade so aus:

    if(i==0)
    {
      Form2->PaintBox1->Canvas->Pen->Color = clRed;
      Form2->PaintBox1->Canvas->MoveTo(x_koor, y_koor);
    }
    else
    {
      Form2->PaintBox1->Canvas->Pen->Color = clRed;
      Form2->PaintBox1->Canvas->LineTo(x_Koor, y_koor);
    }
    

    ich setze die Anfangskoordinate bei i=0 auf den Anfang vom Canvas und dann ist das ende der Linie immer die folgende Koordinate die ich durch die Schleife bekomme



  • Was genau soll die Schleife bezwecken? Willst du die Linien nacheinander malen?
    Wie ich schon vorhin versucht hatte zu erklären wird dein gesamtes Bild in OnPaint gezeichnet. Du musst dort also immer alle Zeichenfunktionen aufrufen die dein Bild benötigt.
    Das bedeutet, das deine Schleife wohl in die OnPaint Funktion rein gehört falls ich dich hier nicht völlig missverstehe.



  • Die Auflösung deiner Abhängigkeiten ist schon, äh, suboptimal ;), gelöst glaube ich. Beschreib´ doch bitte mal, wie deine Anwendung funktionieren soll. Bitte keine technische Beschreibung, sondern eine semantische.



  • ja ich weiß 😃 ist alles bisle komisch aber hab jetzt die komplette Schleife in die OnPaint rein und dies funktioniert 😉 danke an alle und besonders Braunstein 👍


Anmelden zum Antworten