-
> Приведите пример bitbtn на API, чтобы было только манифеста > достаточно. Может я просто чего не так понял с этим контролом.
BCM_SETIMAGELIST
> Приведите пример grоupbox на API, чтобы не было зачеркивания > метки.
не в курсе о чем реч, но в винде то проблем не возникает ,значит можно Ж)
-
>> По поводу combobox + XPSTYLES - нужен InitCommonControls > Проверю.Действительно. Почему не знаю. Для себя в kol.pas сделал так: initialization
InitCommonControls;
-
>> Приведите пример bitbtn на API, чтобы было только манифеста достаточно. Может я просто чего не так понял с этим контролом. > > BCM_SETIMAGELIST Снимаю шляпу. До этого не докопал. Посмотрю что получится. Единственное, что меня смущает, что для каждого состояния кнопки нужно будет свое изображение (hot, disable, enable), наверное, а это соответственно размер. Сейчас, хоть и велосипед, с одним имэйджем.
>> Приведите пример grоupbox на API, чтобы не было зачеркивания метки. > > не в курсе о чем реч, но в винде то проблем не возникает,значит можно Ж) Не могу ссылку пока найти.
-
При переходе на новый MCK теряются закладки TabControl'a
-
> нужно будет свое изображение (hot, disable, enable), наверное
необязательно если картинка одна то она на все состояния также есть выравнивание по любому краю текста и картинки
-
> Например, 100 контролов на форме будут тормозить однозначно. > Графических - не будут
а нафига вменяемому прогеру стока контролов? мошт ему тогда чемто другим заняца Ж) я непротив графических контролов в принципе,т.е. конкретно самодельных, но вот перерисовывать стандартные.... вобщем хз
-
нафига вменяемому прогеру стока контролов? У меня тормоза были заметны на 16 эдитах (и паре комбобоксов), которые отображали состояние регистров эмулируемого процессора, в режиме трассировки это мешало. Речь не об одиночном нажатии, когда все просто перерисовалось один раз, а о трассе или удержании кнопки типа F8.
100 контролов, это совсем не предел, если сложная форма ввода. Требование на число полей ввода в форме определяет не программист, а заказчик. Ему требуется, чтобы было 100, значит, надо делать 100.
И как уже говорилось visual styles давно уже для других целей. В VCL групбокс перерисовывает код из VCL еще с тех пор, когда это был Borland Delphi. В API его делать - перечеркивается, если прозрачный. Так что проблемы есть.
Решение с BCM_SETIMAGELIST плохо тем, что оно действительно только с XP. На работе я работаю с NT4 и Windows2K, например. Впрочем, для картинки на кнопке есть способы и получше, чем bitbtn. Для чего имеется MouseTransparent в KOL и AcceptChildren в MCK. Это решение вообще универсальное, и под темами XP кнопка по теме, и под NT4 кнопка с картинкой и классическая одновременно.
-
2 QAZВладимир, кстати, прав. Темы-то появились в ХР, но bitbtn и в более ранних версиях нужен... 2 КладовВладимир, вот еще один баг, в довесок к [63]. Если табконтрол на дочерней форме, то при закрытии формы во второй раз вылет с ошибкой 204. Тестовый проект: http://zalil.ru/29772139Для получения бага надо: нажать кнопку первый раз, закрыть доч.окно, нажать еще раз кнопку и закрыть окно (при закрытии вылет). 2 AllВ дополнение к [63]. Закладки не теряются, просто MCK генерит другой код. Восстановление закладок вручную: 1. В dfm-файле с табконтролом заменить все таб-панели на таб-страницы. Например: object TabControl1_Tab1: TKOLPanel -> object TabControl1_Tab1: TKOLTabPage 2. В inc-файле формы, например, Unit2_1.inc, добавить константы табов и заменить строку создания табконтрола (я делал все это из бэкапа, у кого нет то ручками). Например: const _TabControl1_Tab0 = 0; const _TabControl1_Tab1 = 1; Result.TabControl1 := NewTabControl( Result.Form, [ ], [ ], nil, 0 ).SetAlign ( caClient ); -> Result.TabControl1 := NewTabControl( Result.Form, [ 'Tab0', 'Tab1' ], [ ], nil, 0 ).SetAlign ( caClient );
-
С табконтролом я протормозил. Как-то так получилось, что во всех проектах он не использовался. Дело, однако, не в том, что код иначе генерируется, и если Вы помните, исправлять код в UnitXXX_1.inc бессмысленно, т.к. этот код генерируется в MCK.
Пока решение именно такое: открыть руками dfm (в блокноте), найти объекты закладок на уровне, следующем за объектом TKOLTabControl, и переименовать их тип из TKOLPanel в TKOLTabPage. После этого открыть проект и на вопрос Delphi, следует ли скорректировать декларации, ответить утвердительно.
Надо попробовать сделать автоматическую конвертацию.
-
2 Кладов А что по поводу вылета при закрытии доч.формы с табконтролом?
-
Не вылетело. Или давайте примерный код.
Я выложил 3.00.B - kol.zip и mck.zip - миграция TabControl полу-автомат. Образуется некоторое число пустых закладок с теми же заголовками, их надо удалить вручную. Полностью автоматическое удаление дает странные результаты: все компилируется и сохраняется, но после повторного открытия формы какой-то затык, и форма не создается. Не стал разбираться глубоко, такой вариант, я думаю, вполне приемлем.
-
2 Кладов Какой код? Я тестовый проект дал. Сообщение [67]. И описание проблемы.
-
Да, я его скачивал. Но нет, пока не смотрел. Вроде и правда падает. Завтра смотреть буду.
-
Version 3.00 does not work with ActiveKOL Result with v2.94++:
dcc32.exe -b ActiveKOL.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
KOLDEF.INC(233)
KOLDEF.INC(233)
delphidef.inc(48)
delphicommctrl.inc(1569)
KOL_ansi.inc(2307)
KOL_ansi.inc(2307)
KOL_ASM.inc(13239)
KOL.pas(62866)
KOLDEF.INC(233)
KOLDEF.INC(233)
err.pas(1198)
KOLComObj.pas(2353)
KOLDEF.INC(233)
ActiveKOL.pas(2624)
89670 lines, 0.62 seconds, 15415 bytes code, 112 bytes data.
Result with v3.00b:
dcc32.exe -b ActiveKOL.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
KOLDEF.INC(253)
KOLDEF.INC(253)
delphidef.inc(48)
delphicommctrl.inc(1569)
KOL_ansi.inc(2307)
KOL_ansi.inc(2307)
KOL_ASM.inc(15343)
KOL.pas(63340)
KOLDEF.INC(253)
KOLDEF.INC(253)
err.pas(1198)
KOLComObj.pas(2353)
KOLDEF.INC(253)
ActiveKOL.pas(315) Error: Field or method identifier expected
ActiveKOL.pas(316) Error: Field or method identifier expected
ActiveKOL.pas(317) Error: Field or method identifier expected
ActiveKOL.pas(318) Error: Field or method identifier expected
ActiveKOL.pas(319) Error: Field or method identifier expected
ActiveKOL.pas(320) Error: Field or method identifier expected
ActiveKOL.pas(321) Error: Field or method identifier expected
ActiveKOL.pas(322) Error: Field or method identifier expected
ActiveKOL.pas(323) Error: Field or method identifier expected
ActiveKOL.pas(340) Error: Field or method identifier expected
ActiveKOL.pas(341) Error: Field or method identifier expected
ActiveKOL.pas(828) Error: Undeclared identifier: 'fVisible'
ActiveKOL.pas(828) Error: Operator not applicable to this operand type
ActiveKOL.pas(950) Error: Missing operator or semicolon
ActiveKOL.pas(1325) Error: Undeclared identifier: 'fIsControl'
ActiveKOL.pas(1327) Error: Incompatible types: 'TStyle' and 'Integer'
ActiveKOL.pas(1369) Error: Undeclared identifier: 'fVisible'
ActiveKOL.pas(1454) Error: Undeclared identifier: 'FOnKeyDown'
ActiveKOL.pas(1454) Error: Incompatible types
ActiveKOL.pas(1459) Error: Undeclared identifier: 'FOnChar'
ActiveKOL.pas(1464) Error: Undeclared identifier: 'FOnKeyUp'
ActiveKOL.pas(1550) Error: Undeclared identifier: 'fOnMouseDblClk'
ActiveKOL.pas(1550) Error: Not enough actual parameters
ActiveKOL.pas(1606) Error: Undeclared identifier: 'fOnChar'
ActiveKOL.pas(1606) Error: Not enough actual parameters
ActiveKOL.pas(1743) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(1743) Error: Operator not applicable to this operand type
ActiveKOL.pas(1744) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(1744) Error: Operator not applicable to this operand type
ActiveKOL.pas(1745) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(1745) Error: Missing operator or semicolon
ActiveKOL.pas(1746) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(1748) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(1748) Error: Operator not applicable to this operand type
ActiveKOL.pas(1749) Error: Undeclared identifier: 'fCurrentControl'
ActiveKOL.pas(2624)
ActiveKOL.pas(406) Error: Unsatisfied forward or external declaration: 'TOleServer.InitServerData'
ActiveKOL.pas(431) Error: Unsatisfied forward or external declaration: 'TOleServer.Connect'
ActiveKOL.pas(432) Error: Unsatisfied forward or external declaration: 'TOleServer.Disconnect'
-
> Решение с BCM_SETIMAGELIST плохо тем, что оно действительно > только с XP
ну так для олда есть BM_SETIMAGE +\- BS_BITMAP,BS_ICON
-
> > Решение с BCM_SETIMAGELIST плохо тем, что оно действительно > > только с XP > ну так для олда есть BM_SETIMAGE +\- BS_BITMAP,BS_ICON для какого олда? Я сейчас встречаю w2k и выше.
-
> для какого олда?
от 95\nt4 до xp
-
Исправил падение (пример с таб-контролом). Причина не в соственно таб-контроле, в общем нашел.
Новые версии 3.00.C на сайте: KOL.zip, MCK.zip, ActiveKOL.zip, KOLadd.zip.
-
Error with tooltips:
dcc32.exe -b -dUSE_MHTOOLTIP KOL.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
KOLDEF.INC(253)
KOLDEF.INC(253)
delphidef.inc(48)
delphicommctrl.inc(1569)
KOL_ansi.inc(2307)
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(37) Error: Undeclared identifier: 'TMHHint'
KOL_ansi.inc(2307)
KOLMHToolTip.pas(898) Error: Undeclared identifier: 'NewHint'
KOLMHToolTip.pas(909)
KOLMHToolTip.pas(190) Error: Undeclared identifier: 'PMHToolTip'
KOLMHToolTip.pas(199) Error: Incompatible types
KOLMHToolTip.pas(266) Error: Function needs result type
KOLMHToolTip.pas(266) Error: '=' expected but ')' found
KOLMHToolTip.pas(267) Error: Missing operator or semicolon
KOLMHToolTip.pas(268) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(272) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(272) Error: '=' expected but ',' found
KOLMHToolTip.pas(272) Error: '=' expected but ')' found
KOLMHToolTip.pas(273) Error: Expression expected but 'BEGIN' found
KOLMHToolTip.pas(274) Error: Undeclared identifier: 'handle'
KOLMHToolTip.pas(278) Error: Function needs result type
KOLMHToolTip.pas(278) Error: '=' expected but ')' found
KOLMHToolTip.pas(279) Error: Missing operator or semicolon
KOLMHToolTip.pas(280) Error: Undeclared identifier: 'handle'
KOLMHToolTip.pas(283) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(283) Error: '=' expected but ';' found
KOLMHToolTip.pas(283) Error: '=' expected but ')' found
KOLMHToolTip.pas(285) Error: Undeclared identifier: 'handle'
KOLMHToolTip.pas(288) Error: Function needs result type
KOLMHToolTip.pas(290) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(293) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(293) Error: '=' expected but ')' found
KOLMHToolTip.pas(295) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(323) Error: Function needs result type
KOLMHToolTip.pas(325) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(328) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(328) Error: '=' expected but ')' found
KOLMHToolTip.pas(329) Error: ';' expected but 'BEGIN' found
KOLMHToolTip.pas(330) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(333) Error: Function needs result type
KOLMHToolTip.pas(339) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(339) Error: '=' expected but ')' found
KOLMHToolTip.pas(341) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(344) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(346) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(349) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(351) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(408) Error: Identifier redeclared: 'TMHToolTip'
KOLMHToolTip.pas(410) Error: This form of method call only allowed in methods of derived types
KOLMHToolTip.pas(411) Error: Undeclared identifier: 'fHandle'
KOLMHToolTip.pas(416) Error: Object type required
KOLMHToolTip.pas(418) Error: ';' expected but 'WITH' found
KOLMHToolTip.pas(420) Error: Undeclared identifier: 'Parent'
KOLMHToolTip.pas(421) Error: Undeclared identifier: 'ToolTip'
KOLMHToolTip.pas(422) Error: Undeclared identifier: 'HasTool'
KOLMHToolTip.pas(423) Error: '.' expected but ';' found
KOLMHToolTip.pas(425) Warning: Text after final 'END.' - ignored by compiler
KOLMHToolTip.pas(909)
KOL_ASM.inc(15344)
KOL.pas(63679)
KOL.pas(705) Error: Unsatisfied forward or external declaration: 'TObj.Destroy'
KOL.pas(725) Error: Unsatisfied forward or external declaration: 'TObj.RefDec'
KOL.pas(774) Error: Unsatisfied forward or external declaration: 'TObj.Create'
KOL.pas(790) Error: Unsatisfied forward or external declaration: 'TObj.Add2AutoFree'
KOL.pas(795) Error: Unsatisfied forward or external declaration: 'TObj.Add2AutoFreeEx'
KOL.pas(799) Error: Unsatisfied forward or external declaration: 'TObj.RemoveFromAutoFree'
KOL.pas(837) Error: Unsatisfied forward or external declaration: 'TList.Destroy'
KOL.pas(840) Error: Unsatisfied forward or external declaration: 'TList.SetCapacity'
KOL.pas(841) Error: Unsatisfied forward or external declaration: 'TList.Get'
KOL.pas(842) Error: Unsatisfied forward or external declaration: 'TList.Put'
KOL.pas(303) Fatal: Compilation terminated; too many errors
-
Event OnDropFiles not working too.
|