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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2016, 14:39   #11
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Код:
var i:integer; s:string;
begin
s:=combobox1.Text;
for i:=0 to Combobox1.Items.Count do
begin
Combobox1.DeleteSelected;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
end;
end;
Код удаляет запись из комбинированного списка и очищает поля Edit.
Но у меня есть процедура которая сохраняет изменения в полях Edit, в таблицу stringgrid. Там запись стирается и получается вот что.


Как сделать так чтобы удаляя запись в комб. списке и полях Edit При сохранении изменений, они сохранились нормально в таблице?
Изображения
Тип файла: png 1.png (7.9 Кб, 41 просмотров)
ИвановБ вне форума Ответить с цитированием
Старый 20.12.2016, 14:41   #12
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

То есть удалил ты данные из Edit, сохранил, и эти данные исчезли из таблицы.
ИвановБ вне форума Ответить с цитированием
Старый 20.12.2016, 14:51   #13
sav.a
 
Регистрация: 20.12.2016
Сообщений: 9
По умолчанию

Вот это совсем не понятно
Код:
for i:=0 to Combobox1.Items.Count do
begin
...
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
end;
зачем Edit чистить в цикле, они где-то заполняются каждый раз?
sav.a вне форума Ответить с цитированием
Старый 20.12.2016, 15:02   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
DeleteRow:= <а собственно какую строку мы будем удалять>
теперь ВСЕ последующие строки(Row[]| Rows[] ?) надо "передвинуть" одну позицию вверх.
Код:
for j:=DeleteRow +1 to StringGrid1.rowcount-2 do 
begin
  StringGrid1.Row[j].Text:=StringGrid1.Row[j+1].Text; //вроде бы так можно сделать.

//--------- НО если есть проблемы, то просто
  for xx:=0 to StringGrid1.colcount-1 do 
//меняем ВСЕ ячейки строк j на соответствующие ячейки строки j+1
     StringGrid1.Cells[xx, j]:=StringGrid1.Cells[xx, j+1]
//---------
end;
И СТЕРЕТЬ последнюю (т.е. уменьшить количество строк)
Код:
  StringGrid1.rowcount:=StringGrid1.rowCount-1;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.12.2016, 23:59   #15
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

evg_m, Что-то никак не могу собрать ваш код воедино.
ИвановБ вне форума Ответить с цитированием
Старый 21.12.2016, 12:25   #16
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Уважаемый ТС. Я так почитал,почитал и ничего не понял xD
Давай разберемся на пальцах.
1-Ты пишешь программу "Магазин книг", где нужно указать название,Автора, Цену и Кол-во книг на складе..наверное поэтому 4 Edita
2- Ты выбрал свой подход к написанию,что приветствуется, но не всегда является оптимальным вариантом.
3- Ты натыкаешься из-за (см. 2 пункт) на грабли, и ищешь на форуме решение проблемы. Стараясь объяснить не задачу, а грабли

Если я угадал и в конкретной задаче от преподавателя звучало только сделать "Магазин книг", у меня осталось 2 вопроса, далее будем давать тут советы как подойти к решению
1- Где сохраняются данные, в конкретной БД или в текстовых файлах(TXT,INI)
2- Есть ли доп.условия по оформлению программы и используемым компонентам? (например явно указано использовать компонент StrinGrid и.т.д)

P/S/Сорямба за сарказм
Пишу много и развернуто

Последний раз редактировалось Heneken87; 21.12.2016 в 12:35.
Heneken87 вне форума Ответить с цитированием
Старый 21.12.2016, 13:40   #17
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Вот мой проект.

Мне осталось написать обработчик для кнопки удалить, чтобы в вкладки редактирования из компонента ComboBox1 удалялась запись одновременно с эти удалялись данные из полей Edit, которые находятся в "Найденых записях" и компонента stringgrid.
Изображения
Тип файла: png Безымянн1ый.png (18.0 Кб, 27 просмотров)
Тип файла: png Безымянный.png (14.4 Кб, 23 просмотров)
Вложения
Тип файла: rar проект.rar (223.9 Кб, 11 просмотров)
ИвановБ вне форума Ответить с цитированием
Старый 21.12.2016, 13:42   #18
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Цитата:
Сообщение от Heneken87 Посмотреть сообщение
1- Где сохраняются данные, в конкретной БД или в текстовых файлах(TXT,INI)
Сохраняется в файлах формата *.bks
ИвановБ вне форума Ответить с цитированием
Старый 21.12.2016, 16:41   #19
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от ИвановБ Посмотреть сообщение
Вот мой проект.
Мне осталось написать обработчик для кнопки удалить, чтобы в вкладки редактирования из компонента ComboBox1 удалялась запись одновременно с эти удалялись данные из полей Edit, которые находятся в "Найденых записях" и компонента stringgrid.
Как я поняла, у вас затруднение с удалением записи в StringGrid?
Если да, то сделайте такие маленькие изменения:
1. Перед объявлением формы добавьте:
Код:
type
  THackGrid = class(TStringGrid);

  TPagesDlg = class(TForm)// это объявление вашей формы
2. Добавьте в глобальные переменные
Код:
id: integer;
3. Добавьте присвоение значения для id:
Код:
procedure TPagesDlg.NewEdit(Sender: TObject);
var i:integer;
 begin
  i:=ComboBox1.ItemIndex+1;
  if i>0 then
   begin
   Edit1.Text:=G.Cells[0,i];
   Edit2.Text:=G.Cells[1,i];
   Edit3.Text:=G.Cells[2,i];
   Edit4.Text:=G.Cells[3,i];
   id:=i;// добавить
   end
 end;
То же делаем в procedure TPagesDlg.btnFindClick, в цикле for i:=1 to N do перед строкой Break;

4. В procedure TPagesDlg.btnFindClick и в procedure TPagesDlg.NewEdit добавляем первой строкой
Код:
id:=0;
5. В procedure TPagesDlg.btnDelClick добавляем строки
Код:
if id>0 then
THackGrid(G).DeleteRow(id);
Все.
kropotkina-alice вне форума Ответить с цитированием
Старый 21.12.2016, 17:05   #20
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

alica спасибо сейчас попробую изменить если что отпишусь.
ИвановБ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в Edit был прозрачный текст который при введение в Edit все исчез alman12 Общие вопросы Delphi 22 09.06.2014 22:21
Запись из edit в файл. sinobithug Общие вопросы C/C++ 4 28.04.2014 10:00
Как сделать новую запись в таблице нередактируемой Scorpuha БД в Delphi 4 22.10.2013 22:40
запись значений одного поля в несколько полей King_Of_Arthur БД в Delphi 4 08.07.2013 12:24
Как сделать,так что бы запись в из одного ДБГрида добавлялась в другой ДБгрид Hito БД в Delphi 10 19.04.2009 21:14