Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

FixedCols в DBGrid

1.9K
19 января 2005 года
OS17
40 / / 09.12.2002
Доброго всем времени суток.
Недавно занялся извращениями на тему, как в DBGrid зафиксировать первые колонки.

Нашел много исходников на Delphy, но при переводе их на С++ получаются проблмы!

В частности одним из способов фиксирования колонок является создание нового класса, с переопределенными в нем методами:

class TNewDBGrid : public TDBGrid
{
//__published: // IDE-managed Components
private: // User declarations
int FUserFixedCols;
public: // User declarations
virtual void __fastcall LayoutChanged();
virtual void __fastcall SetUserFixedCols(int I);

inline __fastcall virtual TNewDBGrid(Classes::TComponent* AOwner) : TDBGrid(AOwner) { }

__published:
__property int UserFixedCols = {read=FUserFixedCols, write=SetUserFixedCols};

};
//------------------------------------------------

void __fastcall TNewDBGrid::SetUserFixedCols(int I)
{
FUserFixedCols = I;
LayoutChanged();
}
//------------------------------------------------

void __fastcall TNewDBGrid::LayoutChanged(void)
{
inherited LayoutChanged(); //{ присваиваем FixedCols 1 если индикатор, иначе 0 }
if ((FixedCols+ FUserFixedCols) < ColCount)
FixedCols = (FUserFixedCols + FixedCols);

}
//------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
TNewDBGrid *rr = new TNewDBGrid(Form1);
rr->Parent = Form1;
rr->DataSource = DS1;
rr->UserFixedCols = 2;
}

Компилируется нормально, но после Run выдает что то про List index out of bounds (0).
Почему - не пойму. Скорее всего что-то с неправильным переопределением методов.
301
19 января 2005 года
lord Kelvin
897 / / 08.11.2004
ListBox->Items (ну или ListBox->Items->Strings) надо считать с 1, а не с 0. (Как тебе и сказал компилятор)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог