![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Скоро сессия...
Форумчанин
Регистрация: 03.01.2008
Сообщений: 224
|
![]()
Для написания телефонного справочника я воспользовался двумя формами. 1 форма - самое первое окно, стартовое окно, оно выглядит вот так:
![]() За основу StringGrid. 2 форма служит для ввода нового контакта: ![]() Почему 2 формы? Для меня это самый оптимальный вариант - для новичка. Для кнопки "Новый контакт" (Button3) прописал код, который добавляет автоматически новую строку и открывает 2 форму для ввода данных. На 2 форме, чтобы организовать ввод данных, прописываю следующее: procedure TForm2.Button1Click(Sender: TObject); var i:integer; begin i:=0; while i<4 do begin Form1.StringGrid1.Cells[i,Str]:=Edit1.Text; I:=i+1; Form1.StringGrid1.Cells[i,Str]:=Edit2.Text; I:=i+1; Form1.StringGrid1.Cells[i,Str]:=Edit3.Text; I:=i+1; Form1.StringGrid1.Cells[i,Str]:=Edit4.Text; I:=i+1; Form1.StringGrid1.Cells[i,Str]:=Edit5.Text; end; Str:=Str+1; close; end; т.е данные будет записываться в строки StringGrida. Код для удаления работает! С этим проблемы решились. вот проблемка с записью в файл... у меня такой код: procedure TForm1.Button5Click(Sender: TObject); var a,b,c,d,e : integer; f:textfile; begin //Запись в файл AssignFile (f, 'Base.txt'); {$I-} Append (f); {$I+} if IOResult<>0 then Rewrite(f); Writeln(f, a); Writeln(f, b); Writeln(f, c); Writeln(f, d); Writeln(f, e); //обновление данных Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; edit5.Clear; end; Код работает с ошибками. Вылетает ошибка, при нажатии на кнопку "Сохранить изменения", но файл создается и в него записывается всё только один раз, далее он не редактируется, при повторных сохранениях. И проблемка с поиском. Впринципе я бы разобрался, но времени у меня нет нисколько. Завтра (крайний срок - послезавтра) надо будет сдавать программу на проверку. Облазил весь интернет, нигде не нашел как организовать поиск в столбцах StringGrida по 3 критериям... всё упирается во время... прошу помощи в написании кода для поиска... сам не справлюсь... Последний раз редактировалось Xeon332; 30.10.2008 в 16:29. |
![]() |
![]() |
![]() |
#2 | ||
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 |
Скоро сессия...
Форумчанин
Регистрация: 03.01.2008
Сообщений: 224
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.10.2007
Сообщений: 108
|
![]()
1) При нажатии на новый контакт я бы просто открывал форму, а вот "Закончить ввод" - должен добавлять в StringGrid.
2) По поводу сохранения в конце пиши Closefile(f); тогда все сохранится 3) Поиск прост. Добавляешь скажем Edit1 на форму где кнопка поиск. For i:=1 to StringGrid1.RowCount do if StringGrid1.Cells[i,'тут номер столбца'].value = edit1.text then begin break; //Какие-то действия end;
delphi is my world
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
![]()
у Фленова, в "библия делфи" описан телефонный справочник (книжка на форуме есть), но там дбгрид используется. скачайте, может поможет.
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 23.11.2006
Сообщений: 42
|
![]() Цитата:
зачем цикл если он не выполняется?? procedure TForm2.Button1Click(Sender: TObject); var i:integer; begin Form1.StringGrid1.Cells[0,Str]:=Edit1.Text; Form1.StringGrid1.Cells[1,Str]:=Edit2.Text; Form1.StringGrid1.Cells[2,Str]:=Edit3.Text; Form1.StringGrid1.Cells[3,Str]:=Edit4.Text; Form1.StringGrid1.Cells[4,Str]:=Edit5.Text; Str:=Str+1; close; end; |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.10.2008
Сообщений: 127
|
![]()
вот когда то писал
пример текстовой базы данных но только на чтение (так как справочник) в базе оставил только 1000 записей для компактности а так было 89827 записи в файле не имеют фиксированной длины как в DBF и разделителем являеся #13#10 зато выигрываем в размере базы по сравнению с DBF может кому сгодится ![]()
Никто не знает больше чем не знаю я
|
![]() |
![]() |
![]() |
#8 |
Скоро сессия...
Форумчанин
Регистрация: 03.01.2008
Сообщений: 224
|
![]()
благодарю за помощь. подкорректировал немного. имитация приближённая к справочнику уже есть!
при создании кода для поиска возникли вопросы... вот код (по идее должен искать по 1 столбцу, т.е. по фамилии): procedure TForm3.Button1Click(Sender: TObject); var I: Integer; GRect: TGridRect; begin for I := 1 to Str-1 do if Edit1.Text=Form1.StringGrid1.Cells[0,i] then begin GRect.Left:=0; GRect.Top:=i; GRect.Right:=1; GRect.Bottom=i; Form1.StringGrid1.Selection:=GRect; Form1.StringGrid1.LeftCol:=0; Form1.StringGrid1.TopRow:=i; end; close; end; Не принимает TGridRect, пишет как неопозннный тип. уже все способы инициализирования перепробовал - не помогает... подчеркнута TGridRect, а соответственно Left, Top, Right, Bottom. Подскажите в чём может быть причина? ЗЫ: запись в файл даже с closefile(f) не работает как надо... файл создаётся, но данные в него не вносятся... Последний раз редактировалось Xeon332; 31.10.2008 в 17:48. |
![]() |
![]() |
![]() |
#9 |
Скоро сессия...
Форумчанин
Регистрация: 03.01.2008
Сообщений: 224
|
![]()
Вот код для поиска "по телефону":
procedure TForm3.Button1Click(Sender: TObject); var I: Integer; GRect: TGridRect; begin for I := 1 to Str-1 do if Edit1.Text=Form1.StringGrid1.Cells[0,i] then begin GRect.Left:=0; GRect.Top:=i; GRect.Right:=1; GRect.Bottom=i; Form1.StringGrid1.Selection:=GRect; Form1.StringGrid1.LeftCol:=0; Form1.StringGrid1.TopRow:=i; end; close; end; не работают строки GRect: TGridRect; не определяется TGridRect!!!! Почему не пойму никак.. подскажите плиз! |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
form1 и form2 | SLIMMUS | Общие вопросы Delphi | 3 | 29.10.2008 01:15 |
Нужно чтобы Form2 открывался по середине Form1 | diznt | Помощь студентам | 1 | 31.08.2008 03:37 |
then Form2.Show; | beegl | Общие вопросы Delphi | 24 | 24.07.2008 09:53 |
две формы Form1 и Form2 | Михаил Юрьевич | Общие вопросы Delphi | 11 | 02.03.2008 19:38 |
Form1.Hide и Form1.Show... | Roof | Общие вопросы Delphi | 9 | 13.10.2007 13:33 |