Discussion:
первая буква слова - заглавная
(слишком старое сообщение для ответа)
Aleksey Redkin
2003-10-01 15:31:49 UTC
Permalink
Мир дому твоему, All .

Как сделать сабж в TEdit?
Видиться вариант - по onChange считать кол-во букв в Edit-е и если оно = 1, то
есть буква первая, то UpCase.
Другие варианты есть?
А то фамилию вводить надо...

Пишите, звоните, заходите. Редькин Алексей.
e-mail: real7(at)mail(dot)ru
Roman E. Marchenko
2003-10-03 04:43:23 UTC
Permalink
Aleksey Redkin <***@p708.f10.n5036.z2.fidonet.org> wrote:
AR>Как сделать сабж в TEdit?
AR>Видиться вариант - по onChange считать кол-во букв в Edit-е и если оно = 1, то
AR>есть буква первая, то UpCase.
Не известно как поведет себя твой алгоритм при Copy & Paste'е. ИМХО не
сработает. Может в OnExit менять первую букву?
--
С уважением, Роман Марченко
mailto: vortex 'at' library.ntu-kpi.kiev.ua
Alexander Diouzshev-Maltsev
2003-10-03 08:35:09 UTC
Permalink
Hello, Aleksey!
You wrote to All on Wed, 01 Oct 2003 19:31:49 +0400:

AR> Мир дому твоему, All .

AR> Как сделать сабж в TEdit?
AR> Видиться вариант - по onChange считать кол-во букв в Edit-е и если
AR> оно = 1, то есть буква первая, то UpCase.
AR> Другие варианты есть?
AR> А то фамилию вводить надо...

Заглавной должна быть первая буква текста TEdit или первая буква каждого
слова?
В принципе на OnChange можно написать:

if Length(Edit1.Text) > 0 then
begin
s: = Edit1.Text;
s[1]:= AnsiUpperCase(s[1])[1];
Edit1.Text:= s;
end;

With best regards, Alexander Diouzshev-Maltsev.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Sergey Liharev
2003-10-03 09:16:08 UTC
Permalink
Жизнь твоим мечтам, Aleksey!

Сpд Окт 01 2003, 20:31, Aleksey Redkin = All:

AR> Видиться вариант - по onChange считать кол-во букв в Edit-е и если оно =
AR> 1, то есть буква первая, то UpCase. Другие варианты есть? А то фамилию
AR> вводить надо...

RTFM UpCaseFirst.

===== Hачало Windows Clipboard =====
Returns a string with the first letter capitalized.


function UpCaseFirst(S: string): string;

Parameters

S: string

The value to be capitalized.


Returns

String - The string with the initial letter capitalized.


Description

UpCaseFirst is a String function that returns a string with the first letter
capitalized. All other letters in the string S are converted to lower case.
====== Конец Windows Clipboard ======

... [Him] - [You Are The One] - [foobar2000 v0.7]
Alexander Diouzshev-Maltsev
2003-10-04 10:27:26 UTC
Permalink
Hello, Sergey!
You wrote to Aleksey Redkin on Fri, 03 Oct 2003 13:16:08 +0400:

SL> Жизнь твоим мечтам, Aleksey!

SL> Сpд Окт 01 2003, 20:31, Aleksey Redkin = All:

AR>> Видиться вариант - по onChange считать кол-во букв в Edit-е и если
AR>> оно =
AR>> 1, то есть буква первая, то UpCase. Другие варианты есть? А то
AR>> фамилию вводить надо...

SL> RTFM UpCaseFirst.

Вот исходник функции:

function UpCaseFirst(S: string): string;
begin
Result := LowerCase(S);
if Result <> '' then { do not localize }
begin
Result[1] := UpCase(Result[1]);
end;
end;

Отсюда очевидно, что функция UpCaseFirst с русскими символами работать не
будет (не знаю, что с этим сделано в D7)

With best regards, Alexander Diouzshev-Maltsev.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Andrew V. Fionik
2003-10-05 06:36:53 UTC
Permalink
ADM> Вот исходник функции:

ADM> function UpCaseFirst(S: string): string;
ADM> begin
ADM> Result := LowerCase(S);
ADM> if Result <> '' then { do not localize }
ADM> begin
ADM> Result[1] := UpCase(Result[1]);
ADM> end;
ADM> end;

ADM> Отсюда очевидно, что функция UpCaseFirst с русскими символами
ADM> работать не будет (не знаю, что с этим сделано в D7)

Что мешает переделать эту функцию через AnsiUpperCase?

- ---
Andrew V. Fionik, Papillon Systems, Unix Programmers Group
For reply use "ender" instead of "fionika" in e-mail.
Alexander Diouzshev-Maltsev
2003-10-06 09:39:12 UTC
Permalink
Hello, Andrew!
You wrote to Alexander Diouzshev-Maltsev on Sun, 05 Oct 2003 10:36:53 +0400:

ADM>> Вот исходник функции:

ADM>> function UpCaseFirst(S: string): string;
ADM>> begin
ADM>> Result := LowerCase(S);
ADM>> if Result <> '' then { do not localize }
ADM>> begin
ADM>> Result[1] := UpCase(Result[1]);
ADM>> end;
ADM>> end;

ADM>> Отсюда очевидно, что функция UpCaseFirst с русскими символами
ADM>> работать не будет (не знаю, что с этим сделано в D7)

AVF> Что мешает переделать эту функцию через AnsiUpperCase?

Ничего, я так отсоветовал раньше...

With best regards, Alexander Diouzshev-Maltsev.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Yuriy V. Gurin
2003-10-04 13:37:28 UTC
Permalink
░▒ *Пpиветствую, Aleksey Redkin*

01 Oct 03, /*_Aleksey Redkin_*/ wrote to */All/* the following:

AR> Как сделать сабж в TEdit?
AR> Видиться ваpиант - по onChange считать кол-во букв в Edit-е и если оно
AR> = 1, то есть буква пеpвая, то UpCase. Дpугие ваpианты есть? А то
AR> фамилию вводить надо...

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
procedure TForm1.Edit1Exit(Sender: TObject);
const UpC = [#65..#90];
var T : string;
begin
T := Edit1.Text;
if not (T[1] in UpC) then
T[1] := UpCase(T[1]);
Edit1.Text:=T;
end;
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

Hо это все спpаведливо только для английских букв, т.к. функция UpCase
pаботает только с латинским алфавитом.


[SAMR DISABLED] Mailto: altairIV<at>rambler.ru | ICQ: 210967469 | *WBR,*
| *Gurin Y.*
Loading...