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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2008, 18:44   #1
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию организация поиска - не ищет последнюю строку в StringGrid


здравствуйте! такая проблема... код для поиска работает с ошибочками.... не ищет последнюю строку в StringGrid...
посмотрите на код:

Код:
// поиск по фамилии
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;

// организация поиска по телефону
procedure TForm3.Button2Click(Sender: TObject);
var
  I: Integer;
 GRect: TGridRect;
 begin
  for i := 1 to Str-1 do  // организуется цикл
    if Edit2.Text=Form1.StringGrid1.Cells[3,i] then  // проверка условия
     begin
      GRect.Left:=0;  // регион выделенных ячеек
      GRect.Top:=i;
      GRect.Right:=3; // указывают на то, какую ячейку выделять
      GRect.Bottom:=i;
      Form1.StringGrid1.Selection:=GRect;  // выбор ячеек
      Form1.StringGrid1.LeftCol:=0; // указывает номер строк выделения
      Form1.StringGrid1.TopRow:=i;
     end;
close; // закрытие
end;

// организация поиска по адресу
procedure TForm3.Button3Click(Sender: TObject);
var
  i: Integer;
 GRect: TGridRect;
 begin
  for I := 1 to Str-1 do
    if Edit3.Text=Form1.StringGrid1.Cells[4,i] then   // проверка условия
     begin
      GRect.Left:=0;
      GRect.Top:=i;
      GRect.Right:=4;
      GRect.Bottom:=i;
      Form1.StringGrid1.Selection:=GRect;
      Form1.StringGrid1.LeftCol:=0;
      Form1.StringGrid1.TopRow:=i;
     end;
 close;  // закрытие
 end;
end.

почему я так и не пойму он не ищет по всем строкам определённого критерия?... подскажите если видите ошибку... заранее благодарен
Xeon332 вне форума Ответить с цитированием
Старый 11.11.2008, 19:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А если так:
Код:
if pos(ansyuppercase(Edit3.Text),ansyuppercase(Form1.StringGrid1.Cells[4,i]))<>0 then...
И вообще что это за str1-1? А если это выражение больше чем строк в Гриде?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2008, 20:29   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ничего не понял. Можно нормальным русским языком (вместо своих изысков) объяснить что вы хотите найти?

Последний раз редактировалось mihali4; 11.11.2008 в 21:56.
mihali4 вне форума Ответить с цитированием
Старый 11.11.2008, 21:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Михалыч, он хочет найти в определенной колонке текст, представленный в Edit.
ТОлько действия в IF мне тоже мало о чем говорят.

О тока вспомнил, искать еще можно и так:
Код:
var i:integer;
begin
i:=StringGrid1.Cols[<Номер колонки>].IndexOf(Edit1.Text);
if i<>-1 then // Нашли!!! i - строка
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2008, 00:43   #5
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

В StringGrid'е нумерация колонок и строк начинается с нуля.
Цикл соедует организовывать сл. образом:

for i := 0 to ColCount-1 (RowCount-1) do
begin
...
end;

где ColCount - количество столбцов StringGrid'а;
RowCount - количество строк StringGrid'а.
MalexG вне форума Ответить с цитированием
Старый 13.11.2008, 04:36   #6
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

всем огромная благодарность за помощь!.
Xeon332 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация поиска с выводом инфы в форму Алина_Алина Microsoft Office Excel 3 16.05.2008 23:20
stringgrid поместить строку более 255 символов SeЯgey Помощь студентам 2 07.05.2008 16:41
Организация поиска с помощю Полей со списком Ice_Juice Microsoft Office Access 1 16.03.2008 01:26
Как спрятать строку в Stringgrid? aslanbek Общие вопросы Delphi 4 16.03.2008 00:19