Главная страница
    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.46 MB
Время: 0.011 c
3-1144305507
diwww
2006-04-06 10:38
2006.05.28
Как отменить скролинг по результатам проверки в BeforeScroll?


8-1135613309
Mulka
2005-12-26 19:08
2006.05.28
Векторная графика


2-1146582118
@gent
2006-05-02 19:01
2006.05.28
Как вывести на печать форму с нужным разрешением экрнана ?


2-1147598754
Firefly
2006-05-14 13:25
2006.05.28
web-программирование


1-1145538376
kyn66
2006-04-20 17:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский