Materi Kulgram MYSQL STRINGGRID (Sesi IV)
Materi Kulgram MYSQL STRINGGRID (Sesi IV)
Bismillaahirrohmanirrohim
Assalammu'alaikum wr wb
Selamat malam semua...
kali ini kita masuk ke sesi IV...
yg mana kuliah kali ini cukup singkat...
kita mulai aja...buka unit uOverride
kita timpa dengan ini
https://pastebin.com/sb3kufB1 atau
unit uOverride;
interface
type
TJSON = class
private
FObject: TTreeView;
function GetString(ATree: String): String;
procedure SetString(ATree, AStr: String);
function GetInteger(ATree: String): Integer;
procedure SetInteger(ATree: String; AInt: Integer);
function Find(TTv: TTreeNode; AText: String): TTreeNode;
public
constructor Create;
destructor Destroy; override;
function Text: String;
property AsString[ATree: String]: String read GetString write SetString;
property AsInteger[ATree: String]: Integer read GetInteger write SetInteger;
end;
TCombobox = class(vcl.StdCtrls.TCombobox)
private
function GetTextInt: Integer;
procedure SetTextInt(AInt: Integer);
public
property TextInt: Integer read GetTextInt write SetTextInt;
end;
TStringGrid = class(vcl.Grids.TStringGrid)
private
FFormat: TFormatSettings;
FTimeZero: boolean;
FTime: TDateTimePicker;
FJSON: TJSON;
function GetTimes(ACol, ARow: Integer): TTime;
procedure SetTimes(ACol, ARow: Integer; ATime: TTime);
function GetTimeText(ACol, ARow: Integer): String;
function GetColEditor(ACol: Integer): TColEditor;
procedure SetColEditor(ACol: Integer; AEditor: TColEditor);
procedure InvisibleEditor;
procedure TimeChange(Sender: TObject);
protected
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure Click; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ConfigText: String;
property Times[ACol, ARow: Integer]: TTime read GetTimes write SetTimes;
property FormatSettings: TFormatSettings read FFormat;
property TimeText[ACol, ARow: Integer]: String read GetTimeText;
property TimeZero: Boolean read FTimeZero write FTimeZero;
property ColEditor[ACol: Integer]: TColEditor read GetColEditor
write SetColEditor;
end;
implementation
destructor TJSON.Destroy;
begin
TForm(FObject.Parent).Free;
inherited Destroy;
end;
tv1 := tv2;
end;
if tv1.Count = 0 then
result := '' else
result := tv1.Item[0].Text;
end;
if tv1.Count = 0 then
FObject.Items.AddChild(tv1, AStr) else
tv1.Item[0].Text := AStr;
end;
{TStringGrid}
procedure TStringGrid.TimeChange(Sender: TObject);
begin
SetTimes(Col, Row, FTime.Time);
end;
procedure TStringGrid.Click;
var
Rec: TRect;
Tim: TTime;
begin
if GetColEditor(Col) = ceTime then
begin
if (Col < FixedCols) or (Row < FixedRows) then exit;
FTime.Time := Tim;
FTime.Left := Rec.Left + 2;
FTime.Top := Rec.Top + 2;
FTime.Visible := true;
FTime.Kind := dtkTime;
FTime.Format := FFormat.LongTimeFormat;
FTime.Width := ColWidths[Col] - 4;
end;
end;
procedure TStringGrid.InvisibleEditor;
begin
FTime.Visible := false;
end;
FJSON.SetString(sss, VarToStr(AEditor));
end;
destructor TStringGrid.Destroy;
begin
FTime.Free;
FJSON.Free;
inherited Destroy;
end;
if Assigned(OnMouseMove) then
OnMouseMove(Self, Shift, X, Y);
end;
FFormat.LongTimeFormat := 'HH:mm:ss';
FFormat.ShortTimeFormat := 'HH:mm:ss';
FFormat.TimeSeparator := ':';
end;
{TCombobox}
function TCombobox.GetTextInt: Integer;
begin
result := StrToIntDef(Text, 0);
end;
end.
Coba di run..
datetimepicker dtJam kita hapus
sudah dihapus? terus di run
jikaerror
semua procedure yg ada dtJam nya kita hapus
procedure TfrmUtama.dtJamChange(Sender: TObject); hapus
procedure TfrmUtama.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); hapus
procedure TfrmUtama.gridClick(Sender: TObject); hapus
procedure yang terisisa
Lalu di run..
nah...di STringGrid gak ada lagi koding tampilan (UI)
tinggal dikembangkan dan bisa digunakan di project mana pun...tinggal panggil unit nya di uses
cukup sekian kulgram singkat ini...
Terima kasih atas perhatiannya semua....
selamat malam
wassalamu’alaikum wr wb