-
в пас версии вроде норм, глубоко не тестировал. В асме что-то не совсем так
-
не действует символ компиляции {$DEFINE DATE0_1601}, {$DEFINE DATE0_0001} выкл.
всегда считает с нулевого года.
Включены: {$DEFINE TLIST_FAST} {$DEFINE NOT_USE_RICHEDIT} {$DEFINE DEBUG} {$DEFINE CRASH_DEBUG} {$DEFINE DEBUG_GDIOBJECTS} {$DEFINE CHK_BITBLT} {$DEFINE DEBUG_OBJKIND} {$DEFINE NO_DEFAULT_BUTTON_BOLD} {$DEFINE TIMER_APPLETWND} {$DEFINE STOPTIMER_AFTER_APPLETTERMINATED} {$DEFINE STOP_WNDPROCTRANSPARENT_AFTER_APPLETTERMINATED} {$DEFINE KEY_PREVIEW} {$DEFINE ESC_CLOSE_DIALOGS} {$DEFINE ALL_BUTTONS_RESPOND_TO_ENTER} {$DEFINE CLICK_DEFAULT_CANCEL_BTN_DIRECTLY} {$DEFINE DEFAULT_CANCEL_BTN_EXCLUSIVE}
-
Оно так и должно считать. 1601 для того, чтобы использовать более короткий код и функции API для превода из DateTime в SystemTime и наоборот, но они работают корректно только с 1 января 1601 года.
-
Вин7, Делфи 2009, KOL 3.1415926535897 с МСК, опции и свойства ансишные.
1) AV на строчке в проекте: Memo1.Text := lst.Text; Если добавлять по строкам, то работает.
2) Не работают методы PStrList-а LoadFromFile и SaveFromFile, вылетов нет.
-
"по строкам" т.е. через Add
-
Какие такие ансишные, в 2009? Там только unicode_ctrls, другое работать не будет.
-
err.pas, строка 552 {$IFDEF UNICODE_CTRLS} WStrCopy {$ELSE} StrCopy {$ENDIF}( Fmt, SException ); не может самостоятельно выбрать функцию, ругается. Пробовал прописывать {$DEFINE UNICODE_CTRLS} в dpr, не помогает. Работает только если указать в самом err.
Чем отличается NewStrList от NewKOLStrList ? Т.е. зачем так было сделано?
-
Вообще, символы компиляции в старых Delphi (до D7) прописывались в свойствах проекта. Думаю, в новых так же, просто интерфейс а-ля Visual C++/C#/... Посмотрите где там символы прописываются.
KOLStrList следует использовать в проекте, если он может компилироваться и с unicode_ctrls и без, и в зависимости от опции работает как StrList или WStrList. StrList бывает нужен в unicode-проекте для работы с ansi-строками, WStrList - в ansi-программе, наоборот с unicode-строками. Если в строках есть #0 как символы, оба они бесполезны.
-
1) там у меня KOL_MCK;EXTERNAL_DEFINES спасибо
-
External_defines.inc вставляются и должны восприниматься в самом KOL.pas, в KOL_add.pas и вроде бы всё. Т.е. UNICODE_CTRLS все-таки надо в свойствах проекта. Есть некоторое количество дополнительных компонент, которые понимают UNICODE_CTRLS, но EXTERNAL_DEFINES только сам KOL и KOLadd.
-
ну так ведь запись в dpr на модули проекта тоже не действует
-
Запись чего-либо ({$DEFINE }) в файл dpr действует только на сам dpr, так же и запись в pas-файл - только на сам этот pas-файл, так всегда было. Исключения касаются общих директив типа {$APPTYPE }, но и не факт, что их надо именно в dpr-файл помещать, это тоже без разницы - можно в любом pas-файле проекта.
-
Vladimir,
Is there a good reason why you disabled field TControl.fCollectUpdRgn in Kol.pas ? It is needed for current KolHiLightEdit. Can you re-enable it? (I did already in my copy) I am using hilightedit in my KolIde project. If I rewrite the code to use only Tcontrol.fUpdRgn it becomes slow.
-
But it was not used actually (2.94++) and occured only in disabled asm-version of WndProcPaint. It is better to remove it from KOLHilightEdit, supposing it is always = 0.
-
Ok.
-
Такой вот момент всплыл...
function TStrList.IndexOfName_NoCase(AName: Ansistring): Integer;
...
...
вот зачем нужна эта строка?
-
If you mean the next line references a fNameDelimiter and this line effectively means you can not use a space or tab as a name delimiter, you are correct. Otherwise this is an optimized - basically standard - way to skip non-printable characters in AsciiZ strings.
-
Зачем нужна такая оптимизация? Это скорее не оптимизация, а фишка для пропуска пробелов и не печатных символов.. Но я не считаю, что она нужна. ПЛЮС в IndexOfName - этой фишки уже нету!
-
не знаю как сейчас, но в старой версии при щелчке правой мыши(и только ей) по хидеру лисвиева в режиме таблицы срабатывает onclick хотя по логике для него есть oncolumnclick
-
I found that there is a problem with RightClick when using a ListView. This program will demonstrate the error (KOL v3.14159265358979):
program Test;
uses KOL;
procedure ColumnClick(Dummy: Pointer; Sender: PControl; Idx: Integer);
begin
if Sender.RightClick then
MsgOK(Sender.LVColText[Idx]);
end;
begin
Applet := NewForm(nil, 'Test');
with NewListView(Applet, lvsDetail, [], nil, nil, nil)^ do
begin
LVColAdd('Col1', taLeft, 80);
LVColAdd('Col2', taLeft, 80);
LVColAdd('Col3', taLeft, 80);
OnColumnClick := TOnLVColumnClick(MakeMethod(nil, @ColumnClick));
end;
Run(Applet);
end.
|