Виртуальная библиотека Delphi
- Название:Виртуальная библиотека Delphi
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Виртуальная библиотека Delphi краткое содержание
Виртуальная библиотека Delphi - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
NullItem1.ShortCut := ShortCut(VK_Tab, [ssAlt]);
( NullItem1 нужно заменить на название созданного вами объекта — пункта меню)
Шаги 4-6 предотвращают переход на приложение по Alt-Tab.
25. Как изменить шрифт у Application.Title (заголовка приложения)?
Никак. Это ограничение Windows — вы не можете изменить шрифт ни у одного заголовка ни у приложения, ни у окна. Для окна можно предложить следующее — создать свое окно без заголовка ( Caption ) и рамки, которое будет само выводить нужную надпись нужным шрифтом и одновременно будет способно изменять свои размеры.
26. Каким образом (желательно не специфичным для Delphi) узнать, открыто меню или нет?
Вот так:
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Item01: TMenuItem;
Item11: TMenuItem;
Item21: TMenuItem;
private
{ Private declarations }
public
procedureWMMenuSelect( varM: TWMMenuSelect); messageWM_MENUSELECT;
end;
implementation
{$R *.RES}
procedureTForm1.WMMenuSelect( varM: TWMMenuSelect);
begin
inherited;
{ Этот Beep сигнализирует вообще об открытии меню }
MessageBeep(MB_ICONASTERISK);
{ А зтот Beep - только о выборе в меню нового Item }
ifM.Menu = MainMenu1.Handle thenMessageBeep(MB_ICONASTERISK);
end;
end.
Разное
1. Передача переменной в отчет ReportSmith.
Следующий код показывает, как передать переменную в отчет.
В примере строковой переменной отчета 'City' присваивается значение 'Bombey' . Подразумевается, что есть готовый отчет с данной переменной. Поместите компонент TReport на форму и установите требуемые свойства для вызова печати отчета. Напишите обработчик OnClick для кнопки Button1 на форме (кнопка — для простоты):
procedureTForm1.Button1Click(Sender: TObject);
begin
Report1.InitialValues.Clear;
Report1.InitialValues.Add( '@City=');
Report1.Run;
end;
2. Как получить русские буквы в DBD?

Имя шрифта для отображения русских букв берется из файла PDOXWIN.INI секция [Properties] строка SystemFont. Если очень хочется, то можно исправить имя 'PDOXWIN.INI' на 'DBD.INI' в файле DBSRV.DLL (он лежит там же где и DBD.EXE) по смещению $E9D8 (не забудьте после 'DBD.INI' поставить шестнадцатеричный ноль), и в секции [Properties] файла DBD.INI добавить строку типа
SystemFont = Courier New Cyr
По умолчанию имя фонта для отображения русских букв — Arial.

Действительно, если у Вас Pan Euro или русская версия Windows95, то DBD не будет показывать шрифты Cyr в Preferences/General/Default system font.
Решить эту проблему можно двумя способами:
1. записать в каталог WINDOWS/FONTS шрифты Arial Cyr от русских Windows и сделать ShutDown. После загрузки Arial Cyr будет доступен для выбора.
2. поменять шрифт в Registry вручную например на MS Sans Serif - HKEY_CURRENT_USER/SOFTWARE/Borland/DBD/7.0/Preferences/Propertiesключ SystemFont.
3. Как печатать отчеты из приложения Delphi без использования ReportSmith?
1. Лучше всего использовать специализированные генераторы отчетов в виде компонентов, например QuickReport или Ace Reporter.
2. Можно использовать печать формы, например: Form1.Print .
3. Можно использовать свойство Canvas объекта Printer .
4. Как узнать количество точек на дюйм для принтера?
VertPixelsPerInch := GetDeviceCaps(Printer.Handle, LogPixelsX);
HorzPixelsPerInch := GetDeviceCaps(Printer.Handle, LogPixelsY);
5. Как определить, приложение запущено из под Delphi IDE или как отдельный файл?
Для этого следует проверить существование определенных окон:

Delphi 1.0
functionDelphiLoaded: Boolean;
functionWindowExists(ClassName, WindowName: string): Boolean;
var
PClassName, PWindowName: PChar;
AClassName, AWindowName: array[0..63] ofChar;
begin
ifClassName = '' thenPClassName := nil
elsePClassName := StrPCopy(@AClassName[0], ClassName);
ifWindowName = ''then PWindowName := nil
elsePWindowName := StrPCopy(@AWindowName[0], WindowName);
Result := FindWindow(PClassName, PWindowName) <> 0;
end;
begin
Result := WindowExists( 'TPropertyInspector', 'Object Inspector')
andWindowExists( 'TMenuBuilder', 'Menu Designer')
andWindowExists( 'TApplication', 'Delphi')
andWindowExists( 'TAlignPalette', 'Align')
andWindowExists( 'TAppBuilder', '');
end;

Delphi 2.0
functionDelphiLoaded: Boolean;
functionWindowExists(ClassName, WindowName: string): Boolean;
begin
Result := FindWindow(PChar(ClassName), PChar(WindowName)) <> 0;
end;
begin
Result := WindowExists( 'TPropertyInspector', 'Object Inspector')
andWindowExists( 'TMenuBuilder', 'Menu Designer')
andWindowExists( 'TApplication', 'Delphi')
andWindowExists( 'TAlignPalette', 'Align')
andWindowExists( 'TAppBuilder', '');
end;

Другой вариант для Delphi 1.0, работает только в EXE файлах (не в DLL).
functionInIDE: Boolean;
begin
Result := Bool(PrefixSeg) andBool(PWordArray(MemL[DSeg:36])^[8]));
; end
6. Что нужно предусмотреть при разработке приложения, которое будет работать при различном разрешении дисплея?
На ранней стадии создания приложения решите для себя хотите ли вы позволить форме масштабироваться. Преимущество немасштабируемой формы в том, что ничего не меняется во время выполнения. В этом же заключается и недостаток (ваша форма может бать слишком маленькой или слишком большой в некоторых случаях).
1. Если вы не собираетесь делать форму масштабируемой, установите свойство Scaled=False и дальше не читайте.
2. В противном случае Scaled=True .
1. Установите AutoScroll=False . AutoScroll = True означает 'не менять размер окна формы при выполнении' что не очень хорошо выглядит, когда содержимое формы размер меняет.
2. Установите шрифты в форме на самые распространенные TrueType шрифты, например Arial, Times New Roman, Courier. Если вдруг выбранного шрифта не окажется на пользовательском компьютере, то Windows выберет альтернативный шрифт из того же семейства. Этот шрифт может не совпадать по размерус исходным, что вызовет проблемы.
3. Установите св-во Position в любое значение, отличное от poDesigned . poDesigned оставляет форму там, где она была во время дизайна, и, например, при разрешении 1280×1024 форма может оказаться в левом верхнем углу и совершенно за экраном при 640×480.
Читать дальшеИнтервал:
Закладка: