Вопрос: При попытке присвоить значение свойству "selected" ListBox'а вырабатывается exception "Index is out of bounds". В чем тут дело и как присвоить значение свойству selected? Ответ: Свойство "selected" компонента ТListBox может быть использованно только если свойство MultiSelect установленно в True. Если Вы работаете с ListBox'ом у которого MultiSelect=false то используйте свойство ItemIndex. Пример: procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add('1'); ListBox1.Items.Add('2'); {This will fail on a single selection ListBox} // ListBox1.Selected[1] := true; ListBox1.ItemIndex := 1; {This is ok} end;
Вопрос: Как добится того чтобы TMemo и TEdit имели работали не только в режиме вставки символов, но и в режиме замены? Ответ:
Элементы управления Windows
TEdit и TMemo не имеют режима замены. Однако этот режим можно эмулировать установив
свойство SelLength edit’а или memo в 1 при обработке события KeyPress. Это заставит
его перезаписывать символ в текущей позиции курсора. В примере этот способ используется
для TMemo. Режим вставка/замена переключается клавишей “Insert”. Прочитать остальную часть записи »
9июня
Как получить строку сообщения об ошибке Windows код которой получен функцией GetLastError?
admin | Рубрика: Delphi FAQ
Вопрос: Как получить строку сообщения об ошибке 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;
9июня
Вместо печати графики я хочу использовать резидентный шрифт принтера. Как?
admin | Рубрика: Delphi FAQ
Вопрос: Вместо печати графики я хочу использовать резидентный шрифт принтера. Как? Ответ:
Используте функцию Windows
API – GetStockObject() чтобы получить дескриптор (handle) шрифта по умолчанию
устройства (DEVICE_DEFAULT_FONT) и передайте его Printer.Font.Handle. Прочитать остальную часть записи »
Вопрос: Как показать первый кадр AVI-файла? Ответ: См. пример. Пример: procedure TForm1.Button1Click(Sender: TObject); begin Application.ProcessMessages; MediaPlayer1.Open; Application.ProcessMessages; MediaPlayer1.Step; Application.ProcessMessages; MediaPlayer1.Previous; end;