Delphi Can
Edit otomatik tamamlama - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Delphi (http://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (http://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Edit otomatik tamamlama (/showthread.php?tid=3548)



Edit otomatik tamamlama - ahmetb - 13-04-2019

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;



Cvp: Edit otomatik tamamlama - narkotik - 13-04-2019

(13-04-2019, Saat: 19:10)ahmetb Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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?


Edit otomatik tamamlama - ahmetb - 13-04-2019

Görsellikten dolayı DateEdit tercih etmiyorum.


Edit otomatik tamamlama - mcuyan - 14-04-2019

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;



Cvp: Edit otomatik tamamlama - ahmetb - 14-04-2019

(14-04-2019, Saat: 18:05)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.