Ich habe folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| ShowMessage(PageControl1.Pages[PageIndex].Caption); PageControl1.Pages[PageIndex].Tag := Integer(CloseButton); PageControl1.Pages[PageIndex].Caption := StringReplace(PageControl1.Pages[PageIndex].Caption, '&', '&&', [rfReplaceAll]); PageControl1.Pages[PageIndex].Caption := PChar(PageControl1.Pages[PageIndex].Caption) + BlankSpace; ShowMessage(PageControl1.Pages[PageIndex].Caption); Rect := PageControl1.TabRect(PageIndex); CloseButton.Top := Rect.Top + 2; CloseButton.Left := Rect.Right - 19; |
Wie man sieht, ändert sich PageControl1.Pages[PageIndex].Caption während der Abarbeitung grundsätzlich (von 'tsStart' zu 'Müller && Söhne'). Das lässt sich noch verschmerzen, weil der Anwender 'tsStart' nicht sieht. Gleichzeitig tritt ein Seiteneffekt ein: nur wenn ShowMessage aufgerufen wird, wird auch die Beschriftung von PageControl1.Pages[PageIndex] so geändert, dass das Rechteck in den letzten drei Code-Zeilen richtig gezeichnet wird.
Meine Frage: lässt sich dieser Effekt auch ohne ShowMessage erzielen?
Es ist übrigens egal, was gemeldet wird, 'Aha' tut's auch. Application.ProcessMessages tut's nicht.
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt