Вниз
Скачать: CL | DM;

edit   Найти похожие ветки 

← →
Настенька   (2004-02-17 08:43) [0]

помогите, как сделать так, чтобы после ввода текста в edit(со свойством lowercase) первая буква становилась большой.


← →
Defunct ©   (2004-02-17 08:51) [1]

procedure TForm1.Edit1Change(Sender: TObject);
Var S:String;
begin
If Length(Edit1.Text) > 0 Then
Begin
S := LowerCase(Edit1.Text);
S[1]:= Char(Byte(Edit1.Text[1]) And $DF);
Edit1.Text := S;
End;
end;


← →
Defunct ©   (2004-02-17 08:54) [2]

При использовании приведенного примера[1] отключите свойство LowerCase. Там это уже учтено строка 6: S:=LowerCase(Edit1.Text);


← →
Udjin ©   (2004-02-17 10:13) [3]

> to Defunct © А цифры вводить пробовал? А если слово в русской раскладке, то все буквы будут заглавными. И поменьшей мере непривычно, когда курсор при вводе текста остается в начальной позиции

procedure TForm1.Edit1Change(Sender: TObject);
var S:string;
begin
if Length(Edit1.Text)=1 then
begin
s:=Edit1.Text[1];
s:=AnsiUpperCase(s);
Edit1.Text:=s;
Edit1.Perform(WM_KEYDOWN,VK_END,0)
end;
end;


← →
Семен Сорокин ©   (2004-02-17 10:17) [4]

Тогда уж так :)
procedure TForm1.Edit1Change(Sender: TObject);
var
_s :string;
_b: integer;
begin
if Length(Edit1.Text)=1 then begin
_b := Edit1.SelStart;
_s := Edit1.Text[1];
_s := AnsiUpperCase(_s);
Edit1.Text := _s;
Edit1.SelStart := _b
end;
end;


← →
Семен Сорокин ©   (2004-02-17 10:20) [5]

неее, вот так :)

procedure TForm1.Edit1Change(Sender: TObject);
var
_s :string;
_b: integer;
begin
if Length(Edit1.Text)=1 then begin
_b := Edit1.SelStart;
_s := Edit1.Text[1];
_s := AnsiUpperCase(_s);
Edit1.OnChange := nil;
Edit1.Text := _s + copy(Edit1.Text, 2, Length(Edit1.Text)-1);
Edit1.OnChange := Edit1Change;
Edit1.SelStart := _b
end;
end;


← →
Udjin ©   (2004-02-17 10:27) [6]

> Семен Сорокин ©
Ну дык тогда уж подскажи как лучше сделать. Хочешь постебаться надо мной, пожалуйста, но причем тут Настенька © ?


← →
Семен Сорокин ©   (2004-02-17 10:35) [7]

Udjin © (17.02.04 10:27) [6]
> Семен Сорокин ©
Ну дык тогда уж подскажи как лучше сделать. Хочешь постебаться надо мной, пожалуйста, но причем тут Настенька © ?

Так я вроде и не стебался, а смайлик - это улыбка девушке.


← →
Silver Alex ©   (2004-02-17 11:00) [8]


> Семен Сорокин © (17.02.04 10:35) [7]

а из буфера обена вставлять пробывал? наверное нет.Я бы сделал на OnExit
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Length(Edit1.Text)<>0 then
Edit1.Text:=AnsiUpperCase(Edit1.Text[1])+copy(Edit1.Text,2,length(edit1.text));
end;


← →
Семен Сорокин ©   (2004-02-17 11:05) [9]

Silver Alex © (17.02.04 11:00) [8]
а из буфера обена вставлять пробывал?

ты хочешь сказать, что при вставке из буфера не произойдет OnChange?
что-то я сомневаюсь.


← →
Silver Alex ©   (2004-02-17 11:08) [10]

OnChange то произойдет, но у тебя же условие "if Length(Edit1.Text)=1 then".


← →
Семен Сорокин ©   (2004-02-17 11:14) [11]

Silver Alex © (17.02.04 11:08) [10]
OnChange то произойдет, но у тебя же условие "if Length(Edit1.Text)=1 then".

а, согласен, да его в [5] можно убрать, что-то не заметил я его.


← →
Настенька   (2004-02-17 11:57) [12]

спасибо очень много вариантов, все попробую



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
6-94062
NoIdeaAboutName
2003-12-22 22:52
2004.02.29
Как отловить установление dialup соединения,.


1-93859
BALU1111
2004-02-16 16:17
2004.02.29
Окно в окне.


8-94033
Вера
2003-10-29 11:35
2004.02.29
Image


1-93889
YurikGl
2004-02-14 14:48
2004.02.29
Границы таблицы в Rave


6-94054
KPV-10k
2003-12-23 20:11
2004.02.29
Как пеpесылать файлы чеpез nonBlocking socket с помощью потока?




   Наверх