Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление строки в StringGrid


aht ©   (2006-09-29 10:47:00) 

HI ALL.
как ниболее простым способом реализовть сабж?


ЮЮ   (2006-10-02 07:04:00) [1]

а также Canvas.Brush.Color, Canvas.Pen.Color


ЮЮ   (2006-10-02 07:02:00) [2]

"Красить", естественно, придется самому, в OnDrawCell, в контексте Canvas.Font.Color


vegarulez   (2006-10-02 06:28:00) [3]

Уже сделал отчистку rows[i], перед их удалением... поэтому когда вставляю новую строку она автоматически пустая...
Теперь возникает другой вопрос, как пометить разные строки разным цветом?
то бишь допустим те которые готовы к удалению красным, другие ещё каким нить...
свойства color приминительно к rows[i] я что-то не нашёл... :(
А просто color от грида - красит весь грид...
подскажите плз...


Германн   (2006-10-01 20:36:00) [4]


> Я так полагаю, она где-то храниться и надо хранилище отчищать.
> ..
> подскажите где...
>


property Rows[Index: Integer]: TStrings;


vegarulez   (2006-10-01 13:39:00) [5]

Народ подскажите почему при вот такой реализации

type
THStringGrid = class(TStringGrid)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
THStringGrid(StringGrid1).DeleteRow(2);
end;

после удаления делаю

Form1.StringGrid1.RowCount:=Form1.StringGrid1.RowCount+1;

Вылазиет в конце таблички та строка, которая удалилась тока что... (
Я так полагаю, она где-то храниться и надо хранилище отчищать...
подскажите где...


Германн   (2006-09-30 03:02:00) [6]

Но вот почему DeleteRow до сих пор сидит в protecdedдля TStringGrid (а и в BDS2006 - то же самое) я не понимаю!
Похоже Гридами в Борланде либо не занимаются, либо занимаются "от случая к случаю", либо отдали сей вопрос на решение кому-то, кто и не знает и не хочет работать. :-(


Германн   (2006-09-30 01:45:00) [7]


> aht ©   (29.09.06 10:47)
>
> HI ALL.
> как ниболее простым способом реализовть сабж?

Использовать тот "хакерский" приём, который единствееный незапрещённый на сём форуме. И который постоянно "рекламирует" ЮЗ :-)

Например удаляем строку с номером 2 нажав на кнопку Button1.
type
 THStringGrid = class(TStringGrid)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 THStringGrid(StringGrid1).DeleteRow(2);
end;


MsGuns   (2006-09-29 17:48:00) [8]

>Elen ©   (29.09.06 14:05) [12]
>Мой каприз за ваши грошики ;D

Без проблем ;))


Elen   (2006-09-29 14:05:00) [9]


> MsGuns

Опа СПОНСОР!!! УРА!!! Мой каприз за ваши грошики ;D


MsGuns   (2006-09-29 14:02:00) [10]

>Elen ©   (29.09.06 13:57) [10]

Леночка, Вы бы себе блузончик новый купили. Или в кафешку сходили с воздыхателем - не все ж мозг напрягать.

Сори за фотоп, но дефчонка достала ;))


Elen   (2006-09-29 13:57:00) [11]


> MsGuns

Не писать - это жесть, а не справление потребностей. (Ну все. Щас нас модераторы вытрут)


MsGuns   (2006-09-29 13:48:00) [12]

>Elen ©   (29.09.06 12:16) [8]
>От же любитель подкалывать...

"Не могу с Вами согласиться. Свежесть не бывает второй степени. Она бывает только первая, она же и последняя. Да вот извольте, не угодно ли отведать ?.." (МиМ)

"Пишите только в самом крайнем случае, если не писать не можете" (А.П.Чехов)

;)))


Elen   (2006-09-29 12:16:00) [13]


> MsGuns

Ну я имею ввиду Row. По привычке называю записью строку в таблице. Но главное что мня автор понял... ;-) (От же любитель подкалывать...)


Ketmar   (2006-09-29 12:16:00) [14]

>[6] MsGuns(c) 29-Sep-2006, 12:12
>строки. А это не одно и то же - см. справку по
>string и TStrings в MSDN
э-э-э... я отстал от жизни, или MSDN уже-таки описывает Delphi? %-)


MsGuns   (2006-09-29 12:12:00) [15]

>Elen ©   (29.09.06 10:52) [1]
>Тебе надо физически удалить запись или достаточно будет скрыть ее с глаз?

У стрингрида нет записей. У него есть только строки. А это не одно и то же - см. справку по string и TStrings в MSDN


aht   (2006-09-29 11:23:00) [16]

ок, пасибо большое


Elen   (2006-09-29 11:22:00) [17]


> aht


procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
StringGrid1.Row:=0;
i:=0;
while( i<=StringGrid1.RowCount - 1)and(  StringGrid1.Row<StringGrid1.RowCount-1) do
begin
if i>= 2then begin
  StringGrid1.Rows[i].Assign(StringGrid1.Rows[i+1]);
end else
 StringGrid1.Row:=StringGrid1.Row+1;
 inc(i);
end;
 // StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;


Где 2- номер строки которую нужно удалить (код сыроват)


ЮЮ   (2006-09-29 11:02:00) [18]

смещать информацию и уменьшать количество строк:

procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 for i := StringGrid1.Row + 1 to StringGrid1.RowCount - 1 do
   StringGrid1.Rows[i - 1].Assign(StringGrid1.Rows[i]);
 StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;


aht   (2006-09-29 10:59:00) [19]

физически


Elen   (2006-09-29 10:52:00) [20]


> aht

Тебе надо физически удалить запись или достаточно будет скрыть ее с глаз?


Наверх

Титульная страница Поиск, карта сайта Написать письмо