Читаем Виртуальная библиотека Delphi полностью

 HTERROR: s:= 'HTERROR';

 HTTRANSPARENT: s:= 'HTTRANSPARENT';

 HTNOWHERE: s:= 'HTNOWHERE';

 HTCLIENT: s:= 'HTCLIENT';

 HTCAPTION: s:= 'HTCAPTION';

 HTSYSMENU: s:= 'HTSYSMENU';

 HTSIZE: s:= 'HTSIZE';

 HTMENU: s:= 'HTMENU';

 HTHSCROLL: s:= 'HTHSCROLL';

 HTVSCROLL: s:= 'HTVSCROLL';

 HTMINBUTTON: s:= 'HTMINBUTTON';

 HTMAXBUTTON: s:= 'HTMAXBUTTON';

 HTLEFT: s:= 'HTLEFT';

 HTRIGHT: s:= 'HTRIGHT';

 HTTOP: s := 'HTTOP';

 HTTOPLEFT: s:= 'HTTOPLEFT';

 HTTOPRIGHT: s:= 'HTTOPRIGHT';

 HTBOTTOM: s:= 'HTBOTTOM';

 HTBOTTOMLEFT: s:= 'HTBOTTOMLEFT';

 HTBOTTOMRIGHT: s:= 'HTBOTTOMRIGHT';

 HTBORDER: s:= 'HTBORDER';

 HTOBJECT: s:= 'HTOBJECT';

 HTCLOSE: s:= 'HTCLOSE';

 HTHELP: s:= 'HTHELP';

 else s:= '';

 end;

 Form1.Caption := s;

 Message.Result := 0;

end;

end.

Вопрос:

При попытке использовать метод TCanvas.StretchDraw чтобы нарисовать иконку увеличенной ее размер не изменяется. Что делать?

Ответ:

Иконки всегда рисуются размером принятым в системе по умолчанию. Чтобы показать увеличенный вид иконки скопируйте ее на bitmap, а зате используйте метод TCanvas.StretchDraw.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var TheBitmap : TBitmap;

begin

 TheBitmap := TBitmap.Create;

 TheBitmap.Width := Application.Icon.Width;

 TheBitmap.Height := Application.Icon.Height;

 TheBitmap.Canvas.Draw(0, 0, Application.Icon);

 Form1.Canvas.StretchDraw(Rect(0,0,TheBitmap.Width * 3,TheBitmap.Height * 3), TheBitmap);

 TheBitmap.Free;

end;

Вопрос:

Можно ли сделать так чтобы TStringGrid автоматически изменял ширину колонок, чтобы вместить самую длинную строчку в колонке?

Ответ: См. пример.

Пример:

procedure AutoSizeGridColumn(Grid : TStringGrid; column : integer);

var

 i : integer;

 temp : integer;

 max : integer;

begin

 max := 0;

 for i := 0 to (Grid.RowCount - 1) do begin

  temp := Grid.Canvas.TextWidth(grid.cells[column, i]);

  if temp > max then max := temp;

 end;

 Grid.ColWidths[column] := Max + Grid.GridLineWidth + 3;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 AutoSizeGridColumn(StringGrid1, 1);

end;

Вопрос:

TTimer работает не достаточно точно. Как получить более высокую точность?

Ответ:

Таймер Windows не был создан с целью получения сверхточного хронометра. :-( Другими словами, когда Вы устанавливаете таймер на срабатывания каждые 1000 миллисекунд, он может срабатывать через интервал несколько больший чем 1000 миллисекунд. Значения меньше 55 миллисекунд никогда не будут срабатывать вовремя в Windows, поскольку это минимальная точность таймера. Можно проверять системное время и сравнивать его со временем предыдущего события таймера чтобы повысить точность.

Вопрос:

Как поместить JPEG-картинку в exe-файл и потом загрузить ее?

Ответ:

1) Создайте текстовый файл с расширением ".rc". Имя этого файла должно отличаться от имени файла-проекта или любого модуля проекта.

Файл должен содержать строку вроде: MYJPEG JPEG C:\DownLoad\MY.JPG

где:

• "MYJPEG" — имя ресурса

• "JPEG" — пользовательский тип ресурса

• "C:\DownLoad\MY.JPG" — путь к JPEG файлу.

Пусть например rc-файл называется "foo.rc"

Запустите BRCC32.exe (Borland Resource CommandLine Compiler) — программа находится в каталоге Bin Delphi/C++ Builder'а — передав ей в качестве параметра полный путь к rc-файлу. В нашем примере:

C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\FOO.RC

Вы получите откомпилированный ресурс — файл с расширением ".res". (в нашем случае — foo.res). Далее добавьте ресурс к своему приложению.

{Грузим ресурс}

{$R FOO.RES}

uses Jpeg;

procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture);

var

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных