За лето что-то поменяли и теперь всегда Msg.DC=0 и Msg.PaintStruct=nil. Кроме того, приложение бесконечно крутится в LMPaint, если не вызывать его inherited - но мне он нафиг не нужен.
Я или чего-то не знаю или это новый баг? Поиск по багтрекеру ничего не дал.
Вот код и пример в аттаче:
- Код: Выделить всё
procedure TNewButton.LMPaint(var Msg: TLMPaint);
var
_s: String;
begin
inherited; {мне это не надо, Но если убрать, то LMPaint будет вызываться в бесконечном цикле;
в revision 24474 работало без этого}
if (Msg.DC<>0)and(Msg.PaintStruct<>nil) then begin
{всегда Msg.DC=0 и Msg.PaintStruct=nil}
{never go here in because Msg.DC=0 and Msg.PaintStruct=nil ALWAYS!}
_s:='AAAAAAA';
DrawText(Msg.DC, PChar(_s), Length(_s), Msg.PaintStruct^.rcPaint, DT_CENTER or DT_VCENTER or DT_END_ELLIPSIS);
end;
Msg.Result:=0;
end;