Форум: "Основная";
Текущий архив: 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.037 c