Главная страница
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.051 c
9-1115754839
Georgij
2005-05-10 23:53
2005.09.04
Как осуществить возведение в степень 1/3 ?


14-1123346150
TStas
2005-08-06 20:35
2005.09.04
Что отвечать, если подозреваю, что это вирусописатели?


9-1115537093
grouzd[E]v
2005-05-08 11:24
2005.09.04
OpenGL - LOD feat. Renderable


3-1122037979
Alexey Yershov
2005-07-22 17:12
2005.09.04
Источник данных не найден и не указан драйвер, используемый по ум


14-1123661739
REP
2005-08-10 12:15
2005.09.04
XP, DOS программы и клавиатура