![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевод Ф.И.О. в верхний регистр
zdm © (2008-09-29 14:35:00)Добрый день. Вот такая вот задачка, юзер вбивает фамилию, имя, отчество и после нажатия пробела между, соответсвенно фам, имени первые буквы должны переводиться в верхний регистр. Ни чего умнее как
procedure TForm4.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);я не придумал... но почемуто срабатывает когда переменная q-глобальная и если очень быстро набирать, то косяк получается, как будто комп запаздывает за набиранием и переводятся не те символы которые нужны...
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;
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]с д'артаньяном кстати проще.. он найдет по ' не важно тут регистр :)