Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

FFreezeCols := ?;

_HideColumnsValues := TList.Create;

_HideColumns := TList.Create;

end;

// ----------------------------------------------------------------------------

procedureTDbGridEx.KeyDown( varKey: Word; Shift: TShiftState);

begin

if(Key = VK_LEFT) thenColBeforeEnter(-1);

if(Key = VK_RIGHT) thenColBeforeEnter(1);

inherited;

end;

// ----------------------------------------------------------------------------

procedureTDbGridEx.SetFreezeColor(AColor : TColor);

begin

InvalidateRow(0);

end;

// ----------------------------------------------------------------------------

procedureTDbGridEx.SetFreezeCols(AFreezeCols : Integer);

begin

FFreezeCols := AFreezeCols;

InvalidateRow(0);

end;

// ----------------------------------------------------------------------------

procedureTDbGridEx.ColEnter;

begin

ColBeforeEnter(0);

ifAssigned(OnColEnter) thenOnColEnter(Self);

end;

// ----------------------------------------------------------------------------

procedureTDbGridEx.ColBeforeEnter(ADelta : Integer);

varnIndex : Integer;

functionReadWidth : Integer;

vari : Integer;

begin

i := _HideColumns.IndexOf(Columns[nIndex]);

ifi = -1 thenresult := 120

elseresult := Integer(_HideColumnsValues[i]);

end;

procedureSaveWidth;

vari : Integer;

begin

i := _HideColumns.IndexOf(Columns[nIndex]);

ifi <> - 1 then begin

_HideColumnsValues[i] := Pointer(Columns[nIndex].Width);

end else begin

_HideColumns.Add(Columns[nIndex]);

_HideColumnsValues.Add(Pointer(Columns[nIndex].Width));

end;

end;

begin

fornIndex := 0 toColumns.Count - 1 do begin

if(Columns[nIndex].Width = 0) then begin

if(nIndex + 1 <= FreezeCols) or(nIndex >= SelectedIndex + ADelta) then

Columns[nIndex].Width := ReadWidth;

end else begin

SaveWidth;

if(nIndex + 1 > FreezeCols) and(nIndex < SelectedIndex + ADelta) and

(nIndex + 1 < Columns.Count) and(FreezeCols > 0) then

Columns[nIndex].Width := 0;

end;

end;

end;

Dbgrid с цветными ячейками IV

Nomadicсоветует:

Hапример, так:

DefaultDrawing:=False;

….

procedureTfrmCard.GridDrawColumnCell(Sender: TObject; constRect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);

var

Index : Integer;

Marked, Selected: Boolean;

begin

Marked := False;

if(dgMultiSelect inGrid.Options) andTHackDBGrid(Grid).Datalink.Active then

Marked:=Grid.SelectedRows.Find(THackDBGrid(Grid).Datalink.Datasource.Dataset.Bookmark, Index);

Selected := THackDBGrid(Grid).Datalink.Active and(Grid.Row-1 = THackDBGrid(Grid).Datalink.ActiveRecord);

ifMarked then begin

Grid.Canvas.Brush.Color:=$DFEFDF;

Grid.Canvas.Font.Color :=clBlack;

end;

ifSelected then begin

Grid.Canvas.Brush.Color:=$FFFBF0;

Grid.Canvas.Font.Color :=clBlack;

ifMarked thenGrid.Canvas.Brush.Color:=$EFE3DF; { $8F8A30 }

end;

Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

где

THackDBGrid = class(TDBGrid)

propertyDataLink;

propertyUpdateLock;

end;

Обратите внимание на обьявление класса THackDBGrid. Таким образом можно получить доступ к приватным полям, свойствам и методам класса, что, к сожалению, приходится делать, если авторы исходного класса оказались не предусмотрительны.

Dbgrid с цветными ячейками V

Delphi 1

Попробуйте следующий код в обработчике события TDBGrid OnDrawDataCell:

ProcedureTForm1.DBGrid1DrawDataCell(Sender: TObject; constRect: TRect; Field: TField; State: TGridDrawState);

begin

IfgdFocused inState then with(Sender asTDBGrid).Canvas do begin

Brush.Color := clRed;

FillRect(Rect);

TextOut(Rect.Left, Rect.Top, Field.AsString);

end;

end;

Установите рисование по умолчинию (Default drawing) в True. Только после этого можно нарисовать выделенную ячейку. Если вы установили DefaultDrawing в False, вы должны сами рисовать все ячейки, используя свойство Canvas.

Что я получаю от наличия ConstraintBroker (брокера ограничений)?

Nomadicотвечает:

ConstraintBroker позволяет Вам включать проверки на ограничения в данные.

Это означает, что когда Вы запрашиваете данные, Вы получаете вместе с ними и правила, которым они дорлжны удовлетворять. Эти правила автоматически без дополнительного кода входят в силу.

Поскольку это происходит без единой строчки кода, то Вам не требуется переписывать или обновлять приложение каждый раз при изменении правил.

Фактически это простое решение задачи обновления клиентского приложения без выхода из него.

Каждое приложение, использующее ConstraintBroker, автоматически получает это качество…

Улучшенный Dbgrid

Delphi 1

{

Код улучшенного TDBGrid, имеющего свойства Col, Row и Canvas и метод CellRect. Это чрезвычайно полезно в случае, если вы, к примеру, хотите получить выпадающий список на месте редактируемой пользователем ячейки.

}

unitVUBComps;

interface

usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, Grids, DBGrids, DB, Menus;

typeTDBGridVUB = class(TDBGrid)

private

{ Private declarations }

protected

{ Protected declarations }

public

propertyCanvas;

functionCellRect(ACol, ARow: Longint): TRect;

propertyCol;

propertyRow;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents('VUBudget', [TDBGridVUB]);

end;

functionTDBGridVUB.CellRect(ACol, ARow: Longint): TRect;

begin

Result := inheritedCellRect(ACol, ARow);

end;

end.

Пример Drag and Drop между двумя Dbgrid

Delphi 3

Данный пример компонента и демонстрационный проект показывают простой путь осуществления операции "drag and drop" (перетащи и брось) между двумя полями различных табличных сеток.

Запустите Delphi 3 (с незначительными изменениями данный код может работать и в Delphi 1-2).

Активизируйте File|New|Unit. Скопируйте приведенный ниже модуль MyDBGrid во вновь созданный модуль. Сделайте File|Save As. Сохраните модуль как MyDBGrid.pas.

Выберите пункт меню Component|Install Component. Переключитесь на страницу Info New Package. Поместите MyDBGrid.pas в поле редактирования "Unit file name" (имя файла модуля). Назовите модуль MyPackage.dpk. Ответьте Yes на вопрос Delphi 3 о необходимости сборки и установки пакета. Нажмите OK на сообщение Delphi 3 о необходимости включения VCL30.DPL. После этого пакет будет собран и установлен. Теперь компонент TMyDBGrid будет отображен в Палитре Компонентов в группе "Samples". Закройте редактор пакетов и сохраните пакет.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x