Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Edit с заглавной буквы   Найти похожие ветки 

 
Edit   (2008-01-29 11:41) [0]

Здравствуйте. Подскажите как можно сделать, чтобы в пле Edit при вводе значений первая буква автоматически становилась загланой.


 
clickmaker ©   (2008-01-29 11:43) [1]

OnKeyPress


 
Сергей М. ©   (2008-01-29 11:45) [2]

А собссно зачем это делать именно при вводе ?
Что мешает сделать это по окончанию ввода, например, при потере компонентом фокуса ввода ?


 
Kolan ©   (2008-01-29 11:51) [3]

OnChange, имхо, больше подойдет бо на Delete реагирует.


 
Семеныч   (2008-01-29 11:51) [4]

> Edit   (29.01.08 11:41)

Очень советую всерьез прислушаться к [2]. По соотношению нужной функциональности и простоты реализации это самый лучший способ.


 
Kolan ©   (2008-01-29 11:54) [5]

> Что мешает сделать это по окончанию ввода, например, при
> потере компонентом фокуса ввода ?

Плохо тут то, что пользователь неузнат что будет в итоге пока не закончит ввод. А если это диалог, то вот он ввел.
вася и жмет «ОК». И что в итеге ввелось вася или Вася он незнает&#133


 
Edit   (2008-01-29 12:03) [6]

А можно примерчк кода с событием OnChange, а то у меня что то не получается.


 
Kolan ©   (2008-01-29 12:04) [7]

> А можно примерчк кода с событием OnChange, а то у меня что
> то не получается.

Показывай как неполучается&#133


 
Ega23 ©   (2008-01-29 12:06) [8]

ANSIProperCase из Rx рулит...  :)


 
Kolan ©   (2008-01-29 12:08) [9]

> ANSIProperCase из Rx рулит&#133  :)

Да есть какая-то ф-ция и в VCL имхо. Как в предложение что-то вертится на языке, но вспомнить немогу&#133


 
Kolan ©   (2008-01-29 12:10) [10]

Я вот накидал, хрень какая-то, но работает :)

procedure TForm1.Edit1Change(Sender: TObject);
var
 S: string;
 SelPos: Integer;
 TempEdit: TEdit;
begin
 if Sender is TEdit then
 begin
   TempEdit := (Sender as TEdit);
   SelPos := TempEdit.SelStart;
   S := TempEdit.Text;
   if Length(S) > 0 then
   begin
     S[1] := AnsiUpperCase(S[1])[1];
     TempEdit.Text := S;
     TempEdit.SelStart := SelPos;
   end;
 end;
end;


 
Игорь Шевченко ©   (2008-01-29 12:10) [11]

procedure TForm1.Edit1KeyPress (Sender: TObject; var Key: Char);
begin
 with (Sender as TCustomEdit) do
   if (Key in ["a".."z"]) then
   begin
     if selStart = 0 then
       Dec(Key, 32);
   end
   else if (Key in ["A".."Z"]) then
   begin
     if selStart <> 0 then
       Inc(Key, 32);
   end
end;


 
Edit   (2008-01-29 12:15) [12]

Всем большое спасибо все здаработало.


 
Anatoly Podgoretsky ©   (2008-01-29 12:32) [13]


> Плохо тут то, что пользователь неузнат что будет в итоге
> пока не закончит ввод. А если это диалог, то вот он ввел.
>
> вася и жмет «ОК». И что в итеге ввелось вася или Вася он
> незнает…

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


 
Anatoly Podgoretsky ©   (2008-01-29 12:33) [14]

> Kolan  (29.01.2008 12:08:09)  [9]

> ANSIProperCase

Данная функция не соответвует постановке задачи.


 
Kolan ©   (2008-01-29 13:05) [15]

> Еще хуже будет

Примерно так же.

Надо наверно сначала понять, зачем это надо, а потом уже предлагать решения.


 
Anatoly Podgoretsky ©   (2008-01-29 14:08) [16]

> Kolan  (29.01.2008 13:05:15)  [15]

Привет партизан.


 
Семеныч   (2008-01-29 14:16) [17]

Сдается мне, что через некоторое время автор вопроса на собственном опыте убедится в том, что [2] - лучшее решение.


 
Kolan ©   (2008-01-29 14:20) [18]

> Привет партизан.

Ку?



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

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
15-1201160055
*.dpr
2008-01-24 10:34
2008.02.24
Как бороться с {$IFDEF} в *.dpr?


2-1201781915
asdfa
2008-01-31 15:18
2008.02.24
Почему Pos выдает 0?


2-1201726799
iTester
2008-01-30 23:59
2008.02.24
if (st1 or st2)?


2-1201454760
trubin
2008-01-27 20:26
2008.02.24
Портирование из сишного файла, проверьте правильность


9-1166065606
GameDev
2006-12-14 06:06
2008.02.24
Что случилось с Animiks ?