Moin zusammen,
ich habe ein Bild in einem
TImage (ImgSono) mit einem unveränderlichen Bild und lege ein zweites, gleich großes transparentes Image drüber, auf dem ich dann zeichne. Das zweite Image wird am Programmstart wir folgt initialisiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Image2.Left := imgsono.left; Image2.top := imgsono.top; Image2.width := imgsono.width; Image2.height := imgsono.height; DoubleBuffered := true; Image2.Canvas.Brush.Color:=$FFFFFF; Image2.Canvas.FillRect(rect(0,0,Image2.Width,Image2.Height)); Image2.Picture.Bitmap.TransparentColor:=$FFFFFF; Image2.Picture.Bitmap.TransparentMode:=tmFixed; Image2.Transparent:=true; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Image2.Canvas.Brush.Color:=$FFFFFF; Image2.Canvas.FillRect(rect(0,0,Image2.Width,Image2.Height)); Image2.canvas.pen.width := 5; Image2.canvas.pen.color := clred; Image2.canvas.moveto(x,y); Image2.canvas.lineto(x2,y2); |
Das funktioniert auch gut. Wenn jetzt der Benutzer aber die Größe von IMGSono (das mit dem unveränderlichen Bild) ändert und ich dann die ganze Prozedur wie oben wieder aufrufe, dann ändert sich zwar die Größe des Image2 (sehe ich daran, dass MouseMove im gesamten Bereich aufgerufen wird), aber ich kann nur auf dem Teil zeichnen, der zu Anfang, beim Programmstart initialisiert wurde, aber nicht auf dem "neuen" Teil.
Weiss einer, woran das liegt ?
Grüße und Dank im voraus,
Zongo
Moderiert von Th69: Code- durch Delphi-Tags ersetzt