Forum Kurallarımız güncellenmiştir. DelphiCan Forum Kuralları (March 04) x

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Edit otomatik tamamlama
#1
Merhaba;


Yaklaşık 10 tedit kullanıyorum edit içine tarih girince otomatik olarak (.) eklenmesini istiyorum.
İşlemi function kullanarak çözmek istiyorum, Fakat (.) hep en sonda kalıyor Örnek: 02 yazdığımda noktayı koyuyor fakat edite tekrar sayı girdiğimde nokta yine sonda kalıyor. bu durumu nasıl çözerim?



procedure TForm1.EditTarihChangeTracking(Sender: TObject);
begin
  if EditTarih.Text.Length > 0 then
    EditTarih.Text := TarihCreate(EditTarih.Text);
end;


function TForm1.TarihCreate(TarihString: String): String;
var
  Test: String;
begin
  Result := TarihString;
  I := Result.Length;
  begin
    if I = 2 then
    begin
      Test := Result;
      Result := '';
      Result := Test + ':';
    end;
  end;
end;
Cevapla
#2
(13-04-2019, Saat: 19:10)ahmetb Adlı Kullanıcıdan Alıntı: Merhaba;


Yaklaşık 10 tedit kullanıyorum edit içine tarih girince otomatik olarak (.) eklenmesini istiyorum.
İşlemi function kullanarak çözmek istiyorum, Fakat (.) hep en sonda kalıyor Örnek: 02 yazdığımda noktayı koyuyor fakat edite tekrar sayı girdiğimde nokta yine sonda kalıyor. bu durumu nasıl çözerim?



procedure TForm1.EditTarihChangeTracking(Sender: TObject);
begin
  if EditTarih.Text.Length > 0 then
    EditTarih.Text := TarihCreate(EditTarih.Text);
end;


function TForm1.TarihCreate(TarihString: String): String;
var
  Test: String;
begin
  Result := TarihString;
  I := Result.Length;
  begin
    if I = 2 then
    begin
      Test := Result;
      Result := '';
      Result := Test + ':';
    end;
  end;
end;

neden DateEdit kullanmıyorsunuz?
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#3
Görsellikten dolayı DateEdit tercih etmiyorum.
Cevapla
#4
Buyrun size bir DateEdit..


procedure TForm1.Edit1Enter(Sender: TObject);
begin
 Edit1.Clear;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not(CharInSet(Key, ['0' .. '9', #8, #13])) then
 begin
   Key := #0;
   Beep;
 end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 Edit1.MaxLength:=10; //Bunu formdan yaparsanız daha mantıklı..
 if length(Edit1.text) = 2 then
 begin
   Edit1.text := Edit1.text + '.';
   Edit1.SelStart := 3;
   Edit1.SelLength := 0;
 end;
 if length(Edit1.text) = 5 then
 begin
   Edit1.text := Edit1.text + '.';
   Edit1.SelStart := 6;
   Edit1.SelLength := 0;
 end;
end;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#5
(14-04-2019, Saat: 18:05)mcuyan Adlı Kullanıcıdan Alıntı: Buyrun size bir DateEdit..


procedure TForm1.Edit1Enter(Sender: TObject);
begin
 Edit1.Clear;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not(CharInSet(Key, ['0' .. '9', #8, #13])) then
 begin
   Key := #0;
   Beep;
 end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 Edit1.MaxLength:=10; //Bunu formdan yaparsanız daha mantıklı..
 if length(Edit1.text) = 2 then
 begin
   Edit1.text := Edit1.text + '.';
   Edit1.SelStart := 3;
   Edit1.SelLength := 0;
 end;
 if length(Edit1.text) = 5 then
 begin
   Edit1.text := Edit1.text + '.';
   Edit1.SelStart := 6;
   Edit1.SelLength := 0;
 end;
end;

Teşekkür ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Edit Memo vb. veri girişin nesnelerinde tümünü seç/kopyala/kes işlemleri hk (FMX) pro_imaj 47 2.452 20-04-2020, Saat: 16:17
Son Yorum: Halil Han Badem
  Android Servis otomatik başlatma arsl01 1 293 11-03-2020, Saat: 20:10
Son Yorum: Halil Han Badem
  Çözüldü - edit veya başka nesneye focus olmuyor cinarbil 2 332 11-03-2020, Saat: 08:24
Son Yorum: cinarbil
  Klavye'de Edit Text Promt Nasıl Gösterilir pro_imaj 2 267 28-02-2020, Saat: 20:49
Son Yorum: nguzeller
  FMX Webbrowser Otomatik yükseklik kadrikaya 3 649 03-11-2019, Saat: 14:07
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi