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
  Otomatik açılan/kapanan toolbar cemakkus 3 242 06-03-2019, Saat: 08:43
Son Yorum: cemakkus
  Mobile otomatik kayıt işlemi için neyi kullanabilirim? hakanharbeli 4 567 16-07-2018, Saat: 11:20
Son Yorum: Abdullah ILGAZ
Question delphi 10.2.3 edit-memo yazı tekrarı Mr.Developer 2 601 05-06-2018, Saat: 11:10
Son Yorum: Mr.Developer
  edit-numara formatında yazma ? Mr.Developer 8 889 28-05-2018, Saat: 16:36
Son Yorum: Mr.Developer
Question Listview Edit Ekleme ve Button Yüksekliği Ayarı elixir84 11 1.351 22-05-2018, Saat: 21:51
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi