Canvasfragen

Wie benutze ich ein Canvas?
Ich habe ein Canvas erstellt. Und einen Button. Beim Button-Action-Event, versuche ich nun in das Canvas zu malen.
canvas1.ForeColor = rgb(200,30,50)
canvas1.DrawLine(1, 1, 100,100)
Aber nicht ein einziger Canvas Befehl funktioniert. Was mache ich falsch?

Ist der Code im Paint event?

Der Code im Action-Event vom Button sollte nur Canvas1.invalidate sein. Das malt das Canvas neu und das Paint-Event vom Canvas auf.

Bitte poste nicht zweimal die gleiche Frage.

Ok, und wie bringe ich diesem Canvas1.invalidate bei was es zeichnen soll?

Canvas1.paint (event) is where canvas draw commands should be used.

swap your code with:
g.forecolor = rgb(200,30,50)
g.drawline 1,1,100,100

g is a graphics object supplied as its passed through in the paint event

Canvas1.invalidate will mark the canvas as dirty causing the contents to be redrawn.

Das Canvas1 ist ein Control im Fenster.
Für das Zeichnen auf dem Bildschirm des Canvas gibt es das Ereignis PAINT.
Dieses Ereignis kann durch unterschiedliche Aktionen ausgelöst werden.
In dem Button kann im ACTION ein Canvas1.invalidate oder ein Canvas1.resfresh stehen. Dann wird alles ausgeführt was in dem Ereignis Canvas1.PAINT enthalten ist.
Wenn z.B. ein Bild auf Canvas1.Backdrop zugewiesen wird, dann wird auch ein PAINT-Ereignis ausgelöst.

Im PAINT-Ereignis wird mit GRAPHICS gearbeitet.
Z.B.: g.DrawString("Hallo Welt", 10, 10)