Форум: "KOL";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизДавненько я багрепортов не слал :) Найти похожие ветки
← →
homm © (2007-05-27 13:13) [0]Код практически из соседней ветки «выбор мышкой компонента».
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) [1]Я что-то не понял. А первый параметр - где? (вместо @Self который)
← →
homm © (2007-05-27 17:10) [2]Мда, туго оно без практики :))
Procedure OnMDn(Self: PControl; Sender: PControl; var Mouse: TMouseEventData);
Так? Инвариантно. Applet.ActiveControl пустой, и все слетает.
← →
Vladimir Kladov (2007-05-27 17:26) [3]У меня все нормально. Applet на форму положить надо (я-то это сразу сделал).
← →
homm © (2007-05-27 17:34) [4]> Applet на форму положить надо
Действительно, это все решает. А все-же интересно, почему появляеться такая ошибка, и нельзя ли ее без аплета решить?
← →
Vladimir Kladov (2007-05-27 17:37) [5]Потому что Applet.fCurrentControl присваивается в процедуре формы в ответ на WM_SETFOCUS. А если нет applet"а, он что туда присваивать должен, себя самого, что ли.
← →
AndreyRus (2007-05-27 18:14) [6]Хм. Опять разговоры за applet на форме... Я вот тоже его не использую в надежде на то, что это позволит хоть немного уменьшить код. Может быть я заблуждаюсь?
← →
Vladimir Kladov (2007-05-27 18:32) [7]Проверить ведь нетрудно, на сколько. Правило простое: если форм > 1, то Applet желателен. Помимо прочих желаний (скрывать кнопку на таскбаре, работать с TTrayIcon, ловить все сообщения в AppletOnMessage и т.п.). ShowQuestion - это тоже форма.
← →
AndreyRus (2007-05-27 19:21) [8]> Проверить ведь нетрудно, на сколько.
Станное дело! Наличие applet"а на форме не добавило ни байта кода или данных!
← →
homm © (2007-05-27 19:30) [9]Добавляет примерно 180 байт.
KOLProject1.BUILD;
← →
homm © (2007-05-27 19:48) [10]> А если нет applet"а, он что туда присваивать должен, себя
> самого, что ли
А почему бы себя и не присваивать? С аплетом же, я так понимаю форма и присваевается.
← →
AndreyRus (2007-05-27 22:30) [11]
> Добавляет примерно 180 байт.
Создал проект с нуля. Результат тот же - ни один байт не добавляется!
← →
homm © (2007-05-27 22:37) [12]1) Создаем проект
2) Билдим
3) Project - Information for <project>
4) Code Size: 16876; Data Size: 1501;
5) Кладем Applet
6) Выделяем KOLApplication
7) Делаем двойной клик по свойству BUILD
8) Project - Information for <project>
9) Code Size: 17184; Data Size: 1504;
На пустом проекте получилось даже больше, 308.
← →
homm © (2007-05-27 22:38) [13]7а) Снова билдим
Пропустил
← →
AndreyRus (2007-05-27 23:12) [14]Точно выполнении 7"ого пункта размер увеличивается на 316 байт. Отличается от вашего, но вероятно это связанно с версией KOL. У меня 2.48
Кстати, необходимость выполнения 7"ого пункта это очень большой глюк и повод задуматься ведь в свойствах KOLProject1 autoBuild:= true; autoBuildDelay:= 500;
← →
homm © (2007-05-27 23:31) [15]> Кстати, необходимость выполнения 7"ого пункта это очень
> большой глюк и повод задуматься ведь в свойствах KOLProject1
> autoBuild:= true; autoBuildDelay:= 500;
Просто я не терпеливый, сам все сделал :))
А если серьезно, то удалене никакого компонента на влечет за собой ребилда исходного текста. Это справдливо и для невизуальных компонетов.
С создание правда глюк, но как обычно, достаточно двинуть формой.
«Мама, что мы будем делать, когда она двинет собой?»
© БГ :)
← →
Dy1 © (2007-05-28 12:16) [16]> > autoBuild:= true; autoBuildDelay:= 500;
> Просто я нетерпеливый, сам все сделал :))
А мне приходится после удаления компонента чистить Unit1_1.inc вручную :(
← →
D[u]fa © (2007-05-28 15:12) [17]пошевели формой после удаления и все
← →
AndreyRus (2007-05-28 15:14) [18]
> пошевели формой после удаления и все...
Нужно сделать раздел в книге о KOL - "Шаманство".
← →
Vladimir Kladov (2007-05-28 15:27) [19]Там уже все написано. Я бы рад в MCK отслеживать и удаление, но не знаю точно, как это сделать. И вообще, не так часто приходится что-то удалять с формы. проще ее сдвинуть, чем городить код.
← →
Cristian_pp (2007-06-18 17:23) [20]Konnichiwa!
Check this out!
<a href= ></a>,
← →
Coco Chanel (2007-06-18 17:23) [21]And some more..
<a href= ></a> *
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.051 c