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

Как поместить прозрачную фоновую каринку на компонент CoolBar?

Ответ:

procedure TForm1.Button1Click(Sender: TObject);

var

 Bm1 : TBitmap;

 Bm2 : TBitmap;

begin

 Bm1 := TBitmap.Create;

 Bm2 := TBitmap.Create;

 Bm1.LoadFromFile('c:\download\test.bmp');

 Bm2.Width := Bm1.Width;

 Bm2.Height := Bm1.Height;

 bm2.Canvas.Brush.Color := CoolBar1.Color;

 bm2.Canvas.BrushCopy(Rect(0, 0, bm2.Width, bm2.Height), Bm1, Rect(0, 0, Bm1.width, Bm1.Height), ClWhite);

 bm1.Free;

 CoolBar1.Bitmap.Assign(bm2);

 bm2.Free;

end;

Вопрос:

Ползунок компонента TScrollBar все время мигает. Как это отключить?

Ответ:

Установите свойтсво ScrollBar.TabStop в False.

Вопрос:

Как программно перевести DBgrid в реим редактирования и установить курсор в окошке редактирования в требуемую позицию?

Ответ:

Переведите таблицу в режим редактирования, затем получите дескриптор (handle) окна редактирования и перешлите ей сообщение EM_SETSEL. В качестве параметров вы должны переслать начальную позицию курсора, и конечную позицию, определяющую конец выделения текста цветом. В приведенном примере курсор помещается во вторую позицию, текст внутри ячейки не выделяется.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var h : THandle;

begin

 Application.ProcessMessages;

 DbGrid1.SetFocus;

 DbGrid1.EditorMode := true;

 Application.ProcessMessages;

 h:= Windows.GetFocus;

 SendMessage(h, EM_SETSEL, 2, 2);

end;

Вопрос:

Как поместить курсор в определенную позицию edit'а и подобных ему элементов управления?

Ответ:

Можно использовать методы Delphi SelStart() и SelectLength().

Пример:

procedure TForm1.Button1Click(Sender: TObject);

begin

 Edit1.SetFocus;

 {переводим курсор во вторую позицию}

 Edit1.SelStart := 2;

 {не выделяем никакого текста}

 Edit1.SelLength := 0;

end;

Вопрос:

Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение размера формы?

Ответ:

В примере перехватывается сообщение WM_SYSCOMMAND. Если это сообщение говорит о минимизации или максимизации формы — пищит динамик.

Пример:

type TForm1 = class(TForm)

private

 {Private declarations}

 procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

public

 {Public declarations}

end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand;

begin

 if (Msg.CmdType = SC_MINIMIZE) or (Msg.CmdType = SC_MAXIMIZE) then MessageBeep(0)

 else inherited;

end;

Вопрос:

Можно ли сделать так — одна форма показывает другую и остается позади нее, но фокус ввода не переходит к новой форме, а остается у старой?

Ответ:

В примере показывается не автосоздаваемая (non auto-created) форма, но фокус ввода ей не передается.

Пример:

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);

begin

 Form2 := TForm2.Create(Application);

 Form2.Visible := FALSE;

 ShowWindow(Form2.Handle, SW_SHOWNA);

end;

Вопрос:

На некоторых laptop компьютерах может не быть флоппи дисковода. Можно ли удалять из списка TDriveComboBox диски которые отключены?

Ответ:

В примере TDriveComboBox не показывает дисководы, которые не готовы. (not ready). Учтите что на многих компьютерах будет ощутимая задержка при поверке plug&play флоппи дисковода.

Пример:

procedure TForm1.FormCreate(Sender: TObject);

var

 i : integer;

 OldErrorMode : Word;

 OldDirectory : string;

begin

 OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);

 GetDir(0, OldDirectory);

 i := 0;

 while i <= DriveComboBox1.Items.Count - 1 do begin

  {$I-}

  ChDir(DriveComboBox1.Items[i][1] + ':\');

  {$I+}

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

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

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

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

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

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

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

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

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