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

Вниз

перерисовка грида   Найти похожие ветки 

 
Sergio   (2004-12-17 16:43) [0]

Доброго всем времени суток.
У меня такая проблема:
есть у меня Query1, с ним завязан DataSource1 - и естественно BDGrid. При выполнении перерисовки грида я использую следующее:

procedure TfMain.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin

IF TDBGrid(Sender).DataSource.DataSet.RecNo mod 2 = 1 Then begin
 TDBGrid(Sender).Canvas.Brush.Color:=RGB($CC,$CC,$99);
 TDBGrid(Sender).Canvas.Font.Color:=clBlack;
end else begin
 TDBGrid(Sender).Canvas.Brush.Color:=clGreen;
 TDBGrid(Sender).Canvas.Font.Color:=clWhite;
end;

IF  gdSelected   IN State
Then Begin
 TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
 TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
End;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Но при этом, у меня TDBGrid(Sender).DataSource.DataSet.RecNo постоянно равняется -1 и поэтому все закрашивает одним цветом - как мне исправить данный баг?


 
Соловьев ©   (2004-12-17 16:50) [1]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=170


 
kaktus   (2004-12-17 16:55) [2]

Я уже там был, этот фрагмент как раз оттуда. Там в качестве источника используется TTable, а у меня TQuery и кроме того который генерится динамически.


 
Vemer ©   (2004-12-17 16:58) [3]

Попробуй пропиши .FetchAll например в OnOpen ДатаСет:а.


 
Rule ©   (2004-12-17 17:02) [4]

а какая база используется и копмоеннты доступа ?


 
Rule ©   (2004-12-17 17:04) [5]

если серверная, то
http://predskazanie-wunschpunsch.ru/view/3-1102603978/


 
kaktus   (2004-12-17 17:09) [6]

Не получилось!

procedure TfMain.qNwsprAfterOpen(DataSet: TDataSet);
begin
qNwspr.FetchAll;
end;

end.


 
kaktus   (2004-12-17 17:11) [7]

>а какая база используется и копмоеннты доступа
Access


 
Соловьев ©   (2004-12-17 17:12) [8]

2 kaktus   (17.12.04 16:55) [2]
не ври. небыл ты там.


 
kaktus   (2004-12-17 17:25) [9]

>не ври. небыл ты там.
unit DbGridColor;
//----------------------------------------------------------------------------------------
//
//           Пример по теме " Р А З Н О Ц В Е Т Н Ы Й   DBGrid "
//
//
//  Проект, реализующий некоторые возможности по "раскраске" компонента TDBGrid.
//  Проект составлен исключительно из учебных целей для публикации
//  на сервере "Королевство Дельфи" и самостоятельной ценности не несет.
//  Все решения, представленные в этом примере, могут быть использованы в своих проектах
//  без каких-либо ограничений.
//  При публикации материалов необходима ссылка на источник информации
//
//
//  Специально для Королевства Дельфи http://delphi.vitpc.com
//
//
//  автор: Елена Филиппова [email protected] , 11 апреля 2000 г.
//
//
//  Используется алиас DBDEMOS , таблица LifeBio.db
//----------------------------------------------------------------------------------------
interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 Db, Grids, DBGrids, DBTables, ComCtrls, ExtCtrls, DBCtrls, StdCtrls,
 ImgList, Provider, DBClient;

type
 TformColorGrid = class(TForm)
   DataSource1: TDataSource;
   Panel1: TPanel;
   TableBio: TTable;
   cbLine: TCheckBox;
   StatusBar: TStatusBar;
   TableBioSpeciesNo: TFloatField;
   TableBioCategory: TStringField;
   TableBioSpeciesName: TStringField;
   TableBioNotes: TMemoField;
   TableBioGraphic: TGraphicField;
   ImageList: TImageList;
   cbTypeSelect: TCheckBox;
   TableBioCheck: TIntegerField;
   CheckLarge: TCheckBox;
   DBGrid: TDBGrid;
   TableBioLengthcm: TFloatField;
   procedure DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
     DataCol: Integer; Column: TColumn; State: TGridDrawState);
   procedure FormCreate(Sender: TObject);
   procedure DBGridCellClick(Column: TColumn);
   procedure cbLineClick(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure TableBioLengthcmGetText(Sender: TField; var Text: String;
     DisplayText: Boolean);
   procedure TableBioGraphicGetText(Sender: TField; var Text: String;
     DisplayText: Boolean);
 private
   { Private declarations }
   ListSelect : TList;
   Procedure ShowStatusBar;
   procedure  WMGetMinMaxInfo(var Message : TMessage); message WM_GETMINMAXINFO;
 public
   { Public declarations }
 end;

var
 formColorGrid: TformColorGrid;

implementation
{$R *.DFM}

Type
  TColumnAction = (caNotes, caGraphic, caCheck , caLength, caNone);

Const
  ColumnName : array[TColumnAction] of String = ("Notes" ,"Graphic", "Check" , "Length (cm)", "" );
//----------------------------------------------------------------------------------------
Function GetColumnAction( Value : String ): TColumnAction;
Var i : TColumnAction;
Begin
  Result:=caNone;
  FOR i:=Low(TColumnAction) TO High(TColumnAction) DO
  IF CompareText(Value , ColumnName[i]) = 0 Then Result:=i;
End;
//----------------------------------------------------------------------------------------
//       ограничение на изменение размера фориы
//----------------------------------------------------------------------------------------
Procedure TformColorGrid.WMGetMinMaxInfo(var Message : TMessage);
type
 PTMinMaxInfo = ^TMinMaxInfo;
begin
 with PTMinMaxInfo(Message.LParam)^.ptMinTrackSize
   do begin
     x := 450;
     y := 300;
   end;
 inherited;
end;
//----------------------------------------------------------------------------------------
....

end;

....


 
Соловьев ©   (2004-12-17 17:29) [10]

Ты ссылку нажимал?


 
kaktus   (2004-12-17 17:37) [11]

>Ты ссылку нажимал?
Не вижу здесь ничего полезного по моему вопросу.(Читай внимательно).


 
Соловьев ©   (2004-12-17 17:50) [12]

Но при этом, у меня TDBGrid(Sender).DataSource.DataSet.RecNo постоянно равняется -1 и поэтому все закрашивает одним цветом - как мне исправить данный баг?

Твой вопрос? Так вот пойдя по той ссылке ты решишь свою траблу. Ты можешь и не идти. Но проблему свою не решишь.


 
kaktus   (2004-12-17 18:18) [13]

> Так вот пойдя по той ссылке ты решишь свою траблу
Я не могу ничего найти, вот если ты там точно был, то мог бы мне и подсказать - если я тебя этим не напрягу.


 
Соловьев ©   (2004-12-17 18:35) [14]

Я не могу ничего найти

Извини, но читать я тебя не научу...
Тебе, что влом скопировать там код и попробовать?


 
Rule ©   (2004-12-17 19:07) [15]

Соловьев ©   (17.12.04 18:35) [14]
помоему медецина бессильна :), Саша, не напрягайся зря :)



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

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

Наверх




Память: 0.51 MB
Время: 0.029 c
3-1103316579
Fin
2004-12-17 23:49
2005.01.23
Использование Дата модулей.


6-1099551315
Фагот
2004-11-04 09:55
2005.01.23
TServerSocket в консольном приложении


1-1104904755
KyPCAHT
2005-01-05 08:59
2005.01.23
вызов функции из dll, написанной на Delphi, из Visual Basic 6.0


3-1103629763
sesh
2004-12-21 14:49
2005.01.23
Excel --> Database


3-1103302176
DSKalugin
2004-12-17 19:49
2005.01.23
UDF для Firebird со строчными параметрами