Autor Beitrag
Nitr0
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 01.05.08 23:30 
Hallo,
habe mal wieder ein Problem.
Ich zeichne auf ein TImage (Image1) mit Canvas etwas (spielt ja keine Rolle was).
Dann will ich auf Knopfdruck, dass alles gelöscht wird. Also dass Image1 wieder weiß ist.
Als mein Projekt noch klein und unkompliziert war, ging das auch problemlos so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure Button2Click(Sender: TObject)
begin
Image1.Repaint;
end;


Aber irgendwann funktionierte das dann nicht mehr.
Ich habe jetzt alles mögliche ausprobiert, z.B. Refresh, Invalidate etc. Habe sogar probiert Image1 zuerst zu löschen und dann wieder neu zu erstellen (mit Free und Create), aber das funktionierte auch nicht richtig, da er danach nicht mehr darauf zeichnen wollte.
Ich verzweifle da echt dran, weil eine Stunde googlen und hier im Forum suchen auch keine Lösung brachte. Zumal ich den Fehler überhaupt nicht nachvollziehen kann, es hatte ja immer funktioniert.
Wenn ihr den Quelltext für die Lösung bzw. Nachvollziehbarkeit des Fehlers braucht, sagt das, dann stell ihn ihn rein.
Danke schonmal,
Nitr0

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Fr 02.05.08 10:39 
Naja, man muss ja nicht einfach blind probieren. Steht doch bestimmt in der Hilfe, dass Refresh nicht das Bild löscht.

ausblenden Delphi-Quelltext
1:
2:
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Nitr0 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Fr 02.05.08 17:34 
Danke schonmal, ist ja logisch dass es so klappt. Ich habe mich halt gefragt, ob es nicht eine elegantere Lösung gibt, immerhin hatte Repaint ja schon eine zeitlang funktioniert. Mich würde interessieren, wieso es das jetzt nicht mehr tut. :-S
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 07.05.08 13:31 
Wahrscheinlich hast du bisher eine PainBox statt eines Images verwendet.

Bei einer PaintBox wird nämlich beim neuzeichnen nicht wieder alles hingemalt.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.