Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Название:Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание
…начиная с 1001. Смотрите другие файлы…
Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
• Если вы установили Delphi 1.0 после установки Delphi 2.0, и Delphi 2.0 загружает файлы помощи от Delphi 1.0, удалите любые ссылки на файлы помощи Delphi 1.0 из файла WINHELP.INI, расположенного в вашем каталоге Windows.
Как проводить локализацию своих приложений?
Nomadicсоветует:
В Delphi 3 и 4 есть специальные механизмы, позволяющие приложение «переделать» на любой язык после компиляции. Для D3 надо посмотреть в хелпе, по-моему, internationalization или что-то в этом роде. Для D4 вообще все делается ОЧЕНЬ просто:
1. берется проект, компилируется;
2. тут-же, не закрывая проект, вызвается New|Resource DLL Wizard, в нем указывается, какие формы и модули должны подвергнуться переводу на другой язык;
3. в результате работы Wizard появляется проект (sic!) с RC и DFM. Открываем формы, и переделываем все сообщения + размер (соотв. длине сообщений);
4. Компилируем. В результате получается файл xxxxxxx.rus, где xxxxxxx – название исходного проекта;
5. Запускаем xxxxxxx.exe. Видим некий не наш язык. Подкладываем в каталог с этим exe изготовленный файл xxxxxxx.rus, и запускаем exe повторно. Видим абсолютно ВЕЗДЕ переведенные сообщения.
p.s. файл RUS можно подставлять и убирать по вкусу.
crtdll.dll в программах на Delphi
Здравствуйте.
Тут открыл кое-что, возможно, давным давно всем известное. :) Поделюсь на всякий случай.
Сначала немного о корнях проблемы. Не секрет, что в Delphi модуль Math поставляется только с Enterprise-версией программы. А платить больше тысячи долларов только за то, чтобы воспользоваться парой функций совсем не хочется (мне, например, простенькой atan2 часто не хватало).
Простым решением является «заимствование» модуля Math из пиратской Enterpise-версии, но это, вообще-то, воровство. Самому же создавать матеатическую библитеку с нуля – занятие неблагодарное (по крайней мере достаточно трудоёмкое).
Не работая плотно на MSVC я как-то был не в курсе наличия библиотеки crtdll.dll в Windows (насколько мне удалось выяснить, она таки является частью операционной системы, по крайней мере ставится вместе с Windows 9x/NT/2000). С её помощью можно решить указанную проблему, воспользовавшись готовым решением, а именно – объявить все необходые функции из math.h в своей программе и наслаждаться. :)
Пример с atan2:
functionatan2(x, y: double): Double; stdcall; external'crtdll.dll' name'atan2';
Проверено – работает. Поскольку метод открылся буквально только что, я ещё не успел сделать модуль-обёртку для всех математических функций. Видимо, сделаю и отдам во всеобщее пользование.
Да, в crtdll.dll много фукнций, не связанных с математикой, в частности, если вы в программе используете PChar, то можно воспользоваться набором сишных strcmp, strcpy…, так же доступны isalpha, isdigit…, и, наконец, bsearch и qsort. :)
С уважением,
Марк Шевченко.
Как сказать VCL, чтобы клавиши shortcut пунктов главного меню главной формы действовали только в этой форме (но не в модальных окнах, к примеру)?
Nomadicсоветует:
Знакомая проблема. Лечится так:
functionWindowHook( var Message: TMessage): Boolean;
procedure.FormCreate(Sender: TObject);
begin
// MainForm
Application.HookMainWindow(WindowHook);
function.WindowHook;
begin
Result := False;
with Message do
caseMsg of
CM_APPKEYDOWN, CM_APPSYSCOMMAND : Msg := WM_NULL;
При использовании MS SQL Server 6.5 в NT Performance Monitor исчезли все датчики, кроме SQL
Nomadicсоветует:
Кто виноват:
Дело в следующем – при инсталляции NT страна была поставлена US, затем сменена на Russia. В реестре для Perfomance Monitor существует (может существовать) сколь угодно подуровней с названием счетчиков и описанием к ним. При инсталляции все естестественно ставилось в ветвь 409 (US), а ветви 419 (Russia) просто не было. Потом default location была сделана Russia. Perfomance Monitor не мог найти 419 и брал все счетчики из 409. Hо тут пришел SQL и как умная программа при инсталляции создал ветвь 419 и запихал туда свои счетчики. Теперь Perfomance Monitor видит что текущая locale 419, в реестре она есть и берет оттуда счетчики, а они там только для SQL естественно.
Что делать:
Запускаешь regedit (regedt32), находишь где лежат описания счетчиков. Точно я не помню, под рукой NT нет, но примерно так – HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/PerfLib/409 (419). В каждом разделе по два ключа – список названий счетчиков и список их описаний. Заходишь в 409, открываешь ключ для изменений и при помощи Ctrl-Ins копируешь его содержимое в буфер обмена и жмешь Cancel. Теперь идешь в 419 открываешь тот же ключ, идешь в начало списка и при помощи Shift-Ins вставляешь, жмешь Ok. Так надо сделать и для названий счетчиков и для их описания. Для полного счастья можно и SQL счетчики из 419 в 409 (в конец) скопировать.
xWindows — FAQ
Артем Федюкприслал свой сборник любимых функций:
(*
Функции собрал Артем Федюк (Киев, 27.11.2000)E-Mail: xartrain@hotmail.comсообщите, пожалуйста о найденных ошибках*)
{H+}//use huge strings
unitXWindows;
INTERFACE
usesclasses, windows, shellApi, shlobj, sysUtils, forms, mmsystem, controls, Messages, Registry, IniFiles;
{***************************ПРОЦЕССЫ И УПРАВЛЕНИЕ ИМИ**************************}
procedureexecWait( constcomLine: string);
procedureshellExec( constfileName: string);
//также можно использовать Sleep(ms:DWORD);
procedureDelay(msecs : DWORD);
//фактически определяется запущена ли сейчас среда Delphi
functionisDelphiRunning:boolean;
functionRegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external'KERNEL32.DLL';
procedureapplicationInCtrlAltDelList(visi:boolean);
procedureapplicationInTaskBar(visi:boolean);
//Запретить/разрешить Ctrl-Alt-Del
procedureCtrlAltDel(state:boolean);
//Окно без закладки в TaskBar
procedurenoAppInTaskbar;
//Определение какие приложения уже запущены
procedureApplicationList(formHandle:THandle; varstringList:TStringList);
{***************************ВРЕМЯ**********************************************}
functionSetTime(DateTime:TDateTime):Boolean;
//обновить часы - SendMessage(HWND_TOPMOST,WM_TIMECHANGE,0,0);
{***************************ИНТЕРФЕЙС WINDOWS**********************************}
//Cache,Cookies,Desktop,Favorites,Fonts,Personal,Programs,SendTo,Start Menu,Startup
functionShellFolder( constfolderType: string): string;
procedurerefreshWindowsDesktop;
procedureStartbutton(visi:boolean);
//убрать/показать TaskBar
procedureTaskBar(visi:boolean);
//оч2истить меню "Документы"
procedureclearDocuments;
//добавить документ в меню 'Документы'
// Для данного файла должно быть зарегистрировано средство просмотра
procedureaddFileToDocuments( constfileName: string);
//Значение функции TRUE если мелкий шрифт
Интервал:
Закладка: