Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Двухстрочный заголовок столбца в DBGrid   Найти похожие ветки 

 
BBCHa ©   (2005-07-20 15:35) [0]

Народ, подскажите, можно ли как то осуществить двухстрочный заголовок столбца в DBGrid???


 
Big Joe ©   (2005-07-20 15:56) [1]

Я протестировал данный код и он отлично работал. Небольшая доводка все-же нужна (обработка blob-полей, обработка ошибок и пр.), но это не сложно.

unit Dbmygrid;

interface

uses

 SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
 Forms, Dialogs, DB, DBTables, StdCtrls, ExtCtrls, Grids, DBGrids;

type

 TMultiLineDBGrid = class(TDBGrid)
 private
   FLinesPerRow: Integer;
   procedure DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField;
     State: TGridDrawState);
   procedure LayoutChanged; override;
   procedure SetLinesPerRow(ALinesPerRow: Integer);
 public
   property LinesPerRow: Integer read FLinesPerRow write SetLinesPerRow default
     1;
   constructor Create(AOwner: TComponent); override;
 end;

implementation

constructor TMultiLineDBGrid.Create(AOwner: TComponent);
begin

 inherited Create(AOwner);
 FLinesPerRow := 1;
 OnDrawDataCell := DrawDataCell;
end;

procedure TMultiLineDBGrid.LayOutChanged;
begin

 inherited LayOutChanged;
 DefaultRowHeight := DefaultRowHeight * LinesPerRow;
end;

procedure TMultiLineDBGrid.DrawDataCell(Sender: TObject; const Rect: TRect;
 Field: TField; State: TGridDrawState);
var

 Format: Word;
 C: array[0..255] of Char;
begin

 if LinesPerRow = 1 then
   Format := DT_SINGLELINE or DT_LEFT
 else
   Format := DT_LEFT or DT_WORDBREAK;

 Canvas.FillRect(Rect);

 StrPCopy(C, Field.AsString);
 WinProcs.DrawText(Canvas.Handle, C, StrLen(C), Rect, Format);
end;

procedure TMultiLineDBGrid.SetLinesPerRow(ALinesPerRow: Integer);
begin

 if ALinesPerRow <> FLinesPerRow then
 begin
   FLinesPerRow := ALinesPerRow;
   LayoutChanged;
 end;
end;

end.


 
TQuery   (2005-07-20 16:03) [2]

Сходи на DelphiKingDom, там най дешь все по DBGrid


 
rosl   (2005-07-21 01:36) [3]

скачай EhLib, там grid со всевозможными наворотами (в том числе и многострочными заголовками) там же есть пример http://ehlib.com/RUS/downloads.htm


 
rosl   (2005-07-21 01:47) [4]

подожди, только что посмотрел, там выложена версия 3.6 - она только при запущенном delphi работает. Поищи версию пониже - 3.5 например, если хочешь вышлю


 
ANB ©   (2005-07-21 08:21) [5]


> rosl   (21.07.05 01:36) [3]
- дык это просто перенос текста включен. А реально многострочные (с объединением групп полей) - это квантум грид нужно юзать. Но он здоровый, тормознутый и писать с ним не удобно.


 
Amoeba ©   (2005-07-21 18:16) [6]


> rosl   (21.07.05 01:47) [4]
> подожди, только что посмотрел, там выложена версия 3.6 -
> она только при запущенном delphi работает. Поищи версию
> пониже - 3.5 например, если хочешь вышлю

Не надо наводить тень на плетень. Сперва сам прочитай то, что там чуть ниже написано РУССКИМИ буквами. И не надо искать 3.5.
http://ehlib.com/RUS/downloads.htm


 
Val ©   (2005-07-21 18:20) [7]

>[5] ANB ©   (21.07.05 08:21)
В Eh есть многострочные заголовки, с объединением - | в кэпшене колонки.


 
ANB ©   (2005-07-21 19:09) [8]


> Val ©   (21.07.05 18:20) [7]

Ща попробую, а что включить еще надо ?


 
ANB ©   (2005-07-21 19:17) [9]

Попробовал - обалдеть, все работает. EhLib рулит !!!



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
6-1116582908
Alex870
2005-05-20 13:55
2005.09.04
Удаленный логин


2-1123259827
MAVr
2005-08-05 20:37
2005.09.04
Cмена атрибутов файлов


8-1114267723
COOLer
2005-04-23 18:48
2005.09.04
Ох уж этот TImage


1-1123832169
Ка
2005-08-12 11:36
2005.09.04
Как отловить одновременно два события


3-1122286641
Layner
2005-07-25 14:17
2005.09.04
FIREBIRD, как подключить файл *.gdb