İlk harf büyük diğerleri küçük
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İlk harf büyük diğerleri küçük
Aşağıdaki kodlarla ilk harf büyük oluyor.Benim istediğim, o anda ister capslock açık olsun ister kapalı olsun; sadece ilk harf büyük olacak diğer harfler küçük olacak.Yani capslock aktif de olsa sadece ilk harf büyük olacak diğer harfler küçük olacak.Nasıl bir değişiklik yapmamız lazım.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do
if (SelStart = 0) or (Text[SelStart] = ' ') or (Text[SelStart] = '.') then
begin
if Key in ['a'..'h','j'..'z'] then
begin
Key := UpCase(Key);
end else
begin
if key in ['ı','ğ','ü','ş','i','ö','ç'] then
begin
Key :=Fana.HARFBUYUT(Key);
end;
end;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do
if (SelStart = 0) or (Text[SelStart] = ' ') or (Text[SelStart] = '.') then
begin
if Key in ['a'..'h','j'..'z'] then
begin
Key := UpCase(Key);
end else
begin
if key in ['ı','ğ','ü','ş','i','ö','ç'] then
begin
Key :=Fana.HARFBUYUT(Key);
end;
end;
end;
end;
Merhaba,
Bu istediğinizi girildiği anda değilde editten çıkışta yapsanız daha kolay olmaz mı? Aşağıdaki kod u programınıza ekleyip editin on exitine de uygun kodları yazarsanız istediğinizi verecektir.
editin onexitini de aşağıdaki gibi bir kod yazabilirsiniz.
Kolay gelsin.
Bu istediğinizi girildiği anda değilde editten çıkışta yapsanız daha kolay olmaz mı? Aşağıdaki kod u programınıza ekleyip editin on exitine de uygun kodları yazarsanız istediğinizi verecektir.
Kod: Tümünü seç
//*************** UPPER FIRST TR *******************
function tform1.UpperFirstTr(Str:String) : String;
Const
buyukharf:String='ÇĞIİÖŞÜ';
kucukharf:String='çğıiöşü';
Var
I :Integer;
NewStr:String;
Begin
NewStr:='';
IF LENGTH(STR)=0 THEN begin result:=str; exit; end;
if (Pos(Str[1],buyukharf)>0) Then
NewStr:=NewStr+buyukharf[Pos(Str[1],buyukharf)]
Else
if (Pos(Str[1],kucukharf)>0) Then
NewStr:=NewStr+buyukharf[Pos(Str[1],kucukharf)]
else
NewStr:=newstr+uppercase(Str[1]);
For I:=2 To Length(Str) Do
if Pos(Str[I],buyukharf)>0 Then
NewStr:=NewStr+kucukharf[Pos(Str[I],buyukharf)]
Else
NewStr:=NewStr+LowerCase(Str[I]);
Result:=NewStr;
End;
editin onexitini de aşağıdaki gibi bir kod yazabilirsiniz.
Kod: Tümünü seç
edit1.Text:=upperfirsttr(edit1.Text);
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
Merhaba,
gibi bir sürü şeyle uğraşmak zorunda kalırsınız. Bunun yerine siz edit1 in text ini alacaksınız ya , onu almayın benim aktardığım fonksiyona edit1 in textini uygulayın öyle filtrenizi yapın daha çabuk sonuca ulaşırsınız.
Yukarıdaki gibi kullanabilirsiniz. Yalnız son key değerine biraz dikkat etmeniz gerekir. Eğer BackSpace tuşu ise son karakteri edit1 den silecek şekilde string fonksiyonlarını kullanmanız gerekecek.
Kolay gelsin.
bu konuyu biraz açabilir misiniz? Bu işlemi keypresste yapmak bana biraz zor geliyor. Çünkü bir sürü kontrolü düşünmek zorundasınız. Hangi konumdayım. Seçilen bir şey varken mi tuşa basıldı ......zaxacm yazdı:Merhaba
Editten çıkarken olmaz çünkü edittin change olayında filtreleme yapıyorum.
gibi bir sürü şeyle uğraşmak zorunda kalırsınız. Bunun yerine siz edit1 in text ini alacaksınız ya , onu almayın benim aktardığım fonksiyona edit1 in textini uygulayın öyle filtrenizi yapın daha çabuk sonuca ulaşırsınız.
Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
edit1.ClearSelection;
label1.Caption:=UpperFirstTr(edit1.text+key);
end;
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
@ofenx'in söylediklerine ben de hak veriyorum. EditKeyPres içinde yapmaya çalışırsan bir sürü şeyi kontrol etmen lazım. Ama dert değil diyorsan
Kabaca böyle
Kabaca böyle
Kod: Tümünü seç
function UpperCaseTr(C: Char): Char;
const
low:string='abcçdefgğhıijklmnoöprsştuüvyz';
upp:string='ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ';
var
i : integer;
begin
i := Pos(c,low);
if i > 0 then result := upp[i] else result := c;
end;
function NameCase(Str : String):String;
var
i : integer;
prev : char;
begin
prev := ' ';
for i:= 1 to length(Str) do begin
if prev = ' ' then Str[i] := UpperCaseTr(str[i]);
prev := Str[i];
end;
Result := Str;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
Str : String;
I : Integer;
begin
// buraya hangi harflere izin verilecekse onlar gelecek!
if pos(Key,'abcçdefgğhıijklmnoöprsştuüvyzABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ0123456789') = 0 then exit;
Str := TEdit(Sender).Text;
I := TEdit(Sender).SelStart;
insert(Key,Str,I + 1);
TEdit(Sender).Text := NameCase(Str);
TEdit(Sender).SelStart := I + 1;
Key := #0;
end;
Büyük yazılmasını istediğiniz bütün editların keypress olayına bunu yazın
Kod: Tümünü seç
with Sender as TdbEdit do
if (SelStart = 0) or
(Text[SelStart] = ' ') then
if Key in ['a'..'z'] then
Key := UpCase(Key);
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Arama sonucu rastladım.
Mesela Edit1 de ÇŞÜĞ harfleri bile olsa ister büyük ister küçük kolaylıkla yapılabilir.
veya
gibi
ilk harfi büyük yapma ise
kolay gelsin.

Mesela Edit1 de ÇŞÜĞ harfleri bile olsa ister büyük ister küçük kolaylıkla yapılabilir.
Kod: Tümünü seç
Edit1.Text:=AnsiUpperCase(Edit1.Text);
Kod: Tümünü seç
Edit1.Text:=AnsiLowerCase(Edit1.Text);
ilk harfi büyük yapma ise
Kod: Tümünü seç
begin
Edit1.SelStart:=0;
Edit1.SelLengh:=1;
Edit1.Seltext:=AnsiUpperCase(Edit1.SelText);
end;

Maalesef i 'yi büyüğe çevirirken veya I'yı küçüğe bu func. çakılıyor. Birilerinin Mikisofta Türkçe için bu çevrimin gerektiğini söylemesi lazım.ender_arslanturk yazdı:Mesela Edit1 de ÇŞÜĞ harfleri bile olsa ister büyük ister küçük kolaylıkla yapılabilir.Kod: Tümünü seç
Edit1.Text:=AnsiUpperCase(Edit1.Text);
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
coderlord yazdı:Maalesef i 'yi büyüğe çevirirken veya I'yı küçüğe bu func. çakılıyor. Birilerinin Mikisofta Türkçe için bu çevrimin gerektiğini söylemesi lazım.ender_arslanturk yazdı:Mesela Edit1 de ÇŞÜĞ harfleri bile olsa ister büyük ister küçük kolaylıkla yapılabilir.Kod: Tümünü seç
Edit1.Text:=AnsiUpperCase(Edit1.Text);
zaten benim yaptığım küçük i yi büyük İ ye küçük ş yi büyük Ş ye veya tam tersine çevirir.
Öteki Türlü
Kod: Tümünü seç
begin
Edit1.SelStart:=0;
Edit1.SelLengh:=1;
if Edit1.Seltext='i' then Edit1.Seltext:='I';
if Edit1.Seltext='I' then Edit1.Seltext:='i';
if Edit1.Seltext='ş' then Edit1.Seltext:='S';
if Edit1.Seltext='ü' then Edit1.Seltext:='U';
end;
Aşağıdaki şekilde çok güzel oluyor hem de keypressde çalışıyor. Başka arkadaşların da işine yarayabilir.
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
var
strng:string;
begin
strng:=Edit1.text;
if (Edit1.SelStart = 0) or
(Edit1.SelTEXT = ' ') then
Case Key of
'ı': Key := 'I';
'i': Key := 'İ';
else Key := AnsiUpperCase(Key)[1];
end
else
if (strng[Length(Edit1.Text)]=' ') or (strng[Length(Edit1.Text)]='.') then
Case Key of
'ı': Key := 'I';
'i': Key := 'İ';
else Key := AnsiUpperCase(Key)[1];
end
else
if NOT (strng[Length(Edit1.Text)]=' ') or NOT (strng[Length(Edit1.Text)]='.') then
Case Key of
'I': Key := 'ı';
'İ': Key := 'i';
else Key := AnsilowerCase(Key)[1];
end;
end;
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
var
strng:string;
begin
strng:=Edit1.text;
if (Edit1.SelStart = 0) or
(Edit1.SelTEXT = ' ') then
Case Key of
'ı': Key := 'I';
'i': Key := 'İ';
else Key := AnsiUpperCase(Key)[1];
end
else
if (strng[Length(Edit1.Text)]=' ') or (strng[Length(Edit1.Text)]='.') then
Case Key of
'ı': Key := 'I';
'i': Key := 'İ';
else Key := AnsiUpperCase(Key)[1];
end
else
if NOT (strng[Length(Edit1.Text)]=' ') or NOT (strng[Length(Edit1.Text)]='.') then
Case Key of
'I': Key := 'ı';
'İ': Key := 'i';
else Key := AnsilowerCase(Key)[1];
end;
end;
Selam aynı yaptığın işlemi büyük harfler için de yapsak ya da başlık oldukça uzamış çünkü yanlış anlamış da olabilirim.
- Aşağıdaki şekilde bir kurgu yaptım çalışıyor.
- Aşağıdaki şekilde bir kurgu yaptım çalışıyor.
Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
low:string='abcçdefgğhıijklmnoöprsştuüvyz';
upp:string='ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ';
function UpperCaseTr(C: Char; L:Boolean): Char;
// L -> True ise Upper, False ise Lower
var
i : integer;
begin
Case L of
True : begin
i := Pos(c,low);
if i > 0 then result := upp[i]
else result := c;
end;
False: begin
i := Pos(c,upp);
if i > 0 then result := low[i]
else result := c;
end;
end; // Case
end;
begin
with Sender as TEdit do
if (SelStart = 0) or (Text[SelStart] = ' ') or (Text[SelStart] = '.') then
begin
if Key in ['a'..'h','j'..'z']
then Key := UpperCase(Key)[1]
else if key in ['ı','ğ','ü','ş','i','ö','ç']
then Key :=UpperCaseTr(Key, True);
end else
begin
if Key in ['A'..'H','J'..'Z']
then Key := LowerCase(Key)[1]
else if key in ['I','Ğ','Ü','Ş','İ','Ö','Ç']
then Key :=UpperCaseTr(Key, False);
end; // if (SelStart = 0)
end;
Nacizane benim kullandığım bir fonksiyon var
bunun için
bunun için
Kod: Tümünü seç
Function Stringcevir(kelime: string; tip: integer): string;
var
buyuk, kucuk: string;
j, i: integer;
Begin
{
0 tümü küçük
1 TÜMÜ BÜYÜK
2 İlk harf büyük
3 Her Kelimenin İlk Harfi Büyük
}
buyuk := 'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZQWX';
kucuk := 'abcçdefgğhıijklmnoöprsştuüvyzqwx';
for i := length(Kelime) downto 1 do
for j := 29 downto 1 do
if (kelime[i] = buyuk[j]) or (kelime[i] = kucuk[j]) then
case tip of
0: kelime[i] := kucuk[j];
1: kelime[i] := buyuk[j];
2: if i = 1 then
kelime[i] := buyuk[j]
else
kelime[i] := kucuk[j];
3: if i = 1 then
kelime[i] := buyuk[j]
else if (kelime[i - 1] = ' ') or (kelime[i - 1] = '.') then
kelime[i] := buyuk[j]
else
kelime[i] := kucuk[j];
end;
Result :=kelime;
end;
Siz hayal edin...Biz yapalım TuannaSoft...