Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Вниз

аналог DBGrid, наследник TGraphicControl   Найти похожие ветки 

 
q-q   (2006-05-11 16:02) [0]

как сделать, или где взять аналог DBGrid, наследник TGraphicControl, со свойством Transparent (нужен прозрачный грид только для отбражения данных и навигации по ним)


 
Sergey13 ©   (2006-05-11 16:13) [1]

>нужен прозрачный грид
чем только люди не занимаются. 8-)


 
Elen ©   (2006-05-11 16:28) [2]

Поройся среди компонентов. Кажется что-то было в LMD да и QuantiumGrid можно наити в ИНете там кажется это предусмотренно


 
q-q   (2006-05-11 16:34) [3]

LMD да и QuantiumGrid - платные
Грид нужен по необходимости, надо выводить поверх картинки данные в виде таблицы из БД


 
Elen ©   (2006-05-11 16:59) [4]

Есть бесплатные или с кряком компоненты в ИНете и тот-же LMD (Кстати появилась новая версия) и остальные. Ты просто плохо искал


 
Loginov Dmitry ©   (2006-05-11 19:23) [5]

q-q   (11.05.06 16:34) [3]
Грид нужен по необходимости, надо выводить поверх картинки данные в виде таблицы из БД


Да и в обычном Гриде такое можно сотворить (при прорисовке ячеек копировать кусочек фона из TBitmap, а затем уж и сам текст рисовать)


 
q-q   (2006-05-12 13:51) [6]

Loginov Dmitry ©   (11.05.06 19:23)
Да и в обычном Гриде такое можно сотворить (при прорисовке ячеек копировать кусочек фона из TBitmap ...


Делаю так

type
 TDBGrid = class(DBGrids.TDBGrid)
 private
   FBmp: TBitmap;
 protected
   procedure Scroll(Distance: Integer); override;
   procedure Paint; override;
   procedure DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); override;
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 end;

constructor TDBGrid.Create(AOwner: TComponent);
begin
 inherited;
 FBmp := TBitmap.Create;
 FBmp.LoadFromFile("maket.bmp");
 ScrollBars := ssVertical;
end;

destructor TDBGrid.Destroy;
begin
 FBmp.Free;
 inherited;
end;

procedure TDBGrid.DrawColumnCell(const Rect: TRect; DataCol: Integer;
 Column: TColumn; State: TGridDrawState);
var
 Value: String;
 R: TRect;
begin
FBmp.Canvas.Handle, Rect.Left, Rect.Top, SRCCOPY);
 Windows.BitBlt(Canvas.Handle, Rect.Left, Rect.Top-1, Rect.Right, Rect.Bottom-1, FBmp.Canvas.Handle, Rect.Left, Rect.Top, SRCCOPY);
 Canvas.Brush.Style := bsClear;
 R := Rect;
 Value := Column.Field.AsString;
 DrawText(Canvas.Handle, PChar(Value), Length(Value), R, DT_LEFT or DT_VCENTER);
 inherited;
end;

procedure TDBGrid.Paint;
var
 DrawInfo: TGridDrawInfo;
begin
 CalcDrawInfo(DrawInfo);
 inherited;
 with DrawInfo do
 begin
   { Fill in area not occupied by cells }
   if Horz.GridBoundary < Horz.GridExtent then
   begin
     Windows.BitBlt(Canvas.Handle, Horz.GridBoundary, -1, Horz.GridExtent, Vert.GridBoundary-1,
     FBmp.Canvas.Handle, Horz.GridBoundary, 0, SRCCOPY);
   end;
   if Vert.GridBoundary < Vert.GridExtent then
   begin
     Windows.BitBlt(Canvas.Handle, 0, Vert.GridBoundary, Horz.GridExtent, Vert.GridExtent,
      FBmp.Canvas.Handle, 0, Vert.GridBoundary, SRCCOPY);
   end;
 end;
end;

procedure TDBGrid.Scroll(Distance: Integer);
begin
inherited;
 InvalidateRect(Handle, nil, False);
end;

Противно мерцает


 
Игорь Шевченко ©   (2006-05-12 15:50) [7]

Достаточно вдумчиво переписать метод Paint у Grid"а. Стандартный метод явно затирает всю область вне текста цветом самого грида.



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

Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.018 c
11-1127135844
=mike=
2005-09-19 17:17
2006.05.28
Не получается скомпилировать проект


15-1146722158
MrShadow_
2006-05-04 09:55
2006.05.28
Электронный справочник по Delphi


5-1132651701
nikolas
2005-11-22 12:28
2006.05.28
Текущая дата в TDateEdit из RxLib


2-1147511357
Vitalik__
2006-05-13 13:09
2006.05.28
Кто нибудь работал с SynEdit?


15-1146318618
Michael5
2006-04-29 17:50
2006.05.28
А правда, что работа в сети под учетной записью пользователя,





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский