Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#5

AW: Der Hinweis ist nicht zutreffend.

  Alt 22. Dez 2018, 16:16
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat