132 lines
3.2 KiB
ObjectPascal
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.
|