Edit içindeki sayıları ayırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Edit içindeki sayıları ayırma

Mesaj gönderen brs »

Selam; Edit içindeki sayıları saat formatına göre edit çıkışında düzenlemek istiyorum fakat 3 haneli sayılara gelince takıldım bunu nasıl yapa bilirim acaba...


örnek 1: sadece 3 sayısı yazılmışsa sayının en başına 00:00:03 olarak yazacak
örnek 2: sadece 40 sayısı yazılmışsa sayının en başına 00:00:40 olarak yazacak
örnek 3: sadece 124 sayısı yazılmışsa sayının en başına 00:01:24 olarak yazacak gibi yazdırmak istiyorum

Kod: Tümünü seç

procedure TForm1.Edit1Exit(Sender: TObject);
var
  Str: string;
  Say: integer;
begin
  Str := Edit1.Text;
  Say := Length(Edit1.Text);
  if Say = 1 then
  begin
    Edit1.Text := '00:00:0' + Copy(Str, 1, 1);
  end;
  if Say = 2 then
  begin
    Edit1.Text := '00:00:' + Copy(Str, 1, 2);
  end;
  if Say = 3 then
  begin
    Edit1.Text := '00:0' + Copy(Str, 1, 3);
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Edit içindeki sayıları ayırma

Mesaj gönderen freeman35 »

Edit'e kullanıcı "Abuzer" yazarsa ?
sadece sayı girilecekse spinedit neden değil? yada edit te alfanumeric giriş kontrolü var mı?, neden tdatetime girişi yapan component değil?
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Edit içindeki sayıları ayırma

Mesaj gönderen brs »

:shock: maskedit kullandım başka sıkıntılar çıkıyor ortaya bu nedenden dolayı edit kullanmak istedim (Edit'e kullanıcı "Abuzer" yazarsa ?) yazmasın diye edit sadece sayı girecek.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
mrdmn
Üye
Mesajlar: 10
Kayıt: 11 Tem 2014 01:40

Re: Edit içindeki sayıları ayırma

Mesaj gönderen mrdmn »

Kod: Tümünü seç

procedure TForm1.Edit1Exit(Sender: TObject);
var
  Str: Ansistring;
  Say: integer;
begin
  Str := Edit1.Text;
  Say := Length(Edit1.Text);
  if Say = 1 then
  begin
    Str := '00000' + Str;
    Insert(':',Str,3);
    Insert(':',Str,6);
    edit1.Text:= Str;
  end;
  if Say = 2 then
  begin
    Str := '0000' + Str;
    Insert(':',Str,3);
    Insert(':',Str,6);
    edit1.Text:= Str;
  end;
  if Say = 3 then
  begin
    Str := '000' + Str;
    Insert(':',Str,3);
    Insert(':',Str,6);
    edit1.Text:= Str;
  end;
end;
Sadece sayı girilmesini sağlayarak bu şekilde kullanabilirsin, Delphi 7'de denedim sorun yok :wink:
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Edit içindeki sayıları ayırma

Mesaj gönderen brs »

Teşekkür ederim bende bi şey yaptım ama...

Kod: Tümünü seç

procedure TForm1.Edit1Exit(Sender: TObject);
var
  Say: integer;
begin
  Say := Length(Edit1.Text);
  if Say = 1 then
  begin
    Edit1.Text := FormatFloat('00:00:0#', StrtoFloat(Edit1.Text));
  end;
  if Say = 2 then
  begin
    Edit1.Text := FormatFloat('00:00:##', StrtoFloat(Edit1.Text));
  end;
  if Say = 3 then
  begin
    Edit1.Text := FormatFloat('00:0#:##', StrtoFloat(Edit1.Text));
  end;
  if Say = 4 then
  begin
    Edit1.Text := FormatFloat('00:##:##', StrtoFloat(Edit1.Text));
  end;
  if Say = 5 then
  begin
    Edit1.Text := FormatFloat('0#:##:##', StrtoFloat(Edit1.Text));
  end;
  if Say = 6 then
  begin
    Edit1.Text := FormatFloat('0#:##:##', StrtoFloat(Edit1.Text));
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevapla