Delphi 5, lokalna baza Paradox.
Mam pole edycyjne
Edit_nazwisko: TEdit
oprogramowane zdarzeniem OnChange do którego wpisuję kolejne litery szukanego nazwiska.
Z każdą wpisaną literą w DBGridzie wyświetla mi się coraz mniej nazwisk zgodnie z podanymi początkowymi literami, ale ...
Użytkownik zażyczył sobie by można było wpisywać tylko małe litery, a program i tak znajdzie dane nazwisko.
Dopisałem linijkę zmieniającą pierwszą literę z małej na dużą:
begin
Edit_nazwisko.Text := UpperCase(Edit_nazwisko.Text[1])+Copy(Edit_nazwisko.Text, 2, Length(Edit_nazwisko.Text));
if wybor_prawy.Checked then // szukanie
Begin
Options := [loPartialKey] ;
tab_uczni.Locate('Nazwisko', Edit_nazwisko.Text, Options) ;
E_nazwisko.Text := tab_uczni.FieldByName('Nazwisko').AsString ;
E_imie.Text := tab_uczni.FieldByName('Imie').AsString ;
E_pokoj.Text := tab_uczni.FieldByName('Pokoj').AsString ;
tab_dokad.Last ;
E_dokad.Text := tab_dokad.FieldByName('Dokad').AsString ;
Lab_osoba.Caption := 'Uczeń wracający' ;
But_zap_powrot.Enabled := True ;
end ;
i niestety nie uzyskałem zakładanego efektu.
Załóżmy, że szukam nazwiska Robak
W Edit_nazwisko rzeczywiście po wpisaniu np 'r' pojawia się 'R',
ale po wpisaniu kolejnej litery 'o' uzyskuję 'OR', potem 'BOR' itd
Domyślam się, że problem leży w przypisaniu
Edit_nazwisko.Text :=
ale nie wiem jak to obejść.
Może jakieś sugestie.