Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGrid со свойствами row и col, DBGrid со свойствами row и col 
V
    Опции темы
Escort
  Дата 16.6.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008
Где: Пермь

Репутация: нет
Всего: нет



Как обращаться к DBGrid по свойствам Row и Col?
PM MAIL ICQ   Вверх
Palladin
Дата 16.6.2008, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Вроде нельзя smile 
Я обычно так делаю: К примеру у тебя 4 столбца, кидаешь на форму 4 DBEdit-a, ставишь коннект к соответсвующим полям, потом к примеру, тебе нада ко всем значениям ячеек прибавить 1, тогда:
Код

ADOTable1->First;
for(int i=1;i<=ADOTable1->RecordCount;i++)
{
 DBEdit1->Text=IntToStr(StrToInt(DBEdit1->Text)+1);
 DBEdit2->Text=IntToStr(StrToInt(DBEdit2->Text)+1);
 DBEdit3->Text=IntToStr(StrToInt(DBEdit3->Text)+1);
 DBEdit4->Text=IntToStr(StrToInt(DBEdit4->Text)+1);
 ADOTable1->Next;
}

Ну суть ты понял smile

Добавлено через 1 минуту и 20 секунд
Visible=false; дбедитам выстави


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Escort
Дата 16.6.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008
Где: Пермь

Репутация: нет
Всего: нет



Слишком не универсально. Но все равно спасибо за ответ. Мне очень понравился этот форум - живой! (в отличие от всех что я повидал)
PM MAIL ICQ   Вверх
Palladin
Дата 16.6.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Есть способ получше, одназначно, подожди может ответит кто из гуруsmile просто когда возникает такая задача, обычно у меня времени не было чтобы хорошо над этим подумать и разобратся, делал так и продолжал писать дальше


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Escort
Дата 16.6.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008
Где: Пермь

Репутация: нет
Всего: нет



В инете есть одно решение, но на Delphi. Я даже не знаю смогу ли это адаптировать на С++

Код

unit VUBComps;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, DBGrids, DB, Menus;

type

  TDBGridVUB = class(TDBGrid)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    property Canvas;
    function CellRect(ACol, ARow: Longint): TRect;
    property Col;
    property Row;

    procedure Register;

implementation

procedure Register;
begin

  RegisterComponents('VUBudget', [TDBGridVUB]);
end;

function TDBGridVUB.CellRect(ACol, ARow: Longint): TRect;
begin

  Result := inherited CellRect(ACol, ARow);
end;

end.


Это сообщение отредактировал(а) Rodman - 23.6.2008, 11:19
PM MAIL ICQ   Вверх
jonie
Дата 16.6.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 4
Всего: 118



обращаться надо не к гриду (он только отображает данные), а непосредственно к источнику данных, и менять данные там... если я правильно понял что хочет автор.
т.е. например так:
Код

 DataSource1->DataSet->FindFirst();
 for(int i=0;i<DataSource1->DataSet->RecordCount;++i)
 {
        DataSource1->DataSet->Edit();
        DataSource1->DataSet->Fields->FieldByNumber(2)->Value = i*2; //индекс с 1 (?)
        DataSource1->DataSet->FindNext();
 }
ну и аналогично для чтения...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Palladin
Дата 17.6.2008, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Ну впринципе этот код тоже не универсален, ибо к примеру 5 столбцов нада, так
Код

 DataSource1->DataSet->FindFirst();
 for(int i=1;i<DataSource1->DataSet->RecordCount;++i)
 {
        DataSource1->DataSet->Edit();
        DataSource1->DataSet->Fields->FieldByNumber(1)->Value = i*2; 
        DataSource1->DataSet->Fields->FieldByNumber(2)->Value = i*2; 
        DataSource1->DataSet->Fields->FieldByNumber(3)->Value = i*2; 
        DataSource1->DataSet->Fields->FieldByNumber(4)->Value = i*2; 
        DataSource1->DataSet->Fields->FieldByNumber(5)->Value = i*2; 
        DataSource1->DataSet->FindNext();
 }

однако думаю его можно сделать и универсальным, к примеру 5 столбцов, тогда:
Код

 DataSource1->DataSet->FindFirst();
 int i;
 for(i=1;i<DataSource1->DataSet->RecordCount;++i)
 {
        DataSource1->DataSet->Edit();
         for(int j=0;j<=5;j++)
        DataSource1->DataSet->Fields->FieldByNumber(j)->Value = i*2; //индекс с 1 (?)
        DataSource1->DataSet->FindNext();
 }

но мот так и нельзя smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Escort
Дата 19.6.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008
Где: Пермь

Репутация: нет
Всего: нет



Ну мне нужно это было, чтобы dbGRID распечатать. Ладно, я вроде разобрался. Спасибо.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.