Merubah Setiap awal kata menjadi huruf besar pada TEdit

Dalam keadaan tertentu kita memerlukan bahwa setiap kata yang diinput pada TEdit harus huruf besar pada huruf pertamanya. Seperti misalnya dalam penulisan nama orang, nama tempat dll. Terkadang operator lupa menekan shift, sehingga terjadi kekeliruan input.

Prosedur dibawah ini akan secara otomatis merubah huruf pertama setiap kata menjadi huruf besar.
Pada event OnChange pada TEdit, tuliskan kode berikut:

procedure TForm1.Edit1Change(Sender: TObject);
var
  OldChange: TNotifyEvent;
  OldStart: Integer;
begin
  with (Sender as TEdit) do
  begin
    OldChange := OnChange;
    OnChange  := nil;
    OldStart  := SelStart;
    if ((SelStart > 0) and (Text[SelStart - 1] = ‘ ‘)) or (SelStart = 1) then
    begin
      SelStart  := SelStart – 1;
      SelLength := 1;
      SelText   := AnsiUpperCase(SelText);
    end;

    OnChange := OldChange;
    SelStart := OldStart;
  end;

Input Tanggal

Terkadang kita membutuhkan suatu masukan tanggal yang bisa dikosongkan bisa juga diisi (opsional). Bila kita menggunakan TDateTimePicker, maka nilai tanggal harus diisi (tidak boleh dikosongkan.

Nah untuk input tanggal menggunakan TEdit, maka perlu dibuat fungsi untuk mengecek valid tidaknya tanggal yang dimasukkan.

function TglBenar(a: string): boolean;
CONST
JUMLAHHARI : ARRAY[1..12] OF BYTE =(31,28,31,30,31,30,31,31,30,31,30,31);
begin
StringToDate(a,hari,bulan,tahun,dataError);
if dataError then Result:=False
else
begin
//Cek Bulan
If (Bulan>12) or (Bulan<1)>
Result:=True;
//Jika bulan sudah benar, cek tgl apakah melewati batas hari dlm bln tsb
If Result=True Then
Begin
Case Bulan of
1 : IntJmlHari:=31;
2 : If ((Tahun MOD 4)=0) Then IntJmlHari:=29 else
IntJmlHari:=28;
3 : IntJmlHari:=31;
4 : IntJmlHari:=30;
5 : IntJmlHari:=31;
6 : IntJmlHari:=30;
7 : IntJmlHari:=31;
8 : IntJmlHari:=31;
9 : IntJmlHari:=30;
10: IntJmlHari:=31;
11: IntJmlHari:=30;
12: IntJmlHari:=31;
End;
If (Hari>IntJmlHari) OR (Hari<1)>
Else Result:=True;
End;
end;

//Memisah Tgl,Bln,Thn menjadi Integer
procedure TForm1.StringToDate(A: String; var Hari, Bulan, Tahun: integer;
var DataError: boolean);
Var Valcode:Integer;
begin
DataError:=False;
Val(Copy(a,1,2),hari,valcode);
if valcode<>0 then dataerror:=true else
begin
Val(Copy(a,4,2),bulan,valcode);
if valcode<>0 then DataError:=true else
begin
Val(Copy(a,7,4),tahun,valcode);
if valcode<>0 then DataError:=true;
end;
end;
end;

Pada Event OnKeyPress milik TEdit dibuat procedure :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in['0'..'9','-',#8,#13]) Then Key:=#0;
end;

Penggunaan :

procedure TForm1.BitBtn1Click(Sender: TObject);
Var TanggalInput : TDateTime;
begin
If TglBenar(MaskEdit1.Text) Then
Begin
TanggalInput:=StrToDate(Maskedit1.Text);
Edit2.Text := FormatDateTime(‘dd/mm/yyyy’, TanggalInput);
End else
ShowMessage(‘Pemasukan tanggal salah’);
end;