Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Bugs in KOL


Страницы:   1 2

Boguslaw ©   (2003-03-14 01:14:00) 

1. WM_KEYDOWN in OnMessage is not working. Vladimir said that it was not working earlier also but I remember that old versions of KOL (before DefaultBtn and CancelBtn) did not have that bug

2. in OnQueryEndSession for Applet Accept:= false do not prevent Windows XP for shutdown

3. in Windows XP with theme support disable close button on form does not work in any event, would be useful to have form style without close button

Maybe we should create a list of non-critical bugs for later fix ?


Vladimir Kladov   (2003-10-27 09:26:00) [21]


> В run-time не работают значения MinWidth и MinHeight, заданные
> в design-time.


У меня работают. Пример?


SPeller   (2003-10-27 08:52:00) [22]


> > 2) Form.MinWidth и MinHeight (если задать в design-time)
> > не работают
>
> У меня работают. В самом design-time? Там оно и не должно
> работать, только в run-time.

В run-time не работают значения MinWidth и MinHeight, заданные в design-time.


Vladimir Kladov   (2003-10-27 07:06:00) [23]


> 1) При изменении размеров окна Caption у панелей не перерисовывается


У меня перерисовывается. Шлите пример, когда такое бывает.


> 2) Form.MinWidth и MinHeight (если задать в design-time)
> не работают


У меня работают. В самом design-time? Там оно и не должно работать, только в run-time.


> 3) В Form.OnMessage WM_MOUSEMOVE возвращает координаты мыши
> относительно контрола, над которым находится мышь (более
> логичным ИМХО было бы относительно формы)


OnMessage ничего не возвращает, а передает как оно есть. TMsg содержит hwnd окна, которому сообщение отправлено. Можно просто вызвать Windows.ClientToScreen. Предложение "исправить" не принимается.


Sapersky   (2003-10-27 01:06:00) [24]

Ещё кое-что, не столь критичное, но неприятное:
1) При изменении размеров окна Caption у панелей не перерисовывается
2) Form.MinWidth и MinHeight (если задать в design-time) не работают
3) В Form.OnMessage WM_MOUSEMOVE возвращает координаты мыши относительно контрола, над которым находится мышь (более логичным ИМХО было бы относительно формы)


Yury Sidorov   (2003-10-13 18:06:00) [25]

P.S. А хинты назначены для всех кнопок тулбара. Если не для всех, то может в этом проблема.


Yury Sidorov   (2003-10-13 18:05:00) [26]

Вообще-то с включенными хинтами все должно работать. По крайней мере моя прога работает с ними во всех ОС без проблем.


Sapersky   (2003-10-13 16:00:00) [27]

Вывод: если исполюзуютя actions и не нужны тултипы на тулбаре - не назначать свойство Hint в Action.

А если нужны? :) Понял, не ставить showTooltips=false. Ну так оно само ставится в True.
Тем не менее, запускать программу с хинтами - это что-то вроде ходьбы по минному полю :) Раз повезло, два повезло, а на третий (не обязательно именно третий, конечно) при попытке показать хинт вылетают ВСЕ приложения, включая Explorer...


Yury Sidorov   (2003-10-13 13:53:00) [28]

Вот фикс бага с удалением элементов меню и конопок тулбара с назначенным action.

mirror.pas:

procedure TKOLAction.ResolveLinks;
//...
       if c is TKOLToolbarButton then
         TKOLToolbarButton(c).action:=Self;
       c.FreeNotification(Self);          { !!! Добавить }
       UpdateLinkedComponent(c);
//...

procedure TKOLAction.LinkComponent(const AComponent: TComponent);
//...
   FLinked.AddObject('', AComponent);
   AComponent.FreeNotification(Self);       { !!! Добавить }
   UpdateLinkedComponent(AComponent);
//...


Насчет вылета программы если в Action назнчен Hint, а для тулбара showTooltips=False. Причину вылета не знаю, но дело в том, showTooltips это виртуальное свойство, которое есть только на этапе дизайна в МСК. Если showTooltips=False, то не генерится код, назначающий тултипы тулбару. В рантайме Action ничего не знает о showTooltips=False, поэтому назначает значение своего свойства Hint связанным кнопкам тулбара.
Вывод: если исполюзуютя actions и не нужны тултипы на тулбаре - не назначать свойство Hint в Action.


SPeller   (2003-10-13 12:26:00) [29]


