![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Давненько я багрепортов не слал :)
homm © (2007-05-27 13:13:00)Код практически из соседней ветки «выбор мышкой компонента».
Procedure OnMDn(Sender: PControl; var Mouse: TMouseEventData);
begin
ShowQuestionEx('Атас!', 'OK/Cancel', nil);
end;
procedure TForm1.Button1Click(Sender: PObj);
var
Panel: PControl;
begin
Panel := NewPanel( Form1.Form, esRaised).PlaceDown;
Panel.OnMouseDown := TOnMouse( MakeMethod( Panel, @OnMDn));
Form.Width := Form.Width-1;
end;
Последовательность действий:
1) Нажимаем на Button1;
(Кстати, тут-же баг второй, насчет выделеной стороки. Без нее новый контрол не появляется на форме)
2) Нажимаем на вновь созданую панельку.
3) видим диалог, нажимаем ОК.
4) Повторяем 2)
5) А вот тут уже облом, повторить 3) не получиться, т.к. в ShowQuestionEx есть такие строчки:
{$IFNDEF NO_CHECK_STAYONTOP}
CurForm := Applet.ActiveControl;
DoStayOnTop := CurForm.StayOnTop;
{$ENDIF NO_CHECK_STAYONTOP}
И что примечательно, при втором вызове ShowQuestionEx, Applet.ActiveControl = nil!
ЗЫ: Хотел поругаться на новый алигн. :) Вовремя заметил что дело не в нем, а в костыле, вставленном для старого :))))
ЗЗЫ: Насчет обновления KOLGrushcontrols. Если его еше никто не обновил (Владимир, MTsv DN), обновите пожалуйста, сами.
Еще раз повторю, что нужно сделать:
в функции DrawControlState
Было:
Bitmap := NewBitMap(W, H);
Стало:
if UseDIB then
Bitmap := NewDIBBitMap(W, H, pf32bit);
else
Bitmap := NewBitMap(W, H);
Было:
{$IFDEF NOT_IMMIDIATLYONLY}
if UseDIB then begin
TBM := NewDIBBitmap(W, H, pf32bit);
Bitmap.Draw(TBM.Canvas.Handle, 0, 0);
Bitmap.Free;
Bitmap := TBM;
end;
{$ENDIF NOT_IMMIDIATLYONLY}
Стало:
{ пусто }
:))
Vladimir Kladov (2007-05-27 16:41:00) [21]Я что-то не понял. А первый параметр - где? (вместо @Self который)