Помощь - Поиск - Пользователи - Календарь
Полная версия: Раюбота C Stringgrid
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Mr.Dmitry
Есть поле StringGrid я хочу зделать чтоб по выделегию какой либо ячейке нажатию кнопки Редактировать запись можно было изменить уже введенные записи в во всей строке где была выделенна ячейка (тоесть появлялася форма в котрой в полях edit були введены те данные которые были введены в строке и при их измение они бы и менялись в StringGrid в тойже строке.)
Также при если была бы веделенна ячейка и нажата кнопка Удалить то удалялась вся строка где была выделенная ячейка. При этом нумерация ячеек поттягивалась (была нумерация 1,2,3,4,5,6,7 удалиле 3 стало 1,2,4,5,6,7 нужно чтоб все стало попарятку. нумерация происходит сама при помощи наращивания в переменную kol при добовлении новой записи.)
Заранее спасибо!
Reptile
Так я не понял в чем проблема? Создаеш отдельную форму, при нажатии на кнопку форма отображается, а поля заполняются значениями из 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;

Это конечно коряво но за 2-мин. smile.gif
мисс_граффити
а для второго, соответственно, всю инфу из строк ниже выбранной поднимаешь, а потом уменьшаешь количество строк всего грида.
Mr.Dmitry
Большое спасибо!!!
Появился есче один вопрос Я делаю сортировку вот кот:
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;

но она делаеться не совсем так как хотелось бы есть 22 записи вот что получаеться при сортировки
1=>1
2=>10
3=>11
4=>22
5=>3
6=>4
7=>5
как зделать чтоб сортировка происходила в правеоьном порятке??


М
Теги !

volvo
В функции MoreABC сравнивай не строки, а числа, которые они представляют (можно использовать StrToInt)...

Как выглядит у тебя эта функция?
Reptile
А код функции MoreABC можно?
Я поставил
if (StrToInt(Cells[p,i]) < StrToInt(Cells[p, i-1])) then

И У меня все работает smile.gif
Это если нужно целые числа сортировать, а если строки то без StrToInt.
Mr.Dmitry
Все есче раз всем спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.