Виртуальная библиотека Delphi - [86]

Шрифт
Интервал

>begin

> Memo1.Lines.Add(ColorToString(clRed));

> Memo1.Lines.Add(IntToStr(StringToColor('clRed')));

>end;


Вопрос:

При показе максимизированной формы она перекрывает task bar и не выравнивается по верху экрана. В чем тут дело?

Ответ:

Это может произойти когда свойство position формы установленно в poScreenCenter. Установите position = poDefault.


Вопрос:

Как заставить TEdit не 'пикать' при нажатии недопустимых клавиш?

Ответ:

Перехватите событие KeyPress и установите key = #0 для недопустимых клавиш.

Пример:

>procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

>begin

> if ((UpCase(Key) < 'A') or (UpCase(Key) > 'Z')) then Key := #0;

>end;


Вопрос:

Как получить число и список всех компонентов, расположенных на TNoteBook?

Ответ:

В примере список выводится на Listbox.

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>var

> n: integer;

> p: integer;

>begin

> ListBox1.Clear;

> with Notebook1 do begin

>  for n := 0 to ControlCount - 1 do begin

>   with TPage(Controls[n]) do begin

>    ListBox1.Items.Add('Notebook Page: ' + TPage(Notebook1.Controls[n]).Caption);

>    for p := 0 to ControlCount - 1 do ListBox1.Items.Add(Controls[p].Name);

>    ListBox1.Items.Add(EmptyStr);

>   end;

>  end;

> end;

>end;


Вопрос:

Я хочу вставить escape code в строку при использовании функции Format(). Например, я хочу создать строку, содержащую символ табуляции. В "C" я бы написал что-то вроде sprintf(buffer, "%s\t%s", str);. А как это будет на Pascal'e?

Ответ:

Функция Format Pascal'я не использует escape codes. Вместо этого нужно вставить в строку действительное значение символа в кодировке ASCII.

Пример:

>Buffer := Format('%s'#9'%s', [Str1, Str2]);

>ShowMessage(Format('%s'#9'%s', ['Column1', 'Column2']));


Вопрос:

Как показать первый кадр AVI-файла?

Ответ:

См. пример.

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> Application.ProcessMessages;

> MediaPlayer1.Open;

> Application.ProcessMessages;

> MediaPlayer1.Step;

> Application.ProcessMessages;

> MediaPlayer1.Previous;

>end;


Вопрос:

Когда пользователь щелкает по listview, он переходит в режим редактирования. Как перевести его в режим редактирования по нажатию клавиши (например F2)?

Ответ:

Перехватите F2 на событии keydown.

Пример:

>procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

>begin

> if Ord(Key) = VK_F2 then ListView1.Selected.EditCaption;

>end;


Вопрос:

Когда я добавляю обьект в список TStrings как мне его потом уничтожить?

Ответ:

Просто вызовите метод free этого обьекта.

Пример:

>procedure TForm1.FormCreate(Sender: TObject);

>var Icon: TIcon;

>begin

> Icon := TIcon.Create;

> Icon.LoadFromFile('C:\Program Files\BorlandImages\CONSTRUC.ICO');

> ListBox1.Items.AddObject('Item 0', Icon);

>end;


>procedure TForm1.FormDestroy(Sender: TObject);

>begin

> ListBox1.Items.Objects[0].Free;

>end;


Вопрос:

Вместо печати графики я хочу использовать резидентный шрифт принтера. Как?

Ответ:

Используте функцию Windows API — GetStockObject() чтобы получить дескриптор (handle) шрифта по умолчанию устройства (DEVICE_DEFAULT_FONT) и передайте его Printer.Font.Handle.

Пример:

>uses Printers;

>procedure TForm1.Button1Click(Sender: TObject);

>var

> tm : TTextMetric;

> i : integer;

>begin

> if PrintDialog1.Execute then begin

>  Printer.BeginDoc;

>  Printer.Canvas.Font.Handle := GetStockObject(DEVICE_DEFAULT_FONT);

>  GetTextMetrics(Printer.Canvas.Handle, tm);

>  for i := 1 to 10 do begin

>   Printer.Canvas.TextOut(100,i * tm.tmHeight + tm.tmExternalLeading,'Test');

>  end;

>  Printer.EndDoc;

> end;

>end;


Вопрос:

Мне нужно программно установить некоторые файлы с установочного диска Windows. На многих компьютерах CAB-файлы установки Windows находятся в каком-то каталоге на жестком диске, на других — Windows был установлен с CD. Как узнать откуда была установленна Windows?

Ответ:

Эту информацию можно получить из реестра.

Пример:

>uses Registry;

>procedure TForm1.Button1Click(Sender: TObject);

>var reg: TRegistry;

>begin

> reg := TRegistry.Create;

> reg.RootKey := HKEY_LOCAL_MACHINE;

> reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\SETUP',false);

> ShowMessage(reg.ReadString('SourcePath'));

> reg.CloseKey;

> reg.free;

>end;


Вопрос:

Как получить строку сообщения об ошибке Windows код которой получен функцией GetLastError?

Ответ:

Функция RTL SysErrorMessage(GetLastError).

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> {Cause a Windows system error message to be logged}

> ShowMessage(IntToStr(lStrLen(nil)));

> ShowMessage(SysErrorMessage(GetLastError));

>end;


Вопрос:

Как заставить Delphi выполнять еще более строгую проверка типов? Например — я создаю пользовательский тип, унаследованный от double и могу передавать его любым функциям, принимающим параметр типа double. Как заставить компилятор проводить более строгую проверку типов и выдавать предупреждение в таких случаях?

Ответ:

См. ответ.

Пример:

>type TStrongType = type Double;

>type TWeakType = Double;


>procedure AddWeakType(var d : TWeakType);

>begin

> d := d + 1;

>end;


>procedure AddStrongType(var d : TStrongType);

>begin

> d := d + 1;

>end;


>procedure AddDoubleType(var d : Double);

>begin

> d := d + 1;

>end;


>procedure TForm1.Button1Click(Sender: TObject);


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.



DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.