Wenn ich ein Formular mit 5 TPaintBox-Instanzen anlege und die gleichzeitig offenen
Handle-Nummern mittels der Anweisung
Code:
ShowMessage(IntToStr(PaintBox1.Canvas.Handle) + #13#10 +
IntToStr(PaintBox2.Canvas.Handle) + #13#10 + IntToStr(PaintBox3.Canvas.Handle)
+ #13#10 + IntToStr(PaintBox4.Canvas.Handle) + #13#10 +
IntToStr(PaintBox5.Canvas.Handle));
ausgeben lasse, dann erhalte ich keinen Nullwert bei den Handlenummern. Siehe angehängtes Bild.
Das liegt daran, daß der Getter von
Handle bei Bedarf ein neues
Handle erzeugt. Sind bei dir nicht die
Handle-Werte von PaintBox1 und PaintBox5 gleich? Du kannst das auch auf 6 und mehr Paintboxen ausdehnen, wirst aber vermutlich immer nur vier verschiedene Werte angezeigt bekommen.
Ändere mal den Aufruf so und vergleiche den ersten und letzten Wert:
Delphi-Quellcode:
ShowMessage(
IntToStr(PaintBox1.Canvas.Handle) + #13#10 +
IntToStr(PaintBox2.Canvas.Handle) + #13#10 +
IntToStr(PaintBox3.Canvas.Handle) + #13#10 +
IntToStr(PaintBox4.Canvas.Handle) + #13#10 +
IntToStr(PaintBox5.Canvas.Handle) + #13#10 +
IntToStr(PaintBox1.Canvas.Handle)
);
Lass die PaintBox5 weg und die Werte sind gleich.