Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2010, 06:11   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Обрезка StringGrid

Доброе утро! Интересует такой вопрос: как можно выполнить обрезку по столбцам и строкам в StrinGrid? Я имею ввиду, чтобы удалить пустые строки и столбцы. Вот, пробовал делать так:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 col,row: integer;
begin
 for col:=0 to Form1.StringGrid1.ColCount - 1 do
 begin
  for row:=0 to Form1.StringGrid1.RowCount - 1 do
  begin
   if Form1.StringGrid1.Cells[col,row] = '' then
   begin
    Form1.StringGrid1.ColCount:=Form1.StringGrid1.ColCount - 1;
    Form1.StringGrid1.RowCount:=Form1.StringGrid1.RowCount - 1;
   end;
  end;
 end;
end;
Но в результате выполнения данного кода у меня в StringGrid остается только первая ячейка.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2010, 08:41   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Специально для тебя (тестировалась на Анализаторе ):
Код:
var
 col,x: integer;
begin
x:=0;
 for col:=0 to Form1.StringGrid1.ColCount - 1 do
  begin
   if Form1.StringGrid1.Cells[1,col] <> '' then//считаем кол-во непустых столбцов
     x:=x+1;
 end;
 form1.stringgrid1.colcount:=x;
 x:=0;

  for col:=0 to Form1.StringGrid1.RowCount - 1 do
  begin
   if Form1.StringGrid1.Cells[0,col] <> '' then//считаем кол-во непустых строк
     x:=x+1;
 end;
 form1.stringgrid1.rowcount:=x;

end;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 28.07.2010, 08:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
var i:integer;
begin
  for i:=StringGrid1.RowCount-1 downto 1 do begin
   StringGrid1.Rows[i].Delimiter:=' ';
   if trim(StringGrid1.Rows[i].DelimitedText)='' then
     sg(StringGrid1).DeleteRow(i);
  end;
end;
Для этого понадобится описание
Код:
type
  sg=class(TCustomGrid) end;
Цитата:
DIgorevich
Шож так сложно то?

P.S. прощу прощение пост поправил, давно не работал с этим методом.
I'm learning to live...

Последний раз редактировалось Stilet; 28.07.2010 в 09:05.
Stilet вне форума Ответить с цитированием
Старый 28.07.2010, 10:05   #4
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Да не сложно вовсе... надо же не только строки, но и столбцы удалять...
Просто он использует не стандартный StringGrid, а RZStringGrid...
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 28.07.2010 в 10:07.
DIgorevich вне форума Ответить с цитированием
Старый 28.07.2010, 10:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
использует не стандартный StringGrid, а RZStringGrid...
Опа!! А предупредить?? А, Автор?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.07.2010, 10:58   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Опа!! А предупредить?? А, Автор?
А? Что? . Я думал, что принципиальной разницы нету. Но Igorevich вчера сказал мне в чем отличие.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2010, 11:01   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я думал, что принципиальной разницы нету.
Ну да... Чего там... Жигули Копейка и Фиат... Какая уж тут разница...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обрезка фотографий doniyor Мультимедиа в Delphi 25 01.11.2009 13:15
Обрезка UTF8 данных до N символов puKo PHP 2 27.09.2009 13:36
обрезка фона родительского элемента Love_silense HTML и CSS 5 14.08.2009 13:01
Обрезка на принтере чеков epson Родион Общие вопросы Delphi 0 07.10.2008 18:53
Обрезка видео формата Mpeg Rembo Софт 9 27.04.2008 22:20