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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2008, 04:41   #11
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

Вот такая у меня форма:


Не соображу прописать код для добавления нового контакта и удаления...Как эти кнопки связать с StringGrid?
Xeon332 вне форума Ответить с цитированием
Старый 25.10.2008, 07:08   #12
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[1,StringGrid1.RowCount - 1] := 'Превед';
StringGrid1.Cells[2,StringGrid1.RowCount - 1] := 'медвед';
end;
Баламут вне форума Ответить с цитированием
Старый 25.10.2008, 10:41   #13
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

StringGrid можно редактировать ручками -> последние две строки не нужны.
Код:
procedure TForm1.ButtonAddRowClick(Sender: TObject);
begin
StringGrid1.RowCount:=StringGrid1.RowCount+1;
StringGrid1.Row:=StringGrid1.RowCount-1;
StringGrid1.Col:=1;
StringGrid1.SetFocus;
end;
И поехали вводить.
А вот с удалением проблемка.
Если удаляем не последнюю строку, то придется сначала переписать содержимое первой следующей строки в удаляемую, содержимое второй следующей - в первую следующую и так далее до самой последней и только тогда последнюю нужно обязательно сначала очистить от текста, а потом удалить StringGrid1.RowCount:=StringGrid1.R owCount-1;
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 20:20   #14
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

Цитата:
procedure TForm1.ButtonAddRowClick(Sender: TObject);
begin
StringGrid1.RowCount:=StringGrid1.R owCount+1;
StringGrid1.Row:=StringGrid1.RowCou nt-1;
StringGrid1.Col:=1;
StringGrid1.SetFocus;
end;
Этим кодом получается добавляем новые строки для того, чтобы в них что-то ввести. А организовать диалог для ввода нового абонента относится не к этому? И как его организовать для StringGrid?
Вот код:
Код:
var v:integer;
procedure TForm1.Button1Click(Sender: TObject);

var a,b,c,d,e:string;
f:textfile;
y:integer;
begin

a1:
a:=inputbox('Введите фамилию контакта','');
if a='' then if messagedlg('Вы не ввели фамилию нового контакта. Повторить ввод?', mtwarning,
[mbyes,mbno],0)=mryes then goto b else goto f1;
и т.д.
он не работает в полном варианте. может упустил что-то, но прога не компилирует этот код в полном варианте (с фамилией, именем, адресом и т.д..) уже что только не пробовал...
Xeon332 вне форума Ответить с цитированием
Старый 25.10.2008, 20:35   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Еще раз - "StringGrid можно редактировать ручками".
То есть добавили строку и вводим прямо в нее...
Вам хочется усложнить - делать заполнение через диалоги?
Бога ради. Но тогда посмотрите в хэлпе, какой формат имеет INPUTBOX. Там примеров понатыкано специально для ...
Зачем же наобум-то писать?
Между прочим, есть еще INPUTQUERY...
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 21:00   #16
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

Цитата:
Еще раз - "StringGrid можно редактировать ручками".
т.е. чтобы ввести новый контакт нужно добавлять код для него? или не так понимаю? Как редактировать-то: добавлением или изменением?
Xeon332 вне форума Ответить с цитированием
Старый 25.10.2008, 21:11   #17
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это значит просто вводить буковки в ячейки грида
mihali4 вне форума Ответить с цитированием
Старый 26.10.2008, 05:13   #18
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

Цитата:
Это значит просто вводить буковки в ячейки грида
После нажатия на кнопку "Новый контакт" добавляется строка ячеек, которых нельзя редактировать. И как тогда редактировать эти ячейки? В свойствах Грида может надо это свойство разрешить?
Xeon332 вне форума Ответить с цитированием
Старый 26.10.2008, 10:12   #19
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
В свойствах Грида может надо это свойство разрешить?
Ну конечно... Просмотрите все OPTIONS для грида в его свойствах и установите нужные, отмените ненужные.
mihali4 вне форума Ответить с цитированием
Старый 26.10.2008, 14:45   #20
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

Разобрался!
Теперь осталось ПОИСК и УДАЛЕНИЕ. Насчёт удаления...

Цитата:
Если удаляем не последнюю строку, то придется сначала переписать содержимое первой следующей строки в удаляемую, содержимое второй следующей - в первую следующую и так далее до самой последней и только тогда последнюю нужно обязательно сначала очистить от текста, а потом удалить StringGrid1.RowCount:=StringGrid1.R owCount-1
Эту строку удалить из кода? И каким образом организовать удаление нужной строки? Перезапись первой строки в удаляемую осуществляется как смещение? не разберусь никак...
Xeon332 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Электронный Справочник Killbrum Софт 14 15.10.2017 20:44
Телефонный справочник на TC Qai Фриланс 5 25.05.2008 01:02
телефонни справочник bmb_66 БД в Delphi 8 25.02.2008 12:11
справочник по прерываниям serres Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 22.12.2007 16:17
справочник bill Помощь студентам 3 22.05.2007 16:03