> Вообще по KOL/MCK - иногда (достаточно часто) бывает следующее:
> - exe-файл проекта зависает в запущенном состоянии ("этот
> файл используется Windows..."), хотя внешне программа завершается.

Такое часто бывает, особенно под 9Х. У меня под МЕ при работе со звуком так чуть ли не каждый 15-й раз. Под НТ-системами гораздо реже, но бывает (сегодня было у меня). Я уж и не знаю точно, чей это глюк - МСК или IDE Дельфей, но под VCLьными проектами я такого не припоминаю.


Sapersky   (2003-10-13 10:05:00) [30]

А вот по MCK (версия 1.85, Win98):

ActionList:
- Нельзя удалить пункт меню, которому назначен action (при попытке сохранить - ошибка в vcl.bpl).
- ToolTips в ToolBar, заданные через ActionList. Иногда начинает вылетать при попытке показать Hint, даже если этот показ запрещён (ShowTooltips=False) - причём не только проект, но и другие программы (!). Частично помогает удаление Hint в action.

- при работе c ToolBar, BitBtn иногда в form_1.inc создаются константы (TB1, TB2...) c одинаковыми именами.

Вообще по KOL/MCK - иногда (достаточно часто) бывает следующее:
- exe-файл проекта зависает в запущенном состоянии ("этот файл используется Windows..."), хотя внешне программа завершается.
- сразу после запуска Дельфи первая попытка запустить проект приводит к подвисанию.


Vladimir Kladov   (2003-10-12 19:28:00) [31]


> зачем он оставил только одну замену?

Затем, что так легко заменить ровно 2 раза, например. И не пришлось делать сложный анализ на рекурсию внутри самой StrReplace. Кому надо, напишет свой код/функцию, которая это проверит.

И при чем тут вообще совместимость. С VCL что ли. Ну так на то есть StringReplace в SysUtils, по-хорошему, она должна быть в замене SysUtils.


Dimaxx   (2003-10-12 14:40:00) [32]

Владимир мне как раз такой способ и написал. А я до сих пор не могу понять зачем он оставил только одну замену? Так ведь никакой совместимости не будет! Кто-то будет пытаться перевести код с использованием StringReplace на КОЛ, а из-за таких мелких неувязок не получится.


SPeller   (2003-10-10 04:34:00) [33]

Паскалевский вариант, кстати, точно так же работает :) Чтобы заменить все вхождения подстроки в строку я делаю так:

while StrReplace( S, SFrom, STo ) do ;


Dimaxx   (2003-10-10 00:14:00) [34]

Функция StrReplace заменяет только первый найденный шаблон в строке, а остальные пропускает. Так поступает ассемблерная часть!


mdw   (2003-10-07 15:03:00) [35]

ОК. Все ясно. Значит правлю код.


Yury Sidorov   (2003-10-07 13:31:00) [36]

Мною было сделано следующее исправление:
Курсор "стрелка" явно никаким контролам не назначается. TControl.fCursor равен 0 по умолчанию. Для стандартных контролов и форм Windows сам грузит/меняет курсор в зависомости от контрола. Таким образом удалось сделать нормалный курсор в комбобоксе в режиме с возможностью редактировать текст, также в ричедите убран большой кусок кода, который раньше отвечал за эмулирование правильного вида курсора.

Для собственных компонентов нужно явно ставить(грузить) курсор по умолчанию если он был изменен во время работы компонента. Т.е. в случае грида он меняется на ресайз-курсор. После этого надо его возвращать к стрелке если TControl.fCursor равен 0.


mdw   (2003-10-07 13:21:00) [37]

>KOL_MCK 1.85 Глюк с отрисовкой курсора в KOLmdvXLGrid.Если включена возможность изменения размеров колонок/столбцов, после ресайзинга курсор не перерисовывается. Win98 D7.
Глюк связан с тем, что в версии 1.85 свойство Cursor не возвращает свое значение, если не было проинициализировано.
Лечится: в MSK: Cursor_:= IDC_ARROW, KOL KOLmdvXLGrid.Cursor:= IDC_ARROW;
или
в procedure TmdvXLGrid.RestoreCursor;
...
  //if PKolXLGridData(FCustomObj).FDefaultCursor = 0 then Exit;
...
Но предпочтительнее первый вариант.
Пока не понятно стоит ли править код, зависит от того будет ли так всегда или это ошибка в КОЛ и в следующей версии будет исправлена? Это вопрос к Кладову.


<Falcon>   (2003-10-07 10:05:00) [38]

KOL_MCK 1.85 Глюк с отрисовкой курсора в KOLmdvXLGrid.Если включена возможность изменения размеров колонок/столбцов, после ресайзинга курсор не перерисовывается. Win98 D7.


Boguslaw   (2003-10-07 02:50:00) [39]

Currently 2 is fixed as I know ;-)
About 3 - there is always a solution to not show close on form : Form.Style := Form.Style - WS_SYSMENU


helper code   (2003-10-07 01:32:00) [40]

Add to list created of Boguslaw:
В Windows XP c поддержкой тем компонент TKOLTabControl отрисовывает цвет активной панели не правильным цветом.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо