Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск по DBF [D7, XP]


KillaTank ©   (2009-03-09 14:59:00) 

У меня проблема создал программу для работы с БДФ, все работает кроме поиска, может кто поможет найти ошибку? Вот исходник кода:
procedure TForm1.Button2Click(Sender: TObject);
var rtext,rpole:string;
begin
Rtext:=Edit2.Text;
Rpole:=Table1.Fields[ComboBox2.ItemIndex].FieldName;
Dbgrid1.visible:=False;
Isk(Table1,Rtext, Rpole);
Dbgrid1.visible:=True;
end;


AndreyV   (2009-03-09 19:20:00) [1]

> [14] AndreyV ©   (09.03.09 17:49)

> [12] KillaTank ©   (09.03.09 15:35)
> goto Nach;

Ja, ja, sehr gut gesprochen! (Да, да, очень хорошо сказано!).
Второе слово в цитате на немецком по смыслу и фонетически для русского слуха воспринимается символично в сочетании с первым на английском.

Собственно к тому, что весь код (не автор) воспринимается примерно так же.


Palladin   (2009-03-09 18:38:00) [2]

У меня такое ощущение, что изначально это писАлось на ассемблере )


Сергей М.   (2009-03-09 18:38:00) [3]


> If (Rrecno = TBookmark(oTable.Recno))


Это что за безобразие ?


MsGuns   (2009-03-09 18:18:00) [4]

Господи милостивый, отец всемогущий, спаси и сохрани


AndreyV   (2009-03-09 17:49:00) [5]

Удалено модератором
Примечание: Перепиши на немецком, ибо http://www.delphimaster.ru/forums.shtml#rule Запрещается: п.8


Anatoly Podgoretsky   (2009-03-09 16:51:00) [6]

Сейчас народ вздрогнет!!!


KillaTank   (2009-03-09 15:35:00) [7]

Вот сама функция
function Isk( oTable: TTable;var Istr:String; var Pstr:String): Integer;
var RRecno: TBookmark;
   Napr: Integer;
label ZYes,ZNo,ZNo2,Nach;
begin
////SetWindowsHookEx()
Napr:=0;
Result := 0;
Form1.MyEsc:=False;
  RRecno:=oTable.GetBookmark;
  oTable.Next;
 Nach:
  while not oTable.Eof do
  begin
        Result :=AnsiPos(Istr,oTable.FieldByName(Pstr).AsString);
//        MyBrowse.SetFocus;
        if Form1.MyEsc then goto ZNo;
        if Result >0 then goto ZYes;
        Application.ProcessMessages();
        oTable.next;
        If (Rrecno = TBookmark(oTable.Recno)) then goto Zno;
  end;
ZNo:
  oTable.GotoBookmark(Rrecno);
//   ShowMessage('Не найдено ' + Istr);
 if (Napr = 0) and
   (MessageDlg('Не найдено ' + Istr+'. Продолжить поиск с начала ?',
   mtConfirmation, [mbYes, mbNo], 0) = mrYes)
  then
  begin
    Napr:=1;
    oTable.First;
    goto Nach;
  end else showmessage('Не найдено ' + Istr);
  goto ZNo2;
ZYes:
 oTable.CursorPosChanged;
 MessageBeep(MB_OK);
 Napr:=0;
ZNo2:
 Form1.MyEsc:=False;
 oTable.FreeBookmark(Rrecno);
end;


KillaTank   (2009-03-09 15:27:00) [8]

спс большое


Сергей М.   (2009-03-09 15:24:00) [9]


> Не могу никак понять


Надо переписать процедуру Isk.


Плохиш   (2009-03-09 15:23:00) [10]


> KillaTank ©   (09.03.09 15:20) [7]

Попробуй обратиться к автору этого произведения.


Плохиш   (2009-03-09 15:23:00) [11]


> KillaTank ©   (09.03.09 15:20) [7]

Попробуй обратиться к автору этого произведения.


KillaTank   (2009-03-09 15:20:00) [12]

Вообще он запускается. Но когда ввожу в поле данные для поиска пишет, что не найденно тото и предалгает начать поиск с начала. Потом если соглашаюсь, пишет что не найденно.


KillaTank   (2009-03-09 15:16:00) [13]


> > что именно?
>
>
> Сам-то как думаешь ?

Если бы я знал в чем ошибка я так и писал. Не могу никак понять((


Сергей М.   (2009-03-09 15:13:00) [14]


> что именно?


Сам-то как думаешь ?


Palladin   (2009-03-09 15:12:00) [15]

Ну я даже не знаю, что тебе ответить. Такая жалость проснулась, к тебе и подобным...


KillaTank   (2009-03-09 15:10:00) [16]

и как ее исправить?


KillaTank   (2009-03-09 15:09:00) [17]

глупый вопрос, что именно?


Palladin   (2009-03-09 15:01:00) [18]

ошибка в 7 строке, это очевидно


Наверх

Титульная страница Поиск, карта сайта Написать письмо