vložil Radek Červinka
9. listopadu 2011 20:56
Byla objevena celkem nešťastná chyba ve VCL v XE2, ale která zasáhne mizivé procento uživatelů. Jedná se o to, že během integrace FireMonkey do Delphi došlo chybou k přečíslování 4 konstant pro ModalResult. A jelikož tyto konstanty jsou ukládány v DFM jako čísla a ne názvy, dojde při otevření staršího projektu, který tyto konstanty používají, v Delphi XE2 ke změně jejich významu a vice versa.
Naštěstí se jedná ale o ne moc používané konstanty: mrAll, mrNoToAll, mrYesToAll a mrClose. Pokud zásadně nastavujete návratové hodnoty z kódu nebo tyto konstanty nepoužíváte tak se nic neděje. Pokud si nejste jistí, zkuste použít scanner ModalResult v DFM (zároveň s obšírným popisem), který by měl toto detekovat.
Problém pravděpodobně nebude opraven, protože by to mohlo vést ještě k většímu zmatení. Workaround je nastavit tyto konstanty z kódu.