Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.045 c
15-1196121599
Германн
2007-11-27 02:59
2007.12.23
Опять offtop, но не могу сдержаться.


6-1176463972
Серге И
2007-04-13 15:32
2007.12.23
Как получить список административных ресурсов компьютера в сети.


15-1196017801
Cyrax
2007-11-25 22:10
2007.12.23
JavaScript: "не выпускаем" пользователя из поля ввода, пока...


15-1195807851
toto
2007-11-23 11:50
2007.12.23
Письмо деду Морозу


2-1196143990
dumka
2007-11-27 09:13
2007.12.23
Запросы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский