Валентин Озеров - Советы по 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 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Это "неофициальный" путь. Существует несколько причин того, почему dbgrid не поддерживает этого события. Используйте этот код на свой страх и риск.

unitUdbgclk;

interface

usesWindows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DBTables, DB;

type

thack = class(tcontrol);

TForm1 = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

DataSource1: TDataSource;

Table1: TTable;

procedureButton1Click(Sender: TObject);

procedureFormClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

varForm1: TForm1;

implementation

{$R *.DFM}

procedureTForm1.Button1Click(Sender: TObject);

begin

THack(dbgrid1).controlstyle :=THack(dbgrid1).controlstyle + [csClickEvents];

THack(dbgrid1).OnClick := Form1.OnClick;

end;

procedureTForm1.FormClick(Sender: TObject);

begin

messagebeep(0);

application.processmessages;

end;

end.

Числа с плавающей точкой в DBGrid

Delphi 1

Для показа в табличной сетке дробных чисел, выберите таблицу, с которой связана ваша сетка (через datasource, источник данных).

Активизируйте редактор полей (правой кнопкой мыши) и выберите поле, в котором вы хотите видеть дробное число.

Измените значение свойств 'DisplayFormat' и 'EditFormat', чтобы дробь имела формат такой, какой вы хотите (к примеру, шаблон '0.00', позволяющий сетке показывать поле с двумя цифрами после запятой).

Дважды щелкните на компоненте table, расположенном на форме. Нажмите на кнопку 'Add'. Будут показаны все поля вашей таблицы. Выберите их в списке «Available field» (доступные поля) и щелкните на кнопке OK. Теперь при щелчке на имени поля, в Инспекторе Объектов будут показаны все свойства, относящиеся к данному полю, здесь можно изменить текст заголовка, выводимый формат «DisplayFormat» (это как раз то, что вам нужно, измените его на ####0.0) и пр.

Получение данных DBGrid прежде, чем они будут отправлены: как мне узнать, что пользователь вводит в DBGrid?

Delphi 3

Вы можете «видеть» что набирается в TDBGrid, «смотря» на контрол сетки TInPlaceEdit. Вы должны убедиться только в том, что к моменту использования TInPlaceEdit, контрол уже создан. Следующая функция покажет данные, редактируемые в колонках сетки:

procedureTForm1.DBGrid1KeyUp(Sender: TObject; varKey: Word; Shift: TShiftState);

varB: byte;

begin

forB := 0 toDBGrid1.ControlCount - 1 do

ifDBGrid1.Controls[B] isTInPlaceEdit then begin

withDBGrid1.Controls[B] asTInPlaceEdit do begin

Label1.Caption := 'Текст = ' + Text;

end;

end;

end;

Хочу шапку в TDBGrid. Как сделать?

Nomadicсоветует:

Уже реализовано в виде вот этого компонента — © Andre

unitbdbgrid;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, Math;

type

TOnDrawTitleEvent = procedure(ACol : integer; ARect : TRect; varTitleText : string) of object;

TBitDBGrid = class(TDBGrid)

private

FBitmapBrowse : TBitmap;

FBitmapEdit : TBitmap;

FBitmapInsert : TBitmap;

FBitmapFill : TBitmap;

FRealTitleFont : TFont;

FOnDrawTitle : TOnDrawTitleEvent;

FResizeFlag : boolean;

{ Private declarations }

procedureSetRealTitleFont(Value : TFont);

procedureUpdateTitlesHeight;

protected

procedureDrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;

procedureMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;

procedureMouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;

{ Protected declarations }

public

constructorCreate(AOwner : TComponent); override;

destructorDestroy; override;

{ Public declarations }

published

propertyOnDrawTitle : TOnDrawTitleEvent readFOnDrawTitle writeFOnDrawTitle;

propertyRealTitleFont : TFont readFRealTitleFont writeSetRealTitleFont;

{ Published declarations }

end;

procedure Register;

implementation

varDrawBitmap : TBitmap;

functionMax(X, Y: Integer): Integer;

begin

Result := Y;

ifX > Y thenResult := X;

end;

procedureWriteText(ACanvas: TCanvas; ARect: TRect; DX, DY: Integer; constText: string; Alignment: TAlignment);

// © Borland function :)

constAlignFlags : array[TAlignment] ofInteger =

( DT_LEFT orDT_WORDBREAK orDT_EXPANDTABS orDT_NOPREFIX,

DT_RIGHT orDT_WORDBREAK orDT_EXPANDTABS orDT_NOPREFIX,

DT_CENTER orDT_WORDBREAK orDT_EXPANDTABS orDT_NOPREFIX );

var

B, R: TRect;

I, Left: Integer;

begin

withDrawBitmap, ARect do{ Use offscreen bitmap to eliminate flicker and }

begin{ brush origin tics in painting / scrolling. }

Width := Max(Width, Right - Left);

Height := Max(Height, Bottom - Top);

R := Rect(DX, DY, Right - Left - 1, Bottom - Top - 1);

B := Rect(0, 0, Right - Left, Bottom - Top);

end;

withDrawBitmap.Canvas do begin

DrawBitmap.Canvas.CopyRect(B, ACanvas, ARect);

Font := ACanvas.Font;

Font.Color := ACanvas.Font.Color;

Brush := ACanvas.Brush;

SetBkMode(Handle, TRANSPARENT);

DrawText(Handle, PChar(Text), Length(Text), R, AlignFlags[Alignment]);

end;

ACanvas.CopyRect(ARect, DrawBitmap.Canvas, B);

end;

constructorTBitDBGrid.Create(AOwner : TComponent);

begin

inheritedCreate(Aowner);

FRealTitleFont := TFont.Create;

FResizeFlag := false;

end;

destructorTBitDBGrid.Destroy;

begin

FRealTitleFont.Free;

inheritedDestroy;

end;

procedureTBitDBGrid.UpdateTitlesHeight;

var

Loop : integer;

MaxTextHeight : integer;

RRect : TRect;

begin

MaxTextHeight := 0;

forloop := 0 toColumns.Count - 1 do begin

RRect := CellRect(0, 0);

RRect.Right := Columns[Loop].Width;

RRect.Left := 0;

Canvas.Font := RealTitleFont;

MaxTextHeight := Max(MaxTextHeight, DrawText(Canvas.Handle, PChar(Columns[Loop].Title.Caption), Length(Columns[Loop].Title.Caption), RRect, DT_CALCRECT + DT_WORDBREAK));

end;

ifTitleFont.Height <> - MaxTextHeight thenTitleFont.Height := - MaxTextHeight;

end;

procedureTBitDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

ifMouseCoord(X, Y).Y = 0 thenFResizeFlag := true;

inheritedMouseDown(Button, Shift, X, Y);

end;

procedureTBitDBGrid.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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