Im Demoprogramm zeigt sich im Debugger, dass die
Handle PaintBox1.Canvas.Handle gültig bleibt, d. h., nicht den Wert 0 annimmt.
Es wundert mich warum die
VCL die Zahl der offene Canvas-
Handle-Nummern limitieren sollte. Die verfügbaren
Handle-Nummern werden vom Betriebssystem verwaltet und sind von dessen Seite „limitiert“. Prinzipiell können bei 32-Bit-Betrieb in dem Pool der Canvas-
Handle-Nummern 4 Milliarden Nummern angelegt werden, was dann einem Speichervolumen von 16 Gigabyte bei einem Adressraum vom maximal 4 Gigabyte entspricht.
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.