Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

search   Найти похожие ветки 

 
ANDREI   (2004-12-01 16:15) [0]

Еще раз привет мастерам! Наболел еще один вопрос в моей программе.
Есть stringgrid и edit при наборе в edite в stringgride должна выделяться строка содержащая в начале введенные символы без учета первого пробела(если он есть) и регистра (короче поиск).
Делаю я это так :

procedure TForm1.Edit8KeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
 var
 i,e: integer;
 s,g: string;
 
 begin
 if edit8.Text="" then exit else begin
i:=0;
e:=0;
i:=edit8.GetTextLen;
s:=ansilowercase(trim(edit8.Text));
repeat
inc(e);
g:=ansilowercase(trim(stringgrid6.cells[1,e]));
until (copy(s,1,i)=copy(g,1,i)) or(stringgrid6.cells[1,e]="") ;
if copy(s,1,i)=copy(g,1,i)
then begin
stringgrid6.Row:=e;
end;

end;end;

но при этом при наборе пробела, stringgrid выбрасывает на первую
пустую строку. Вопрос куда смотрит  trim и как заставить
его работать?


 
Amadey   (2004-12-01 16:34) [1]

По-=моему ошибка тута:
s:=ansilowercase(trim(edit8.Text));
и тута
g:=ansilowercase(trim(stringgrid6.cells[1,e]));
Если в первом варианте у тебя в поле пробел, то после трима это будет пустая строка, на которую тебя и выкидывает.


 
begin...end ©   (2004-12-01 16:39) [2]

> ANDREI   (01.12.04 16:15)

В обработчик Edit.OnChange:

var
 I: Integer;
 S: String;
begin
 S := AnsiLowerCase(TrimLeft((Sender as TEdit).Text));
 if S <> EmptyStr then
   with StringGrid do
     for I := 1 to RowCount - 1 do
       if Cells[1, I] <> EmptyStr then
         if Pos(S, AnsiLowerCase(Cells[1, I])) = 1 then
         begin
           Row := I;
           Break
         end
end.


P.S. Не проверял.


 
ANDREI   (2004-12-01 16:41) [3]

Пробовал ставить trim при проверке условия until - тоже самое.


 
ANDREI   (2004-12-01 16:41) [4]

Пробовал ставить trim при проверке условия until - тоже самое.


 
ANDREI   (2004-12-01 16:47) [5]

>>begin...end ©   (01.12.04 16:39) [2]
Сейчас проверить возможности нет но обязательно попробую. Спасибо! А варианты реставрации этого кода есть?


 
begin...end ©   (2004-12-01 16:55) [6]

> [5] ANDREI   (01.12.04 16:47)

> А варианты реставрации этого кода есть?

Есть, один из вариантов реставрации приведён в [2]. :-)

Кстати, в [2] я не учёл, что Вам надо ещё и строку в StringGrid"е trim"ать...



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1102019279
gyry-9
2004-12-02 23:27
2004.12.19
Уменшение размера программы


1-1102426790
Aleksandr.
2004-12-07 16:39
2004.12.19
Какое сообщение отправить TMemo, чтобы он проскроллировался?


14-1101958957
080D:07BBh
2004-12-02 06:42
2004.12.19
Кажется опять студенты пошли со своими лабараторными.


1-1102067434
sloug
2004-12-03 12:50
2004.12.19
XPManifest


9-1092690879
gg_no_re
2004-08-17 01:14
2004.12.19
Как отключить Vsync