Форум: "Начинающим";
Текущий архив: 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]> Что мешает сделать это по окончанию ввода, например, при
> потере компонентом фокуса ввода ?
Плохо тут то, что пользователь неузнат что будет в итоге пока не закончит ввод. А если это диалог, то вот он ввел.
вася и жмет «ОК». И что в итеге ввелось вася или Вася он незнает…
← →
Edit (2008-01-29 12:03) [6]А можно примерчк кода с событием OnChange, а то у меня что то не получается.
← →
Kolan © (2008-01-29 12:04) [7]> А можно примерчк кода с событием OnChange, а то у меня что
> то не получается.
Показывай как неполучается…
← →
Ega23 © (2008-01-29 12:06) [8]ANSIProperCase из Rx рулит... :)
← →
Kolan © (2008-01-29 12:08) [9]> ANSIProperCase из Rx рулит… :)
Да есть какая-то ф-ция и в VCL имхо. Как в предложение что-то вертится на языке, но вспомнить немогу…
← →
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