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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 14:55   #1
konsul_81
Пользователь
 
Регистрация: 21.03.2010
Сообщений: 14
Восклицание удаление строки в DrawGrid

помогите с удалением строки из DrawGrid.

сейчас использую вот такой вариант,но он удаляет фиксированную строку.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 L : TStringList;
begin
  L.Delete(DrawGrid1.Row - 1);
end;

есть отличный вариант для StringGrid

Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
  i,j: Integer;
begin
  j:=StringGrid1.Row; // строка с выделением
  if (j = 1) and (StringGrid1.RowCount <= 2) then
   begin
    with StringGrid1 do
     for i:= 0 to ColCount - 1 do Cells[i, j]:= '';
    exit; // не удаляем последнюю строку чтобы не потерять фиксированной
   end;
  StringGrid1.Rows[j].Clear;
  for i:=j to StringGrid1.RowCount-2 do
    StringGrid1.Rows[i].Assign(StringGrid1.Rows[i+1]);
  StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;
вот как его переделать под DrawGrid?
konsul_81 вне форума Ответить с цитированием
Старый 08.05.2010, 20:51   #2
konsul_81
Пользователь
 
Регистрация: 21.03.2010
Сообщений: 14
По умолчанию

люди ау!!! помогите пожалуйста!
konsul_81 вне форума Ответить с цитированием
Старый 10.05.2010, 16:53   #3
konsul_81
Пользователь
 
Регистрация: 21.03.2010
Сообщений: 14
Восклицание

вот что то на ваял


Код:
procedure TmainF.FillGrid(Lst: TStringList);
begin
  DrawGrid1.RowCount := L.Count+1;
  DrawGrid1.ColCount := 2;
  DrawGrid1.Refresh;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
L: TStringList;
begin

  if (DrawGrid1.RowCount <= 2) then // оставляем строку №1, чтобы не потерять Фиксированной(строка № 0)
 L.Clear ;// очищаем  строку №1 
 L.Delete(DrawGrid1.Row - 1);
  FillGrid(L);
end;

вроде все правильно, но по почему то выдает ошибку

---------------------------
Project1
---------------------------
List index out of bounds (0)
---------------------------
ОК
---------------------------

помогите пожалуйста с разрешением этой проблемы
konsul_81 вне форума Ответить с цитированием
Старый 10.05.2010, 17:23   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
 L.Clear ;// очищаем  строку №1
Очищает не строку, а весь стрингрид.

Код:
L.Delete(DrawGrid1.Row - 1);
Пытаетесь удалить строку № -1
p51x вне форума Ответить с цитированием
Старый 10.05.2010, 19:19   #5
konsul_81
Пользователь
 
Регистрация: 21.03.2010
Сообщений: 14
По умолчанию

Цитата:
Код:
 L.Clear ;// очищаем  строку №1
Очищает не строку, а весь стрингрид.
вернее очищаем строку № 1, ведь остается только строка № 1 и фиксированная № 0
Цитата:
Код:
L.Delete(DrawGrid1.Row - 1);
Пытаетесь удалить строку № -1
минус одна строка

ну у кого-нибудь идеи есть?
konsul_81 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки женя2010 Microsoft Office Excel 9 23.04.2010 16:23
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Удаление из строки program123 Помощь студентам 4 21.05.2009 12:52
Удаление строки Minton87 Общие вопросы Delphi 4 07.05.2009 02:32
Удаление строки из DBGrid XATAB БД в Delphi 3 10.03.2009 08:29