Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

CharCase в буквах кирилицы.   Найти похожие ветки 

 
M_Untitled   (2004-11-17 10:57) [0]

Привет всем!
Решил я как-то использовать одну старую базу улиц города, она в DBF, а улицы написаны в верхнем регистре. А мне надо в нижнем, и чтоб первая буква заглавная была. В ручную переписать более 600 записей мне лень, думаю, функции UpperCase и LowerCase мне помогут. Но в кирилице не проходит такое дело - типа, Edit1.Text := LowerCase(string), если, конечно, Edit1.CharCase уже не установлен в LowerCase. Но тогда все буквы будут маленькими. Не стал пока ничего искать по этому вопросу, а тупо накидал на форму 3 эдита:
Edit1.CharCase=UpperCase, Edit2.CharCase=LowerCase, Edit3.CharCase=Normal, и стал эксперементировать. В первом Edit ввожу слово, копирую в пременную первую букву, остальную часть слова во второй Edit, и уже в третьем Edit склеиваю пременную и текст второго Edit. Выходит чудесно - слово с заглавной буквы,
остальные в нижнем регистре.
А теперь вопрос: поскольку второй Edit мне нужен только для промежуточного значения, я делаю ему Visible=False. И тогда, происходит интересная вещь: буквы остаются в верхнем регистре. Но если сделать второму Edit Visible=True, даже после присваивания "обрезанного" текста, то все проходит oк. Какая связь между
видимостью объекта Edit и регистром букв? И, уж, раз я все равно на форум вышел - как программно преводить регистр букв слов на кирилице? Спасибо всем, кто поделится информацией или кинет ссылку.


 
M_Untitled   (2004-11-17 10:59) [1]

прошу прощения, "кириллица" везде с одной "л" написал


 
Ega23 ©   (2004-11-17 11:01) [2]

RXLib, unit StrUtils, function ANSIProperCase


 
TUser ©   (2004-11-17 11:05) [3]

Не нужны тебе эдиты

if S[1] in ["а".."я"] then
S[1]:=char(ord(S[1])+(ord("А")-ord("а")));
for i:=2 to length(S) do
if S[i] in ["А".."Я"] then
S[i]:=char(ord(S[i])-(ord("А")-ord("а")));


 
KilkennyCat ©   (2004-11-17 11:06) [4]

AnsiLowerCase AnsiUpperCase без  всяких RxLib


 
M_Untitled   (2004-11-17 11:21) [5]

Прекрасно! Несколько вариантов ответов на последнюю часть вопроса: какая связь между видимостью Edit и регистром букв?


 
M_Untitled   (2004-11-17 11:44) [6]

Я, конечно, не настаиваю, но все же какая связь между видимостью Edit и регистром букв? Спасибо.


 
ЮЮ ©   (2004-11-17 12:01) [7]

Хоть бы "неработающий" код с невидимым Edit-oм привел.
У меня, например, все работает:

procedure TForm1.Button1Click(Sender: TObject);
var
 txt: string;
begin
 Edit2.Visible := false;
 txt := Edit1.Text;
 Edit2.Text :=
   AnsiUpperCase(Copy(txt, 1, 1)) + AnsiLowerCase(Copy(txt, 2, length(txt)));
 Edit1.Text := Edit2.Text;
end;  


 
KilkennyCat ©   (2004-11-17 12:01) [8]

не знаю. Предполагаю, что невидимому объекту не требуется перерисовка. Непонятно, зачем использовать Edit как буфер... для этого есть string


 
KilkennyCat ©   (2004-11-17 12:04) [9]


> ЮЮ ©   (17.11.04 12:01) [7]


не совсем то. автор использует свойство эдита CharCase, как я понял. Вероятно, его изменение у невидимого эдита не вызывает требуемого.


 
TUser ©   (2004-11-17 12:55) [10]


> ЮЮ ©   (17.11.04 12:01) [7]

Тут CharCase действительно не работает у невидимого эдита.

  Edit2.Text:=copy(Edit1.Text,2,length(Edit1.Text)-1);
  EDit3.Text:=Edit1.Text[1]+Edit2.Text;

Почему - я вот думаю.


 
M_Untitled   (2004-11-17 13:10) [11]

>ЮЮ [7]
Уважаемый, Вы применили функцию AnsiUpperCase, с ней все работает и без эдитов, в отличии от свойства Edit CharCase. Но, все равно, спасибо



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

Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
1-1101285570
Erik1
2004-11-24 11:39
2004.12.05
Перекрытие невиртуальный процедуры?


3-1099838464
ser_ega
2004-11-07 17:41
2004.12.05
Работа программы на другом компе!


6-1095975633
GreySerg
2004-09-24 01:40
2004.12.05
Почему не устанавливает dial соединение ?


14-1100590736
REA
2004-11-16 10:38
2004.12.05
Убить SP бэкап


1-1101198790
Jann
2004-11-23 11:33
2004.12.05
Нужна прога





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский