Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

Удаление строки в StringGrid   Найти похожие ветки 

 
aht ©   (2006-09-29 10:47) [0]

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


 
Elen ©   (2006-09-29 10:52) [1]


> aht

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


 
aht ©   (2006-09-29 10:59) [2]

физически


 
ЮЮ ©   (2006-09-29 11:02) [3]

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

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;


 
Elen ©   (2006-09-29 11:22) [4]


> 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>=2 then 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 - номер строки которую нужно удалить (код сыроват)


 
aht ©   (2006-09-29 11:23) [5]

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


 
MsGuns ©   (2006-09-29 12:12) [6]

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

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


 
Ketmar ©   (2006-09-29 12:16) [7]

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


 
Elen ©   (2006-09-29 12:16) [8]


> MsGuns

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


 
MsGuns ©   (2006-09-29 13:48) [9]

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

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

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

;)))


 
Elen ©   (2006-09-29 13:57) [10]


> MsGuns

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


 
MsGuns ©   (2006-09-29 14:02) [11]

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

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

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


 
Elen ©   (2006-09-29 14:05) [12]


> MsGuns

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


 
MsGuns ©   (2006-09-29 17:48) [13]

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

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


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


> 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;


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

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


 
vegarulez ©   (2006-10-01 13:39) [16]

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

type
THStringGrid = class(TStringGrid)
end;

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

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

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

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


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


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


property Rows[Index: Integer]: TStrings;


 
vegarulez ©   (2006-10-02 06:28) [18]

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


 
ЮЮ ©   (2006-10-02 07:02) [19]

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


 
ЮЮ ©   (2006-10-02 07:04) [20]

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



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

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.049 c
2-1159904904
Lelja
2006-10-03 23:48
2006.10.22
размещение справки в проге


2-1159864794
Игорь_
2006-10-03 12:39
2006.10.22
QuickSort для массивов с элементами разных типов.


2-1160066062
Ezorcist
2006-10-05 20:34
2006.10.22
Варианты хранения изображений?


1-1157705880
Gena KAKAIN
2006-09-08 12:58
2006.10.22
Операции над чужим окном


15-1159535957
sergey888
2006-09-29 17:19
2006.10.22
Микрософт вплотную занялась играми