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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 11:28   #11
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

и вот это:

Код:
procedure TForm77.Edit_SearchChange(Sender: TObject);
var Key: Word; Shift: TShiftState;
begin
if Edit_Search.Text='' then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [клиенты]');
ADOQuery1.Active:=True;
end else
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [клиенты] WHERE [Фамилия] LIKE "'+Edit_Search.Text+'%"');
ADOQuery1.Active:=True;
end;
можно переписать так:

Код:
procedure TForm77.Edit_SearchChange(Sender: TObject);
var Key: Word; Shift: TShiftState;
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [клиенты] WHERE [Фамилия] LIKE '+chr(39)+Edit_Search.Text+'%'+chr(39));
ADOQuery1.Active:=True;
end;
googl вне форума Ответить с цитированием
Старый 15.05.2012, 11:30   #12
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

офигеть:TForm77
googl вне форума Ответить с цитированием
Старый 15.05.2012, 22:12   #13
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Цитата:
Сообщение от googl Посмотреть сообщение
Мне кажется, никто не увидел суть изначальной проблемы. В едите изначально сотри Text и укажи TextHint -поиск. и вот когда ты будешь нажимать на окошко с поиском, слово ПОИСК будет пропадать. а все Clear можно поубирать
У меня TextHint не отображается. Что делать?

Он похоже есть только после 9 версии, а у меня 7

googl, Спасибо, благодаря тебе нашла на другом форуме ответ Твое решение подойдет для, для более новых версий.
А для моей, может кому-то понадобится, подошел этот код
Код:
procedure TForm77.Edit1Exit(Sender: TObject);
begin
      if Edit1.Text = '' then
        begin
          Edit1.Text:='Поиск';
          Edit1.Font.Color:=clGray
        end
    end;

procedure TForm77.Edit1Enter(Sender: TObject);
begin
     Edit1.Clear;
      Edit1.Font.Color:=clBlack;
end;
end.
Да, что такое! Поиск стал исчезать, но опять с какими-то косяками. Наводишь на таблицу, чтобы выбрать клиента, и она пустой становится.

Последний раз редактировалось Stilet; 16.05.2012 в 07:42.
Екатерина20 вне форума Ответить с цитированием
Старый 15.05.2012, 22:55   #14
Arishk@
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Екатерина20 Посмотреть сообщение
Да, что такое! Поиск стал исчезать, но опять с какими-то косяками. Наводишь на таблицу, чтобы выбрать клиента, и она пустой становится.
Таблица пустой становится??

там где едит у тебя очищается я бы сделала так... правда загвоздка будет с тем если ты будешь вводить слово поиск

Код:
if Edit1.Text = 'Поиск' then begin
Edit1.Clear;
 Edit1.Font.Color:=clBlack;
 end;
хотя можно ввести переменную и недостаток устранится

Код:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
if (Edit1.Text = 'Поиск') and (l=1) then begin
Edit1.Clear;
 Edit1.Font.Color:=clBlack;
  l:=0;
 end;
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Edit1.Text = '' then
 begin
 Edit1.Text:='Поиск';
 Edit1.Font.Color:=clGray ;
 l:=1;
 end;
end;

Последний раз редактировалось Arishk@; 15.05.2012 в 23:03.
Arishk@ вне форума Ответить с цитированием
Старый 15.05.2012, 23:02   #15
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

там при клике код есть?
googl вне форума Ответить с цитированием
Старый 15.05.2012, 23:31   #16
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Цитата:
Сообщение от googl Посмотреть сообщение
там при клике код есть?
Нет, только в Change
Екатерина20 вне форума Ответить с цитированием
Старый 16.05.2012, 00:26   #17
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

чет я не въеду. скрин выложить можно? или код из этого модуля
googl вне форума Ответить с цитированием
Старый 16.05.2012, 01:41   #18
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Цитата:
Сообщение от googl Посмотреть сообщение
чет я не въеду. скрин выложить можно? или код из этого модуля
Код:
 //Поиск
procedure TForm77.Edit1Change(Sender: TObject);
var Key: Word; Shift: TShiftState;
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [клиенты] WHERE [Фамилия] LIKE '+chr(39)+Edit1.Text+'%'+chr(39));
ADOQuery1.Active:=True;
end;

procedure TForm77.Edit1Exit(Sender: TObject);
begin
if Edit1.Text = '' then
begin
Edit1.Text:='Поиск';
Edit1.Font.Color:=clGray
end;
end;

procedure TForm77.Edit1Enter(Sender: TObject);
begin
Edit1.Clear;
Edit1.Font.Color:=clBlack;
end;

From Stilet: У нас принято код оформлять по правилам с помошью спецтега, по кнопке # в редакторе! Попрошу не игнорировать эту возможность.

Похоже придется мне рядом подписывать)

Последний раз редактировалось Stilet; 16.05.2012 в 07:44.
Екатерина20 вне форума Ответить с цитированием
Старый 16.05.2012, 09:09   #19
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

Цитата:
Сообщение от Екатерина20 Посмотреть сообщение
Код:
 //Поиск
procedure TForm77.Edit1Change(Sender: TObject);
var Key: Word; Shift: TShiftState;
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [клиенты] WHERE [Фамилия] LIKE '+chr(39)+Edit1.Text+'%'+chr(39));
ADOQuery1.Active:=True;
end;

procedure TForm77.Edit1Exit(Sender: TObject);
begin
if Edit1.Text = '' then
begin
Edit1.Text:='Поиск';
Edit1.Font.Color:=clGray
end;
end;

procedure TForm77.Edit1Enter(Sender: TObject);
begin
Edit1.Clear;
Edit1.Font.Color:=clBlack;
end;
Ченч реагирует на любые изменения в едите.
Т.е. когда делается ексит и текс присваивается поиск, выполняется запрос с параметром "поиск".

вот так:
Код:
procedure TForm77.Edit1Change(Sender: TObject);
var Key: Word; Shift: TShiftState;
begin
if Edit1.text<>'Поиск' then
 begin
  ADOQuery1.Active:=False;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM [клиенты] WHERE [Фамилия] LIKE          '+chr(39)+Edit1.Text+'%'+chr(39));
   ADOQuery1.Active:=True;
end;
end;
googl вне форума Ответить с цитированием
Старый 16.05.2012, 14:07   #20
Екатерина20
Пользователь
 
Аватар для Екатерина20
 
Регистрация: 25.09.2011
Сообщений: 72
По умолчанию

Сейчас вроде все работает. Только так же сортировку меняет, ну да ладно оставлю так. Спасибо за помощь))
Екатерина20 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск NatawaB Паскаль, Turbo Pascal, PascalABC.NET 1 10.01.2011 21:21
поиск sid1868 Общие вопросы Delphi 1 10.11.2010 14:58
поиск - ? Evgenii БД в Delphi 11 22.07.2009 19:41
поиск artemavd БД в Delphi 3 21.10.2008 17:39
Поиск Andr Microsoft Office Excel 2 18.07.2007 11:49