Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-1100758149
Wowa-K
2004-11-18 09:09
2004.12.19
Помогите восстановить файл


3-1100681474
IgorMish
2004-11-17 11:51
2004.12.19
Обновление данных


3-1100862240
Dush
2004-11-19 14:04
2004.12.19
Хранимая процедура


1-1101834140
Gloster
2004-11-30 20:02
2004.12.19
рисование на TCanvas из DLL


14-1101557346
gn
2004-11-27 15:09
2004.12.19
Китайское правительство ограничит использование заграничного ПО




   Наверх