Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод Ф.И.О. в верхний регистр


Страницы:   1 2 3

zdm ©   (2008-09-29 14:35:00) 

Добрый день. Вот такая вот задачка, юзер вбивает фамилию, имя, отчество и после нажатия пробела между, соответсвенно фам, имени первые буквы должны переводиться в верхний регистр. Ни чего умнее как
procedure TForm4.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin
 if q=1 then //был пробел, следующий символ переводим в верхний регистр
 begin
    Edit1.Text:=Copy(edit1.Text,1,Length(Edit1.Text)-1)+AnsiUpperCase(copy(Edit1.Text,Length(Edit1.Text),1));
 end;
//ловим нажатие пробела  
   if key = VK_SPACE then  q:=1 else q:=0;
end;
 я не придумал... но почемуто срабатывает когда переменная q-глобальная и если очень быстро набирать, то косяк получается, как будто комп запаздывает за набиранием и переводятся не те символы которые нужны...


Anatoly Podgoretsky   (2008-09-29 18:31:00) [1]

> KSergey  (29.09.2008 16:54:44)  [44]

Хорошо ведет, сильно не мешает.


Anatoly Podgoretsky   (2008-09-29 18:30:00) [2]

> zdm  (29.09.2008 16:45:40)  [40]

Зачем ты все забавненько переводишь в верхний регистр?


KSergey   (2008-09-29 16:54:00) [3]

Главное дать пользователю возможность таки ввести именно так, как он хочет. Если прога будет всегда "применять свой могучий ум" - это может быть очень не к месту. Хотя бы посмотреть как тот же ворд себя ведет в случае автозамен.


zdm   (2008-09-29 16:54:00) [4]

хорошо. опишу последовательно. хотя [11] [12] [24] [30] мне было достаточно заглаза.. дальше лирика.. Просто задачка стояла не одна, а две.
1. При вводе чтобы нормально вносилось  в базу, больше в принципе для красоты.
2. Истекает частично из первого. При поиске были проблемы с регистром. Я не хотел грузить слишком ..типа напишите прогу, а спросил
  а) как сделать после пробела чтобы вводился следующий символ заглавным.
  б) немного продолжив и отойдя от задаваемого вопроса, как искать без учета региста.
На все вопросы я получил ответ.
Спасибо еще раз всем.


koha!   (2008-09-29 16:54:00) [5]


> zdm ©   (29.09.08 14:35)


Еще добавлю, от себя, как бы я сделал, если бы стояла задача именно проверять во время вода:
Это по событию OnChenge - т.е. самого контрола + можно использовать уже проверенные функции для поиска и замены это
StringReplace
Функция StringReplace заменяет первое или все вхождения подстроки OldPattern в SourceString строкой NewPattern в соответствии с настройками Flags.

В качестве результата функции возвращается измененная строка.

www.delphibasics.ru

Переменная Flags может содержать ни одного, один или оба этих значения множества:

rfReplaceAll : Заменяет все вхождения
rfIgnoreCase : игнорирует регистр при поиске

LastDelimiter
Эти значения задаются в квадратных скобках, как в нашем примере.
Функция LastDelimiter находит последнее вхождение любого набора символов разделителей (Delimiter) в строке (Source).

Если найдено, возвращается позиция. Иначе, возвращается 0.


Ega23   (2008-09-29 16:48:00) [6]

Стоп. Так тебе на клиенте отсортировать надо?


zdm   (2008-09-29 16:45:00) [7]

забавная но предсказуемологичная вещь происходит теперь... в базе порядка 150-200 записей по которой идет поиск и поэтому сделал Edit для быстрого поиска.. и когда говорю Upper все забавненько так переводится в верхний регистр.. в принципе ни чего страшного, но смотрится не очень.. единственная мысль это изначально для отображения переводить в верхний , либо делать окно для ввода параметров поиска


zdm   (2008-09-29 16:39:00) [8]

и это значит я в офтоп вошел ? :)


Поросенок Винни-Пух   (2008-09-29 16:28:00) [9]

У меня одноклассник был монгол. Полное имя - Дамбдинсурэн Зузаан.

А уменя был знакомый Цигра Александр Гуго-Вальдемарович.


Anatoly Podgoretsky   (2008-09-29 16:26:00) [10]

> Ega23  (29.09.2008 16:17:36)  [36]

Ну у нас тоже отчеств в государстве нет, пострадали все национальности, у которых есть.
Вот так и живу без отчества и отечества.


Ega23   (2008-09-29 16:17:00) [11]

Кстати. У чехов, вроде, отчества нет.
Приезжал парень на диссер в институт в Дубне (их там много из Чехии приезжает). Ну мы с ним спелись (и спились.. .:) ). Он нас упросил взять его с собой на дроп-зону (когда я ещё прыгал). Ну а там бумаги оформлять. Типа, как отчество? А он и говорит, что, мол, нету. Да и не знает, что это такое.
Ну там все просто решили. "Как отца зовут?" "Ян". Ну и записали Вацлав Янович Новотны.  :)


Ega23   (2008-09-29 16:14:00) [12]


> Чингизхановичи?


У меня одноклассник был монгол. Полное имя - Дамбдинсурэн Зузаан.


Leonid Troyanovsky   (2008-09-29 16:11:00) [13]


> Ega23 ©   (29.09.08 15:58) [30]

> как таковой нет. Иностранцы, например. В частности - монголы.
>  У них только имя и отчество.

Чингизхановичи?

--
Regards, LVT.


zdm   (2008-09-29 16:05:00) [14]


> Smile   (29.09.08 15:56) [29]

прочти [18] я сказал что офтоп немного ухожу..я извинился за это. Всем спасибо за участие, снимаю вопрос


zdm   (2008-09-29 16:04:00) [15]

аааааааааааааааааа. все, понял. спасибище.. я думал Анатолий в очередной раз издевается :) на счет левой и правой части...


Anatoly Podgoretsky   (2008-09-29 16:02:00) [16]

> Smile  (29.09.2008 15:56:29)  [29]

Так бардак автор устраивает.


Ega23   (2008-09-29 15:58:00) [17]


> ну я и хочу ..найди где Like %а% пусть ищет все где а большие
> или маленькие... Like %'% пусть найдет д'АрТАНьяна


Приведи и левую и правую часть к одному и тому же регистру.
Код дать не могу, бо не шибко с FB работал. Но сам принцип везде одинаковый.

Select * from table where Upper(Field)='ИВАНОВ'.

Может быть Upper, может быть UpperCase - смотри в документации.
Ну а ИВАНОВ - это ты уже на клиенте, с которого ищешь, подставляй через ANSIUpperCase.


> только не говорите, что в русском языке нет таких фамилий


Да есть, я не спорю. Более того, есть и такие, где фамилии как таковой нет. Иностранцы, например. В частности - монголы. У них только имя и отчество.


Smile   (2008-09-29 15:56:00) [18]

Мне кажется, что вопрос какой-то не совсем корректный.
Ведь когда речь идет об Edit1, то это всего лишь отображение (к чему-то еще приплели и Word), а затем автор упомянул FireBird, который никакого отношения к EDit1 не имеет.
Ну, и, соответственно, ответы на пост...


Правильный$Вася   (2008-09-29 15:54:00) [19]


> с д'артаньяном кстати проще

неужто
Луи деКлермон, сеньор д'Амбуаз граф деБюсси


zdm   (2008-09-29 15:40:00) [20]

с д'артаньяном кстати проще.. он найдет по ' не важно тут регистр :)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо