Zeichnen



  • ich versuche nur dies umzusetzen was man mir hier rät, wie gesagt mit dem zeichnen hab ich mich beim borland builder oder allgemein mit c++ noch nicht auseinandergesetzt. Deswegen weiß ich auch nicht was am besten wäre oder wie ich vorzugehen habe.



  • Hast du dir die pdf durchgelesen (bzw. durchgearbeitet) die ich dir verlinkt habe?
    Da steht doch beschrieben das du das Zeichnen im OnPaint der Paintbox machen sollst, was du laut deinem Quelltext aber nicht machst.



  • um es nochmal zu verdeutlichen ich habe auf meim ersten Formular dieses hier:

    erstes Formular:
    http://img684.imageshack.us/img684/1770/eingaber.jpg

    koordinaten x und y die ich auf meinem zweiten Formular in Form von Punkten oder die Punkte verbunden durch eine Linie darstellen möchte.

    zweites Formular:
    http://img197.imageshack.us/img197/1496/kreisj.jpg

    Die Koordinaten sind Abweichungen von einem Kreis die ich mit einer Überhöhung (damit es erkenntlich wird) darstellen möchte. Ich habe bereits alles programmiert ich habe auch schon die Koordinaten nachher für meine Darstellung auf dem 2ten Formular mir fehlt nur die Methode wie ich dies zeichnerisch Darstellen kann.



  • hallo braunstein, ja habe ich durchgelesen eventuell auch nicht ganz verstanden... zumindest habe ich es so versucht wie dort beschrieben nur leider hat dies auch nicht funktioniert 😞



  • 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