messagedlg butonlarının yazısını EVET HAYR yapmak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
messagedlg butonlarının yazısını EVET HAYR yapmak.
Daha önce yazdığım bir programda bir çok yerde messagedlg fonksiyonunu kullanmışım bu da ekrana çıkan soruların cevaplarını YES, NO,OK,CANCEL gibi ingilizce yazıyor bunların tükçe çıkmalarını sağlayabilirmiyiz?
Merhaba..
Sabitleri değiştirmek her zaman çözüm değil. Dilediğin şeyi yazdırmak için her defasında bu sabitler unitine el atmaktansa kendi fonksiyonunu yazmak çözüm adına atılmış daha etkin bir adım olacaktır.
- Projelerimde kullandığım bir yapıyı örnekleyim...
Kullanımı ise çok basit.. Aynı MessageDLG gibi ama sonuna dilediğin buton içeriğini yazıyorsun..
- Dilersen bu mesaj penceresine TCheckBox bile ekleyebilir dilediğin şekle ve fonksiyona büründürebilirsin...
Sabitleri değiştirmek her zaman çözüm değil. Dilediğin şeyi yazdırmak için her defasında bu sabitler unitine el atmaktansa kendi fonksiyonunu yazmak çözüm adına atılmış daha etkin bir adım olacaktır.
- Projelerimde kullandığım bir yapıyı örnekleyim...
Kod: Tümünü seç
function MyMessageDlg(const Msg: string;
DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons;
Captions: array of string): Integer;
// Uses: Dialogs, stdctrls //
var
aMsgDlg : TForm;
i : Integer;
dlgButton : TButton;
CaptionIndex : Integer;
begin
aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
aMsgDlg.FormStyle := fsStayOnTop;
captionIndex := 0;
for i := 0 to aMsgDlg.ComponentCount - 1 do
begin
if (aMsgDlg.Components[i] is TButton) then
begin
dlgButton := TButton(aMsgDlg.Components[i]);
if CaptionIndex > High(Captions) then Break;
dlgButton.Caption := Captions[CaptionIndex];
Inc(CaptionIndex);
end;
end;
aMsgDlg.Caption := 'ARMAN';
Result := aMsgDlg.ShowModal;
end;
Kod: Tümünü seç
If MyMessageDlg( 'Çıkmak istediğinize emin misiniz ?', mtConfirmation, [mbOk, mbCancel], ['Çık', 'Vazgeç'] ) = mrOk then Close;
ben de Varsayılan butonu secebilmeyi ekledim
teşekkürler Muharrem bey,
kullanımı
teşekkürler Muharrem bey,
Kod: Tümünü seç
function MyMessageDlg(const Msg: string;
DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons;
Captions: array of string;
DefButton: Integer): Integer;
// Uses: Dialogs, stdctrls //
var
aMsgDlg : TForm;
i : Integer;
dlgButton : TButton;
CaptionIndex : Integer;
begin
aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
aMsgDlg.FormStyle := fsStayOnTop;
captionIndex := 0;
for i := 0 to aMsgDlg.ComponentCount - 1 do
begin
if (aMsgDlg.Components[i] is TButton) then
begin
dlgButton := TButton(aMsgDlg.Components[i]);
if CaptionIndex > High(Captions) then Break;
dlgButton.Caption := Captions[CaptionIndex];
dlgButton.Default := dlgButton.ModalResult = DefButton;
if dlgButton.Default then
aMsgDlg.ActiveControl := dlgButton;
Inc(CaptionIndex);
end;
end;
aMsgDlg.Caption := StringReplace(ExtractFileName(Application.ExeName),'.exe','',[]);
Result := aMsgDlg.ShowModal;
end;
kullanımı
Kod: Tümünü seç
If MyMessageDlg( 'Çıkmak istediğinize emin misiniz ?', mtConfirmation, [mbOk, mbCancel], ['Çık', 'Vazgeç'] ,mrCancel ) = mrOK then
ShowMessage('Çıktınız');
ÜŞENME,ERTELEME,VAZGEÇME
Delphi Türkçe (Design-Runtime)
Windows Başlat\Ara -> Dosya Adı kısmı : const
Konum kısmı : C:\Program Files\Borland\Delphi7\Source ayarlayıp aratmayı başlatın.
İşlem tamamlandığında size bütün const ifadesi içeren yaklaşık 34 adet dosya listeleyecektir.
Bunların hepsini seçin ve Kopyala komutunu çalıştırın. Hem C:\Program Files\Borland\Delphi7\Bin
dizini altına hem de kendiniz belirlediğiniz dizinin altına yedeğini alın.
** Uzantısı *.res olan dosyalarda değişiklik yapmayın. Ama, *.pas dosyaları kopyalama
yaptığınız dizinde mutlaka olmalı.
Delphi'nin asıl *.pas dosyalarında hiçbir zaman değişiklik yapmayın. Herhangi bir
aksaklık oluşması durumunda, bunların sizi kurtarıcı rol üstleneceğini asla unutmayın.
Aksi taktirde, herşeyi sil baştan yapmak zorunda kalabilirsin.
** İşleme C:\..\DelphiX(5,6,7,2005)\Bin altına kopyaladığınız Consts.pas dosyası ile başlayalım.
Bu dosyayı, kullandığınız Delphi altından açın. Yazılış biçimine zarar vermeden
gerekli Türkçe ifadenizi yazın. Örneğin;
SOpenFileTitle = 'Open'; --> SOpenFileTitle = 'Aç';
SClassMismatch = 'Resource %s is of incorrect class'; --> SClassMismatch = '%s kaynağı geçersiz sınıfta';
//
SOKButton = 'OK'; --> SOKButton = '&Tamam';
SCancelButton = 'Cancel'; --> SCancelButton = 'İ&ptal';
//
SMsgDlgWarning = 'Warning'; --> SMsgDlgWarning = 'Uyarı';
SMsgDlgError = 'Error'; --> SMsgDlgError = 'Hata';
SMsgDlgInformation = 'Information'; --> SMsgDlgInformation = 'Bilgi';
SMsgDlgConfirm = 'Confirm'; --> SMsgDlgConfirm = 'Onay'; ... v.s.
şeklinde değiştirebilirsin. İşlemleriniz bitince dosyayı kaydedin. Diğer const
ifadesi içeren tüm dosyalarda buna benzer ayarlamalar yapabilirsin.
//
** Kullandığınız Delphi'yi kapatın.
** Windows Başlat\Çalıştır --> cmd (Tamam/Enter) veya
Windows Başlat\Tüm Programlar\Donatılar\Komut İstemi'ni tıklayınız.
Komut satırında C:\....>cd \Program Files\Borland\DelphiX(5 6 7)\Bin(Enter/Return)
C:\...\Delphi7\Bin>DCC32 Consts.pas(Enter/Return) hata yoksa Consts.dcu oluşacaktır.
Bu yöntemle *.dcu(DelphiCompileUnit) oluşturduğun tüm derlenmiş dosyaları(Consts.dcu),
Windows Gezgini veya kendi belirleyeceğin bir yolla C:\...\Delphi7\Lib dizini altına
aktarın ve Delphi'yi açın. Projeye Button ekleyin ve Button1Click yordamına;
//
if MessageDlg('Delphi projeme holgeldiniz. Şimdi çıkılsın mı?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
MessageDlg('Delphi projesinden çıkılıyor.', mtInformation, [mbOk], 0);
Close;
end;
//
şeklinde bir kodlama yapın ve çalıştırın. Uyarı ve düğme başlıklarının Türkçe geldiğini
göreceksin. Eğer DBConsts.pas dosyasında da değişiklik yapıp *dcu'yu Lib dizini altına
kopyaladıysan, veritabanıyla ilgili uyarılar Türkçe olacaktır.
** C:\...\Delphi7\Bin dizini altında bulunan(değiştirdiğin) *.pas ve *.dcu dosyaları
R/RW bir CD'ye kaydedersen, ileride Delphi'yi tekrar kurduğunda sadece *dcu dosyaları
C:\...\Delphi7\Lib dizinine aktarman yeterli olacaktır.
***** Komut istemini kapatmayı unutmayın.
---------------------------------------------------------------------------------------------
*** Veritabanını Türkçeleştirme;
Bu konu da daha önce anlatılmış. BDE veya Türkçe olarak arama yaparsanız,
ilgili konuları görebilirsin. Kısaca, veritabanı ayarlarına Delphi'nin BDE Administrator
(BDEAdmin.exe) programıyla ulaşabilirsin. Bilgi idapi32.cfg dosyasında tutulur.
(C:\Program Files\Common Files\Borland Shared\BDE\bdeadmin).
1. bdeadmin uygulamasını çalıştırın(Başlat\Tüm Programlar\Borland Delphi X(5 6 7)\
BDE Administrator yolunu kullanabilirsin). Pencere başlığına dikkat edersen
C:\Program Files\Common Files\Borland Shared\BDE\idapi32.cfg ifadesini görürsün.
2. Configuration sekmesini seçin. Sol baştaki tüm " + "'lara tıklayıp açın.
3. Configuration\Drivers\Native\PARADOX tıkladığınızda, sağ tarafta ilgili ayarları
göreceksin.
NET DIR --> Windows dışında başka bir işletim sistemi kullanmıyorsan
C:\ kalmalı. C:\PDOXUSRS.NET oluşturur.
PDOXUSRS.NET dosyasını programın içinden de yönlendirebilirsin.
Örnek;
ChDir(AppPATH + '\Network');
if IOResult <> 0 then MkDir(AppPATH + '\Network');
Session.NetFileDir:= AppPATH + '\Network';
VERSION --> Değiştirmeyin.
TYPE --> Değiştirmeyin.
LANGDRIVER --> Paradox 'turk' veya Pdox ANSI Turkish (tercih Paradox 'turk')
Aktif duruma getirdiğinde, oluşan ComboBox listesinden seçin.
Buradaki diğer bilgileri değiştirmeyin.
PARADOX dışındakileri de aynı yöntemle ayarlayabilirsin.
4. Configuration\System\INIT --> AUTO ODBC kullanmıyorsan(hazırdeğer FALSE) sadece;
LANGDRIVER --> Paradox 'turk' ... diğerlerini değiştirmeyin.
5. Configuration\System\Formats\Date
Buradaki değerler sırasıyla; TRUE, TRUE, TRUE, 0, /, TRUE olmalı.
6. Configuration\System\Formats\Time
Buradaki değerler sırasıyla; AM, TRUE, PM, TRUE, TRUE olmalı.
7. Configuration\System\Formats\Number
Buradaki değerler sırasıyla; 2, Virgül(,işareti), TRUE, Nokta(.işareti) olmalı.
!!! "bdeadmin" uygulamasını sonlandırmadan önce değişikliklerinizi kaydettirmeyi
unutmayın. idapi32.cfg dosyasını da hazırladığın R/RW CD'ye ekleyebilirsin.
** 5. 6. 7.'deki bilgiler "Windows Bölgesel Ayarları"'yla uyuşmalı. Standart ayarları
kullanmalısın. Programını yüklediğin başka bir PC ile aynı olmalı. Aksi taktirde,
o bilgisayarda değişiklikler yapmak zorunda kalırsın.
Database Desktop programını çalıştırıp *.db dosyanızı açtığınızda ş,Ş,ğ,Ğ,ı,İ
karekterlerinin biçimsiz olduğunu göreceksin. Telaşlanmayın
Programındaki veritabanın aktifleştiğinde, bu karekterler Türkçe gözükecektir.
Not: Türkçeleştirme yaparken profesyonelce düşünün. Yazım(imla) hataları yapmayın.
Unutmayınız ki, yazdığınız program kitlelere hitap edecek. Programınız çalışma
zamanında(Runtime) kullanıcıya Türkçe uyarı gönderecek. Dolayısıyla, buna özen
gösterin. Dilimizin kelime ve deyim içeriğiyle mükemmel olduğunu unutmayın.
İnternet sohbet ortamını kullanmayın.
Hiç kimseye Türkçe dersi verme niyetinde değilim. Ama, madem bu işe bir profesyonel
gözüyle bakıyoruz, o zaman Türkçe'ye özen göstermenin şart olduğunu düşünüyorum.
İşinizi görmesi dileğimle,
Çalışmalarınızda başarılar dilerim.
NeverFear - kaheri579@hotmail.com
Konum kısmı : C:\Program Files\Borland\Delphi7\Source ayarlayıp aratmayı başlatın.
İşlem tamamlandığında size bütün const ifadesi içeren yaklaşık 34 adet dosya listeleyecektir.
Bunların hepsini seçin ve Kopyala komutunu çalıştırın. Hem C:\Program Files\Borland\Delphi7\Bin
dizini altına hem de kendiniz belirlediğiniz dizinin altına yedeğini alın.
** Uzantısı *.res olan dosyalarda değişiklik yapmayın. Ama, *.pas dosyaları kopyalama
yaptığınız dizinde mutlaka olmalı.
Delphi'nin asıl *.pas dosyalarında hiçbir zaman değişiklik yapmayın. Herhangi bir
aksaklık oluşması durumunda, bunların sizi kurtarıcı rol üstleneceğini asla unutmayın.
Aksi taktirde, herşeyi sil baştan yapmak zorunda kalabilirsin.
** İşleme C:\..\DelphiX(5,6,7,2005)\Bin altına kopyaladığınız Consts.pas dosyası ile başlayalım.
Bu dosyayı, kullandığınız Delphi altından açın. Yazılış biçimine zarar vermeden
gerekli Türkçe ifadenizi yazın. Örneğin;
SOpenFileTitle = 'Open'; --> SOpenFileTitle = 'Aç';
SClassMismatch = 'Resource %s is of incorrect class'; --> SClassMismatch = '%s kaynağı geçersiz sınıfta';
//
SOKButton = 'OK'; --> SOKButton = '&Tamam';
SCancelButton = 'Cancel'; --> SCancelButton = 'İ&ptal';
//
SMsgDlgWarning = 'Warning'; --> SMsgDlgWarning = 'Uyarı';
SMsgDlgError = 'Error'; --> SMsgDlgError = 'Hata';
SMsgDlgInformation = 'Information'; --> SMsgDlgInformation = 'Bilgi';
SMsgDlgConfirm = 'Confirm'; --> SMsgDlgConfirm = 'Onay'; ... v.s.
şeklinde değiştirebilirsin. İşlemleriniz bitince dosyayı kaydedin. Diğer const
ifadesi içeren tüm dosyalarda buna benzer ayarlamalar yapabilirsin.
//
** Kullandığınız Delphi'yi kapatın.
** Windows Başlat\Çalıştır --> cmd (Tamam/Enter) veya
Windows Başlat\Tüm Programlar\Donatılar\Komut İstemi'ni tıklayınız.
Komut satırında C:\....>cd \Program Files\Borland\DelphiX(5 6 7)\Bin(Enter/Return)
C:\...\Delphi7\Bin>DCC32 Consts.pas(Enter/Return) hata yoksa Consts.dcu oluşacaktır.
Bu yöntemle *.dcu(DelphiCompileUnit) oluşturduğun tüm derlenmiş dosyaları(Consts.dcu),
Windows Gezgini veya kendi belirleyeceğin bir yolla C:\...\Delphi7\Lib dizini altına
aktarın ve Delphi'yi açın. Projeye Button ekleyin ve Button1Click yordamına;
//
if MessageDlg('Delphi projeme holgeldiniz. Şimdi çıkılsın mı?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
MessageDlg('Delphi projesinden çıkılıyor.', mtInformation, [mbOk], 0);
Close;
end;
//
şeklinde bir kodlama yapın ve çalıştırın. Uyarı ve düğme başlıklarının Türkçe geldiğini
göreceksin. Eğer DBConsts.pas dosyasında da değişiklik yapıp *dcu'yu Lib dizini altına
kopyaladıysan, veritabanıyla ilgili uyarılar Türkçe olacaktır.
** C:\...\Delphi7\Bin dizini altında bulunan(değiştirdiğin) *.pas ve *.dcu dosyaları
R/RW bir CD'ye kaydedersen, ileride Delphi'yi tekrar kurduğunda sadece *dcu dosyaları
C:\...\Delphi7\Lib dizinine aktarman yeterli olacaktır.
***** Komut istemini kapatmayı unutmayın.
---------------------------------------------------------------------------------------------
*** Veritabanını Türkçeleştirme;
Bu konu da daha önce anlatılmış. BDE veya Türkçe olarak arama yaparsanız,
ilgili konuları görebilirsin. Kısaca, veritabanı ayarlarına Delphi'nin BDE Administrator
(BDEAdmin.exe) programıyla ulaşabilirsin. Bilgi idapi32.cfg dosyasında tutulur.
(C:\Program Files\Common Files\Borland Shared\BDE\bdeadmin).
1. bdeadmin uygulamasını çalıştırın(Başlat\Tüm Programlar\Borland Delphi X(5 6 7)\
BDE Administrator yolunu kullanabilirsin). Pencere başlığına dikkat edersen
C:\Program Files\Common Files\Borland Shared\BDE\idapi32.cfg ifadesini görürsün.
2. Configuration sekmesini seçin. Sol baştaki tüm " + "'lara tıklayıp açın.
3. Configuration\Drivers\Native\PARADOX tıkladığınızda, sağ tarafta ilgili ayarları
göreceksin.
NET DIR --> Windows dışında başka bir işletim sistemi kullanmıyorsan
C:\ kalmalı. C:\PDOXUSRS.NET oluşturur.
PDOXUSRS.NET dosyasını programın içinden de yönlendirebilirsin.
Örnek;
ChDir(AppPATH + '\Network');
if IOResult <> 0 then MkDir(AppPATH + '\Network');
Session.NetFileDir:= AppPATH + '\Network';
VERSION --> Değiştirmeyin.
TYPE --> Değiştirmeyin.
LANGDRIVER --> Paradox 'turk' veya Pdox ANSI Turkish (tercih Paradox 'turk')
Aktif duruma getirdiğinde, oluşan ComboBox listesinden seçin.
Buradaki diğer bilgileri değiştirmeyin.
PARADOX dışındakileri de aynı yöntemle ayarlayabilirsin.
4. Configuration\System\INIT --> AUTO ODBC kullanmıyorsan(hazırdeğer FALSE) sadece;
LANGDRIVER --> Paradox 'turk' ... diğerlerini değiştirmeyin.
5. Configuration\System\Formats\Date
Buradaki değerler sırasıyla; TRUE, TRUE, TRUE, 0, /, TRUE olmalı.
6. Configuration\System\Formats\Time
Buradaki değerler sırasıyla; AM, TRUE, PM, TRUE, TRUE olmalı.
7. Configuration\System\Formats\Number
Buradaki değerler sırasıyla; 2, Virgül(,işareti), TRUE, Nokta(.işareti) olmalı.
!!! "bdeadmin" uygulamasını sonlandırmadan önce değişikliklerinizi kaydettirmeyi
unutmayın. idapi32.cfg dosyasını da hazırladığın R/RW CD'ye ekleyebilirsin.
** 5. 6. 7.'deki bilgiler "Windows Bölgesel Ayarları"'yla uyuşmalı. Standart ayarları
kullanmalısın. Programını yüklediğin başka bir PC ile aynı olmalı. Aksi taktirde,
o bilgisayarda değişiklikler yapmak zorunda kalırsın.
Database Desktop programını çalıştırıp *.db dosyanızı açtığınızda ş,Ş,ğ,Ğ,ı,İ
karekterlerinin biçimsiz olduğunu göreceksin. Telaşlanmayın
Programındaki veritabanın aktifleştiğinde, bu karekterler Türkçe gözükecektir.
Not: Türkçeleştirme yaparken profesyonelce düşünün. Yazım(imla) hataları yapmayın.
Unutmayınız ki, yazdığınız program kitlelere hitap edecek. Programınız çalışma
zamanında(Runtime) kullanıcıya Türkçe uyarı gönderecek. Dolayısıyla, buna özen
gösterin. Dilimizin kelime ve deyim içeriğiyle mükemmel olduğunu unutmayın.
İnternet sohbet ortamını kullanmayın.
Hiç kimseye Türkçe dersi verme niyetinde değilim. Ama, madem bu işe bir profesyonel
gözüyle bakıyoruz, o zaman Türkçe'ye özen göstermenin şart olduğunu düşünüyorum.
İşinizi görmesi dileğimle,
Çalışmalarınızda başarılar dilerim.
NeverFear - kaheri579@hotmail.com
MessageDlg
Arkadaşlar ben bu şekilde kullanamıyorum hata veriyor bu alanda
['Çık', 'Vazgeç']
If MyMessageDlg( 'Çıkmak istediğinize emin misiniz ?', mtConfirmation, [mbOk, mbCancel], ['Çık', 'Vazgeç'] ) = mrOk then Close;
['Çık', 'Vazgeç']
If MyMessageDlg( 'Çıkmak istediğinize emin misiniz ?', mtConfirmation, [mbOk, mbCancel], ['Çık', 'Vazgeç'] ) = mrOk then Close;
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
Fonksiyonu normal formlarda kullanıyordum.
MDI formda kullanmak istedim.
şarladı.
[
???
MDI formda kullanmak istedim.
Kod: Tümünü seç
dlgButton : TButton;
[
Kod: Tümünü seç
Error] Unit1.pas(106): Undeclared identifier: 'TButton'
Bir kelimenin anlamını öğretsen bile yeter..
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
Uses satırına StdCtrls eklemekte fayda var.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
Eyvallah Hoca.
Bir kelimenin anlamını öğretsen bile yeter..
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
Arkadaşlar bu Dialoğa 3 soruyu nasıl ekleyeceğin.
Ben de şöle bir soru var.
Kapatmak mı gizlemek mi istersiniz
Kapat , Gizle, Vazgeç,
Vazgeç nasıl olacak Yani gelen cevabın vazgeç olduğunu nasıl anlayacağım.
İyi akşamlar.
Ben de şöle bir soru var.
Kapatmak mı gizlemek mi istersiniz
Kapat , Gizle, Vazgeç,
Vazgeç nasıl olacak Yani gelen cevabın vazgeç olduğunu nasıl anlayacağım.
İyi akşamlar.
Bir kelimenin anlamını öğretsen bile yeter..
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
s.a.
mesajdialogdan gelen değeri word bir değişkene atacaksın. onu kontrol edeceksin.
kod şöle bişi olacak.
case yerine if ile de tek tek kontrol edebilirsin.
kolay gelsin.
mesajdialogdan gelen değeri word bir değişkene atacaksın. onu kontrol edeceksin.
kod şöle bişi olacak.
Kod: Tümünü seç
cevap:=mymesagedlg(...........);
case cevap of
mryes:evete basarsa
mrno:....
mrcancel:.....
mrok:.....
....
end;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
Kodu henüz denedim ama case veya if kullanmak aklıma hiç gelmedi
Büyük ihtimal çalışacaktır.
Büyük ihtimal çalışacaktır.
Bir kelimenin anlamını öğretsen bile yeter..
-
- Üye
- Mesajlar: 5
- Kayıt: 24 Ara 2013 05:26
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
xe5 de ben consts larla ilgili pas dosyası bulamıyorum
Re: messagedlg butonlarının yazısını EVET HAYR yapmak.
eğer projende bu tarz olaya daha sonra yine işin düşecekse bence kendi mesaj formunu kendin oluşturman en mantıklısı
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.