xtool/contrib/mORMot/SQLite3/Samples/ThirdPartyDemos/WarleyAlex/MongoProj/Form2.pas

132 lines
3.2 KiB
ObjectPascal

unit Form2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Mask;
type
TItems = class(TForm)
StringGrid: TStringGrid;
edtName: TEdit;
btnAdd: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
btnDelete: TButton;
Button1: TButton;
edtCity: TMaskEdit;
edtEmail: TMaskEdit;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure DeleteStringGridRow(n: Integer; var Grid: TStringGrid);
public
end;
var
Items: TItems;
implementation
{$R *.dfm}
procedure TItems.FormCreate(Sender: TObject);
begin
StringGrid.ColCount := 4;
StringGrid.RowCount := 2;
StringGrid.FixedRows := 1;
StringGrid.ColWidths[0] := 50;
StringGrid.ColWidths[1] := 100;
StringGrid.ColWidths[2] := 50;
StringGrid.ColWidths[3] := 50;
StringGrid.DefaultRowHeight := StringGrid.Canvas.TextHeight('X') + 8;
StringGrid.Cells[0, 0] := 'Row';
StringGrid.Cells[1, 0] := 'SKU';
StringGrid.Cells[2, 0] := 'Quantity';
StringGrid.Cells[3, 0] := 'Price';
end;
procedure TItems.btnAddClick(Sender: TObject);
begin
if Trim(edtName.Text) = '' then begin
ShowMessage('Name Required');
Exit;
end;
if (StringGrid.RowCount > 2) or (StringGrid.Cells[1, StringGrid.RowCount-1] > '') then
StringGrid.RowCount := StringGrid.RowCount + 1;
StringGrid.Cells[0, StringGrid.RowCount-1] := IntToStr(StringGrid.RowCount-1);
StringGrid.Cells[1, StringGrid.RowCount-1] := edtName.Text;
StringGrid.Cells[2, StringGrid.RowCount-1] := edtCity.Text;
StringGrid.Cells[3, StringGrid.RowCount-1] := edtEmail.Text;
edtName.Text := '';
edtCity.Text := '';
edtEmail.Text := '';
ActiveControl := edtName;
end;
procedure TItems.btnDeleteClick(Sender: TObject);
begin
if (StringGrid.Row > 0)
and (StringGrid.Cells[1, StringGrid.RowCount-1] > '')
and (MessageDlg(Format('Delete %s?', [StringGrid.Cells[1, StringGrid.Row]]), mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin
DeleteStringGridRow(StringGrid.Row, StringGrid);
if StringGrid.RowCount < 2 then
StringGrid.RowCount := 2;
end;
ActiveControl := StringGrid;
end;
procedure TItems.DeleteStringGridRow(n: Integer; var Grid: TStringGrid);
var
i: integer;
begin
if Grid.RowCount > Grid.FixedRows + 1 then begin
for i := (n + 1) to Grid.RowCount do
Grid.Rows[i-1] := Grid.Rows[i];
Grid.RowCount := Grid.RowCount -1;
end else
Grid.Rows[n].Delete(Grid.Row);
end;
procedure TItems.Button1Click(Sender: TObject);
begin
close;
end;
type
TTableData = record
header: String[25]; //the header of the column (row 0)
value : String[25]; //the string value of the data
number: Integer; //the y-pos of the data in the table
end;
procedure TItems.Button2Click(Sender: TObject);
var
i, j: Integer;
arrData : TTableData;
tableData : array of TTableData;
Total_Firma:array of array[0..3] of string;
CSV : TStrings;
begin
end;
// for i:= 0 to StringGrid1.RowCount - 1 do begin
// for j:=0 to StringGrid1.ColCount - 1 do begin
// ShowMessage(tableData[i,j].header+': '+tableData[i,j].value);
// end;
// end;
//end;
end.