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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.043 c
2-1201817709
Петька
2008-02-01 01:15
2008.02.24
кол-во слов в тексте


2-1201598063
Ник
2008-01-29 12:14
2008.02.24
Что возвращает Chr(I)?


15-1201017444
sauron
2008-01-22 18:57
2008.02.24
BIOS?


15-1200776836
Kostafey
2008-01-20 00:07
2008.02.24
Хоть и не Delphi...


6-1180947886
ziArt
2007-06-04 13:04
2008.02.24
Отключить брандмауер ХР





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский