Большое количество задач можно решить,
III. Обработчик события OnDrawDataCell.
Большое количество задач можно решить, если использовать событие перерисовки ячейки в DBGrid. Например: выделить цветом отрицательные значения или целиком колонку, вывести картинку в ячейке DBGrid, поместить DBCheckBox или DBComboBox в ячейку и многое другое. Ниже приведен вариант, в котором отрицательные значения выделяются красным цветом:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const
Rect: TRect; Field: TField; State: TGridDrawState);
begin
with DBGrid1.Canvas do begin
if (Not (gdFocused in State)) and
(Field.FieldName='BALANCE') and
(Field.AsFloat<0) then begin
Brush.Color:=clRed;
Font.Color:=clWhite;
end;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Field.Text);
end;
end;
1.6 Окна в Delphi
Большинство видимых компонентов в Delphi (все компоненты, имеющие предком класс TWinControl) являются для Windows полноценными окнами. При доступе к этим компонентам из Windows API используется свойство Handle каждого компонента. Ниже приводится несколько “фокусов”, которые можно произвести с окнами компонентов, включая TForm.
-
“Перетаскивание” окна без помощи Caption.
Достаточно известен способ “перетаскивания” окна приложения без Caption (caption - поле заголовка вверху формы), этот способ описан и в разделе технической информации на CD-ROM с Delphi 1.02.
Для решения этой задачи нужно переопределить обработчик события WM_NCHITTEST для окна следующим образом:
type
TForm1 = class(TForm)
. . .
private
procedure WMNCHitTest(var M: TWMNCHitTest);
message wm_NCHitTest;
. . .
end;
. . .
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
{вызов унаследованного обработчика события}
inherited;
{если событие произошло в клиентской области,}
if M.Result = htClient then
{то пусть Windows думает, что это произошло на Caption}
M.Result := htCaption;
end;
Теперь окно можно будет переместить на экране, даже если оно совсем не имеет Caption. Однако, неприятно то, что для такого окна не будут вызываться обработчики событий, связанных с мышкой (OnClick, OnMouseMove и т.д.).
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий