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

Вниз

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

 
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://delphimaster.net/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
//
//
//  автор: Елена Филиппова vlelenaf@cityline.ru , 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.039 c
8-1097484986
X-Disa
2004-10-11 12:56
2005.01.23
Сохранение ICO


11-1087303348
paulgl
2004-06-15 16:42
2005.01.23
Обработка событий компонента


10-1080915614
Zvey
2004-04-02 18:20
2005.01.23
создание OPC-клиента


14-1104585656
Чеширский_Кот
2005-01-01 16:20
2005.01.23
1 января - самое время ФУТБОЛА!


14-1104661299
Гифи с рынка
2005-01-02 13:21
2005.01.23
Выгодное вложение денег





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский