-
> Версия 3.00.U на сайте. Проверьте со своим, MTsv DN. Подтверждаю. Баг исправлен (и пас- и асм-версии). Спасибо.
-
Версия 3.00.U. Еще один баг в асм-версии. Простой код if ListView1.RightClick then
beep(400,100); при нажатии левой/правой кнопкой на элементе валится где-то в глубинах WndFunc (вроде ;) ) Пас-версия работает корректно.
-
Код находится в procedure TForm1.ListView1Click(Sender: PObj); . Директивы: KOL_MCK;GRAPHCTL_XPSTYLES;UNICODE_CTRLS;nil_events
-
Фикс на сайте v3.00.V. Заодно чуть ускорил TLIST_FAST, и поправил KOLDirDlgEx (KOLadd.zip)
-
Issue from [186] remains (concerning ALT+SPACE with conditionals)
-
When using TBAssignEvents, left click works but right click does not:
program Test;
uses KOL;
var Toolbar: PControl;
procedure TBClick(Dummy: Pointer; Sender: PControl; BtnID: Integer);
begin
if Sender.RightClick then
Applet.Caption := '>>>'
else
Applet.Caption := '<<<';
end;
begin
Applet := NewForm(nil, '').SetSize(200, 100);
Toolbar := NewToolbar(Applet, caTop, [], 0, [], []);
Toolbar.TBAssignEvents(Toolbar.TBAddButtons(['X'], []), [TOnToolbarButtonClick(MakeMethod(nil, @TBClick))]);
Run(Applet);
end.
-
Issue from [186] remains (concerning ALT+SPACE with conditionals)
I answered: it should not work and now is not working in both cases.
-
Есть предложение немного доработать TThread до такого:
function WaitFor(ATimeOut: Cardinal = INFINITE): Integer;
ну и в коде
WaitForSingleObject(FHandle, ATimeOut);
Никаикх изменений в существующий пользовательский код. Отработку по таймауту коде можно определить возвращаемым значением метода WaitFor, которое будет равно константе STILL_ACTIVE.
-
Не-а. Не катит. До Delphi5 нет параметров со значениями по умолчанию. Добавить WaitForTime(timeout) могу.
-
Можно и так. Основной код вставить в WaitForTime, а из WaitFor вызывать его с параметром INFINITE
-
ВОт еще что. Уже обсуждалось, но осталось по прежнему. Проблема в том, что при работе с KOL в DLL возникает проблема из-за обрезки необходимых ей релоков. За это отвечает вот такая штука в koldef.inc:
Предлагаю использовать не NO_STRIP_RELOC для отключения обрезки, а наоборот, включать обрезку только когда объявлен символ STRIP_RELOC. Не знаю как в старших версиях дельфей, но 2010-я мне сегодня заявила: [DCC Fatal Error] E2163 Too many conditional symbols Поэтому опасно плодить дополнительные символы, компилятор может обидеться )
-
Еще проблема. При наличии манифеста ХР даже при выключенных темах контролы не отрисовываются. На форме просто области, заполняющиеся предыдущим содержимым экрана. Включение-отключение тем, DoubleBuffered никак не влияет. Форма с контролами находится в длл.
-
When using TBAssignEvents, left click works but right click does notAs in 2.94, it works when event is assigned for toolbar itself, not for a button. (Uncomment
)
-
[DCC Fatal Error] E2163 Too many conditional symbols
В прежних Delphi ничего не говорил, просто переставал воспринимать после определенного числа символов в строке с дефинициями. Но для этого решение есть давнор: включается символ EXTERNAL_DEFINES, и символы помещаются в EXTERNAL_DEFINES.inc в нужном количестве в виде {$DEFINE символ}.
А что это делает, и чем будет отличаться вариант с STRIP_RELOC, я как бы и не в курсе. Нету D2010 (IDE), могу только через dcc32, это неудобно.
-
WaitForTime уже есть, не помню с какой версии.
-
> WaitForTime уже есть, не помню с какой версии.
Точно... Давно не работал с KOL, забыл всё уже.
> А что это делает, и чем будет отличаться вариант с STRIP_RELOC, > я как бы и не в курсе. Нету D2010 (IDE), могу только через > dcc32, это неудобно.
{$SetPEFlags 1} - указывает компилятору что надо вырезать из конечного модуля релоки. Для ЕХЕ это нормально, а вот ДЛЛ без релоков не сможет загрузиться. Правда, проблема плавающая, при билде проекта эта опция отрабатывает, длл получается без релоков и не загружается, а если делать компиляцию, то релоки присутствуют и длл работает.
-
Yes, but as i recall, this is documented. When I suggested this option, we made it clear this was only for exes and not for dll's. There are other issues, for example memory management. I suggest maybe a more generic switch like TARGET_EXE or TARGET_DLL would help for these cases?
-
I don't think that this is a big problem. Not a lot of programmers are creating dll's. Most of people use Delphi to create applications so I think it is normal to leave code untouched.
-
мда.... а я ак раз ДЛЛки в основном и творю.... правда, на 5й и 7й дельфи...
-
Владимир, что значит "никто не делает дллки?" :) Вы так шутите, да? :)
|