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

Вниз

Удалить строку или столбец из TStringGrid   Найти похожие ветки 

 
DDDeN   (2007-10-24 10:07) [0]

Собственно сабж. Как я понял, в данном компоненте отсутствуют встроенные методы реализации удаления определенной строки или столбца. В таблице присутствуют зафиксированный столбец и строка и примерно около 3000 строк с информацией.


 
megabyte ©   (2007-10-24 11:09) [1]

Удалить данные из столбца/строки или сам/саму столбец/строку?


 
DDDeN   (2007-10-24 11:15) [2]

Надо удалить строку/столбец с данными.


 
Palladin ©   (2007-10-24 11:18) [3]

То есть если они будут без данных, то удалять не надо? :)


 
DDDeN   (2007-10-24 11:20) [4]

Надо :-)
Есть куча строк, скажем, около 3 тысяч. И столбцов около пятидесяти. Надо удалить определенную строку или столбец.


 
Jeer ©   (2007-10-24 11:26) [5]

в цикле
*.Rows[i].Assign(Rows[i+1]);
затем
*.RowCount:= RowCount-1;

аналогично для Cols


 
DDDeN   (2007-10-24 11:52) [6]

Готово! Всем спасибо :-)

procedure TMainForm.DeleteButtonClick(Sender: TObject);
var
 i, j: Integer;
begin
 j := Grid.Row;
 Grid.Rows[j].Clear;
 for i := j to Grid.RowCount - 2 do
   Grid.Rows[i].Assign(Grid.Rows[i + 1]);
 Grid.RowCount := Grid.RowCount - 1;
end;

Надо бы еще проверить на то, что мы не удаляем зафиксированную строку или столбец.


 
Jeer ©   (2007-10-24 12:26) [7]


> Grid.Rows[j].Clear;


Лишнее.


 
Германн ©   (2007-10-24 13:50) [8]


> Jeer ©   (24.10.07 11:26) [5]

А процедуру MoveRow почему бы не использовать?


 
Jeer ©   (2007-10-24 14:09) [9]


> Jeer ©   (24.10.07 12:26) [7]


А это домашнее задание от тебя:))

Я предпочитаю, чтобы сначала на простом они поняли, а потом можно уже пользовать классом TBuhgalteria.


 
DDDeN   (2007-10-24 17:08) [10]

Эти методы есть только у предка TStringGrid.


 
Германн ©   (2007-10-24 20:10) [11]


> DDDeN   (24.10.07 17:08) [10]
>
> Эти методы есть только у предка TStringGrid.
>

Раз у предка есть, значит и у потомка тоже. А доступ к секции protected получается на раз-два. :-)


 
DDDeN   (2007-10-25 06:36) [12]

Нашел информацию. Методы MoveColumn и MoveRow имеются у TCustomGrid. Чтобы воспользоваться этими методами достаточно сделать следующее:

Объявим их как public

type
 TStringGridX = class (TStringGrid)
 public
   procedure MoveColumn(FromIndex, ToIndex: Longint);
   procedure MoveRow(FromIndex, ToIndex: Longint);
 end;

И вызываем метод предка:

procedure TStringGridX.MoveColumn(FromIndex, ToIndex: Integer);
begin
 inherited;
end;

procedure TStringGridX.MoveRow(FromIndex, ToIndex: Integer);
begin
 inherited;
end;

Все! Можно юзать :-)

procedure TForm1.Button1Click(Sender: TObject);
begin
 TStringGridX(StringGrid1).MoveColumn(1, 3);
end;


 
Германн ©   (2007-10-25 13:09) [13]


> DDDeN   (25.10.07 06:36) [12]
>
> Нашел информацию. Методы MoveColumn и MoveRow имеются у
> TCustomGrid. Чтобы воспользоваться этими методами достаточно
> сделать следующее:
>

Это намного больше чем достаточно, многое в приведенном коде совсем не нужно. Я ж сказал
> на раз-два

т.е. всего две строчки.
С домашним заданием справился, но пока коряво. :(



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

Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
3-1183979958
ambhtr
2007-07-09 15:19
2007.11.18
Пропадает изображение меню, во время загрузки базы


2-1193198709
cvg
2007-10-24 08:05
2007.11.18
Какая функция возвращает длину массива ComboBox?


15-1192178627
Flash-device
2007-10-12 12:43
2007.11.18
"Снять" защиту от записи с Flash


11-1177151247
bessam
2007-04-21 14:27
2007.11.18
Как скрыть колонку ListView


2-1193292661
FER
2007-10-25 10:11
2007.11.18
редактирование сводки файлов





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