Есть поле StringGrid я хочу зделать чтоб по выделегию какой либо ячейке нажатию кнопки Редактировать запись можно было изменить уже введенные записи в во всей строке где была выделенна ячейка (тоесть появлялася форма в котрой в полях edit були введены те данные которые были введены в строке и при их измение они бы и менялись в StringGrid в тойже строке.)
Также при если была бы веделенна ячейка и нажата кнопка Удалить то удалялась вся строка где была выделенная ячейка. При этом нумерация ячеек поттягивалась (была нумерация 1,2,3,4,5,6,7 удалиле 3 стало 1,2,4,5,6,7 нужно чтоб все стало попарятку. нумерация происходит сама при помощи наращивания в переменную kol при добовлении новой записи.)
Заранее спасибо!
Так я не понял в чем проблема? Создаеш отдельную форму, при нажатии на кнопку форма отображается, а поля заполняются значениями из Grid.
Вот пример
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : Integer;
begin
i := Form1.StringGrid1.Row;
Form2.Edit1.Text := Form1.StringGrid1.Cells[1,i];
Form2.Edit2.Text := Form1.StringGrid1.Cells[2,i];
Form2.ShowModal;
Form1.StringGrid1.Cells[1,i] := Form2.Edit1.Text;
Form1.StringGrid1.Cells[2,i] := Form2.Edit2.Text;
end;
а для второго, соответственно, всю инфу из строк ниже выбранной поднимаешь, а потом уменьшаешь количество строк всего грида.
Большое спасибо!!!
Появился есче один вопрос Я делаю сортировку вот кот:
procedure TForm1.SortABC(col: integer);
var
i,j,p:integer;
s:string;
EndSort:boolean; //закончить ли сортировку
begin
p:=col;
repeat
EndSort:=true;
with StringGrid1 do
begin
for i:=2 to RowCount-1 do
if MoreABC( Cells[p,i], Cells[p, i-1]) then
begin
EndSort:=false;
for j:=0 to ColCount-1 do //меняет местами строки
begin
s:=Cells[j,i-1];
Cells[j,i-1]:=Cells[j,i];
Cells[j,i]:=s;
end;
end;
end;
until EndSort;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
SortABC(0);
end;
М | Теги ! |
В функции MoreABC сравнивай не строки, а числа, которые они представляют (можно использовать StrToInt)...
Как выглядит у тебя эта функция?
А код функции MoreABC можно?
Я поставил
if (StrToInt(Cells[p,i]) < StrToInt(Cells[p, i-1])) then
Все есче раз всем спасибо!