int sel_cols=Grid->Selection.Bottom-Grid->Selection.Top;
// Я точно не помню - проверь, но возможно еще надо сделать потом sel_cols++; Не помню есть там смещение или нет.
for (int i=Grid->Selection.Top;i<Grid->Selection.Bottom;i++)
{
Grid->Cells[col]=IntToStr(i-Grid->Selection.Top+1);
}
Значения в поле автоматически
В таблице Грид есть столбец с полем "Sapis" тип int. При помощи свойства MultiSelect мне нужно выделить в этом столбце несколько ячеек построчно. В первую ячейку автоматически должно занестись значение "1". А далее по строкам - как счетчик 2,3,4.... Так до последней выделенной ячейки.
С выделением у меня все в порядке. С остальным, похуже. Пыталась определить хотя бы сколько строк выделила, пока не получилось. Хотя, наверное, это главное. А затем пойдет цикл.
Изменение значений в ячейках хочу сделать на событие кнопки контекстного меню.
Поделитесь, пожалуйста, соображениями.
Цитата:
Originally posted by richel
С выделением у меня все в порядке. С остальным, похуже. Пыталась определить хотя бы сколько строк выделила, пока не получилось. Хотя, наверное, это главное.
С выделением у меня все в порядке. С остальным, похуже. Пыталась определить хотя бы сколько строк выделила, пока не получилось. Хотя, наверное, это главное.
Для multiselect в гридах есть такое свойство Selection.
В твоем случае, я понимаю, это долно выглядеть примерно так:
Код:
Цитата:
int sel_cols=Grid->Selection.Bottom-Grid->Selection.Top;
А поточнее не знаете? Ищу в справке Билдера свойство Selection, там его вообще нет. Фраза не проходит, выдается "or" "or".
Цитата:
Originally posted by richel
А поточнее не знаете? Ищу в справке Билдера свойство Selection, там его вообще нет. Фраза не проходит, выдается "or" "or".
А поточнее не знаете? Ищу в справке Билдера свойство Selection, там его вообще нет. Фраза не проходит, выдается "or" "or".
А вы войдите в справку по тому гриду, который используете: TDrawGrid? TStringGrid? И посмотрите пункт Properties. Там в числе прочих свойств и будет Selection.
Цитата:
Originally posted by ddnh_bc
А вы войдите в справку по тому гриду, который используете: TDrawGrid? TStringGrid? И посмотрите пункт Properties. Там в числе прочих свойств и будет Selection.
А вы войдите в справку по тому гриду, который используете: TDrawGrid? TStringGrid? И посмотрите пункт Properties. Там в числе прочих свойств и будет Selection.
Вот оно что...:o А я использую DBGridEh. У него нет этого свойства?
Цитата:
Originally posted by richel
Вот оно что...:o А я использую DBGridEh. У него нет этого свойства?
Вот оно что...:o А я использую DBGridEh. У него нет этого свойства?
Я не знаю данный компонент, но сильно подозреваю что он надстроен над компонентом DBGrid. А у него для этих целей по-идее предназначено поле SelectedRows. Попробуйте использовать его.
Цитата:
[COLOR=royalblue] int nCnt = Grid_Tank->SelectedRows->Count;
int first = 0;
int last = 0;
if(nCnt>0)
{
TBookmark SavePlace = Grid_Tank->DataSource->DataSet->GetBookmark();
Grid_Tank->DataSource->DataSet->DisableControls();
try
{
Grid_Tank->DataSource->DataSet->GotoBookmark((void *)Grid_Tank->SelectedRows->Items[0].c_str());
first = Grid_Tank->DataSource->DataSet->RecNo;
ShowMessage(IntToStr(first));
Grid_Tank->DataSource->DataSet->GotoBookmark((void *)Grid_Tank->SelectedRows->Items[nCnt-1].c_str());
last = Grid_Tank->DataSource->DataSet->RecNo;
ShowMessage(IntToStr(last));
Grid_Tank->DataSource->DataSet->GotoBookmark(SavePlace);
}
__finally
{
Grid_Tank->DataSource->DataSet->FreeBookmark(SavePlace);
Grid_Tank->DataSource->DataSet->EnableControls();
}
}[/COLOR]
int first = 0;
int last = 0;
if(nCnt>0)
{
TBookmark SavePlace = Grid_Tank->DataSource->DataSet->GetBookmark();
Grid_Tank->DataSource->DataSet->DisableControls();
try
{
Grid_Tank->DataSource->DataSet->GotoBookmark((void *)Grid_Tank->SelectedRows->Items[0].c_str());
first = Grid_Tank->DataSource->DataSet->RecNo;
ShowMessage(IntToStr(first));
Grid_Tank->DataSource->DataSet->GotoBookmark((void *)Grid_Tank->SelectedRows->Items[nCnt-1].c_str());
last = Grid_Tank->DataSource->DataSet->RecNo;
ShowMessage(IntToStr(last));
Grid_Tank->DataSource->DataSet->GotoBookmark(SavePlace);
}
__finally
{
Grid_Tank->DataSource->DataSet->FreeBookmark(SavePlace);
Grid_Tank->DataSource->DataSet->EnableControls();
}
}[/COLOR]