Function OpentableMy(Dataset: TMyQuery): Boolean;
begin
if Dataset.Active = False then
begin
Dataset.Open;
end;
end;
Function ClosetableMy(Dataset: TMyQuery): Boolean;
begin
if Dataset.Active = True then
begin
Dataset.Close;
end;
end;
Function ExecQueryMy(Query: String; Dataset: TMyQuery): Boolean;
begin
Result := False;
Dataset.Close;
Dataset.SQL.Clear;
Dataset.SQL.Text := Query;
Dataset.Execute;
Result := True;
end;
Function CariQueryMy(Query: String; Dataset: TMyQuery): Boolean;
begin
Dataset.Close;
Dataset.SQL.Clear;
Dataset.SQL.Text := Query;
Dataset.Open;
if Not (Dataset.Eof or Dataset.IsEmpty) Then
Begin
Result:=true;
end else
begin
Result:=False;
end;
end;
Cara penggunaan
begin
if cariquerymy('select * from t_pelanggan where kode_pelanggan=''%Andi%'' ', Myquery1) Then
begin
// isi statemen
end;
end;
function GridSelectAll(Grid: TDBGrid): Longint;
begin
Result := 0;
Grid.SelectedRows.Clear;
with Grid.DataSource.DataSet do
begin
First;
DisableControls;
try
while not EOF do
begin
Grid.SelectedRows.CurrentRowSelected := True;
Inc(Result);
Next;
end;
finally
EnableControls;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GridSelectAll(DBGrid1);
end;
procedure TGridForm.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
grid : TDBGrid;
row : integer;
begin
grid := sender as TDBGrid;
row := grid.DataSource.DataSet.RecNo;
if Odd(row) then
grid.Canvas.Brush.Color := clSilver
else
grid.Canvas.Brush.Color := clDkGray;
grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ;
end; (* DBGrid OnDrawColumnCell *)
procedure Load_Setting_DB_Grid(nama_dbgrid : Tdbgrid; nama_form : TForm; nama_file: String);
var i : byte;
Namamemo : TMemo;
inistr : String;
begin
i := 0;
myINI := TINIFile.Create(ExtractFilePath(Application.EXEName) + 'Setting\' + nama_file);
Namamemo := TMemo.Create(nama_form);
Namamemo.Parent := nama_form;
Namamemo.Lines.Clear;
Namamemo.Lines.LoadFromFile(myINI.FileName);
Namamemo.Visible := False;
inistr := myINI.FileName;
if FileExists(inistr)=true then
begin
For i := 0 to Namamemo.Lines.Count -2 do
Begin
nama_dbgrid.Columns[i].Width := StrToInt(myINI.ReadString(nama_dbgrid.Name, inttostr(i), Namamemo.Lines.Strings[i]));
End;
end;
Namamemo.Free;
end;
procedure Save_Setting_DB_Grid(nama_dbgrid : Tdbgrid; nama_file: String);
var i : byte;
begin
i := 0;
myINI := TINIFile.Create(ExtractFilePath(Application.EXEName) + '\Setting\' + nama_file);
for i := 0 to nama_dbgrid.Columns.Count -1 do
Begin
nama_dbgrid.Columns[1].Width;
myINI.WriteString(nama_dbgrid.Name, inttostr(i), inttostr(nama_dbgrid.Columns[i].width));
End;
End;
procedure SetGridColumnWidths(Grid: Tdbgrid);
const
DEFBORDER = 10;
var
temp, n: Integer;
lmax: array [0..30] of Integer;
begin
with Grid do
begin
Canvas.Font := Font;
for n := 0 to Columns.Count - 1 do
//if columns[n].visible then
lmax[n] := Canvas.TextWidth(Fields[n].FieldName) + DEFBORDER;
grid.DataSource.DataSet.First;
while not grid.DataSource.DataSet.EOF do
begin
for n := 0 to Columns.Count - 1 do
begin
//if columns[n].visible then begin
temp := Canvas.TextWidth(trim(Columns[n].Field.DisplayText)) + DEFBORDER;
if temp > lmax[n] then lmax[n] := temp;
//end; { if }
end; {for}
grid.DataSource.DataSet.Next;
end; { while }
grid.DataSource.DataSet.First;
for n := 0 to Columns.Count - 1 do
if lmax[n] > 0 then
Columns[n].Width := lmax[n];
end; { With }
end; {SetGridColumnWidths }
procedure TForm1.Button1Click(Sender: TObject);
begin
SetGridColumnWidths(dbgrid3);
end;
//...
private
OldGridProc: TWndMethod;
procedure GridWindowProc(var Message: TMessage);
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
OldGridProc := DBGrid1.WindowProc;
DBGrid1.WindowProc := GridWindowProc;
end;
procedure TForm1.GridWindowProc(var Message: TMessage);
var
Pos: SmallInt;
begin
OldGridProc(Message);
if Message.Msg = WM_VSCROLL then //or WM_HSCROLL
begin
Pos := Message.WParamHi; //Scrollbox position
Table1.RecNo := Pos;
end;
end;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DataSource1.DataSet.RecNo > 0 then
begin
if Column.Title.Caption = 'No' then
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, IntToStr(DataSource1.DataSet.RecNo));
end;
end;