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

 Pen : hPen;

 OldPen : hPen;

 OldBrush : hBrush;

begin

 inherited;

 dc := GetWindowDC(Handle);

 msg.Result := 1;

 Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0));

 OldPen := SelectObject(dc, Pen);

 OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));

 Rectangle(dc, 0,0, Form1.Width, Form1.Height);

 SelectObject(dc, OldBrush);

 SelectObject(dc, OldPen);

 DeleteObject(Pen);

 ReleaseDC(Handle, Canvas.Handle);

end;

Вопрос:

Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Ответ:

Создайте процедуру, которая будет вызываться при событии Application.OnIdle.

Обьявим процедуру:

{Private declarations}

procedure IdleEventHandler(Sender: TObject; var Done: Boolean);

В разделе implementation опишем процедуру:

procedure TForm1.IdleEventHandler(Sender: TObject; var Done: Boolean);

begin

 {Do a small bit of work here}

 Done := false;

end;

В методе Form'ы OnCreate — укажем что наша процедура вызывается на событии Application.OnIdle.

Application.OnIdle := IdleEventHandler;

Событие OnIdle возникает один раз — когда приложение переходит в режим "безделья" (idle). Если в обработчике переменной Done присвоить False событие будет вызываться вновь и вновь, до тех пор пока приложение "бездельничает" и переменной Done не присвоенно значение True.

Вопрос:

При перемещении фокуса ввода клавишей Tab чтобы переместить его в RadioGroup нужно нажать клавишу Tab дважды если какой нибудь пункт RadioGroup уже выбран, но только один раз если не выбран. Можно ли сделать поведение RadioGroup логичным?

Ответ:

Установка свойства RadioGroup'ы TabStop в false должна решить эту проблему — поскольку клавиша tab будет продолжать работать — перемещаясь сразу на выделенный пункт RadioGroup.

Вопрос:

Как разместить маленькие картинки в компоненте TPopUpMenu?

Ответ:

В приведенном примере показано как это сделать с использованием функции Windows API SetMenuItemBitmaps(). Эта функция получает handle popup menu, позицию строчки меню куда будет помещена картинка, и два дескриптора (handles) на две картинки (одна из них — картинка которая будет показана когда строка меню доступна, вторая — когда строка меню недоступна).

type TForm1 = class(TForm)

 PopupMenu1: TPopupMenu;

 Pop11: TMenuItem;

 Pop21: TMenuItem;

 Pop31: TMenuItem;

 procedure FormCreate(Sender: TObject);

 procedure FormDestroy(Sender: TObject);

 procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

private

 {Private declarations}

 bmUnChecked : TBitmap;

 bmChecked : TBitmap;

public

 {Public declarations}

end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

 bmUnChecked := TBitmap.Create;

 bmUnChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\ALARMRNG.BMP');

 bmChecked := TBitmap.Create;

 bmChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\CHECK.BMP');

 {Add the bitmaps to the item at index 1 in PopUpMenu}

 SetMenuItemBitmaps(PopUpMenu1.Handle,1,MF_BYPOSITION,BmUnChecked.Handle, BmChecked.Handle);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

 bmUnChecked.Free;

 bmChecked.Free;

end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var pt : TPoint;

begin

 pt := ClientToScreen(Point(x, y));

 PopUpMenu1.Popup(pt.x, pt.y);

end;

Вопрос:

Как узнать число кадров AVI файла, и выяснить как долго будет проигрываться этот файл?

Ответ:

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

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

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

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

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

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

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

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

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