Основа уже есть -
https://yadi.sk/d/GKa2-lrTgoUQS
Допишите, дополните/исправьте ошибки пожалуйста, буду очень признателен(возможно даже материально).
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Grids;
const
Namef='Tab.dat';
type
TForm1 = class(TForm)
edt1: TEdit;
lbl1: TLabel;
lbl2: TLabel;
edt2: TEdit;
lbl3: TLabel;
edt3: TEdit;
lbl4: TLabel;
edt4: TEdit;
lbl5: TLabel;
edt5: TEdit;
mm1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
sg: TStringGrid;
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Trec=record
TabNom:Integer;
FIO:string[25];
Pdrz:string[12];
Dolj:String[20];
Oklad:Real;
end;
var
Form1: TForm1;
F:file of Trec;
W:TRec;
implementation
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
try
W.TabNom:=StrToInt(edt1.Text);
except
ShowMessage('Ошибка преобразования');
Edt1.SetFocus;
Exit;
end;
W.FIO:=Edt2.Text;
W.Pdrz:=(Edt3.Text);
W.Dolj:=(Edt4.Text);
try
W.Oklad:=StrToInt(Edt5.Text);
except
ShowMessage('Ошибка преобразования');
Edt5.SetFocus;
Exit;
end;
write(f,W);
ShowMessage('Запись добавлена')
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with stringGrid1 do
begin
cells[0,0]='TabNom';
cells[1,0]='FIO';
cells[2,0]='Pdrz';
cells[3,0]='Dolj';
cells[4,0]='Oklad';
end;
if FileExists(NameF)
then
begin
ShowMessage(NameF+' открыт');
AssignFile (F, Namef);
Reset(f);
end
else
begin
AssignFile (F, Namef);
Rewrite (f);
ShowMessage(nameF+' создан');
end;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
CloseFile(F);
end;
procedure TForm1.N8Click(Sender: TObject);
begin
var
XL, // Приложение Excel
Vals: Variant; // Врем. массив для переноса значений в Excel
begin
{Экспорт в Excel}
try
Screen.Cursor := crHourGlass;
Rows := 10; // Кол-во строк
Cells := 12; // Кол-во колонок
Vals := VarArrayCreate([0, Rows, 0, Cells], varVariant); // Создаем и заполняем массив (для записи)
...
try
XL := CreateOleObject('Excel.Application');
except
raise Exception.Create('Ощибка запуска Excel');
end;
XL.Application.EnableEvents := False;
XL.WorkBooks.Add('test.xls'); // Открываем шаблон для записи или файл для чтения
XL.Range[XL.Cells[1,1], XL.Cells[Rows, Cells]].Value := Vals; // Пишем данные
// Vals := XL.Range[XL.Cells[1,1], XL.Cells[Rows, Cells]].Value; // Читаем данные
XL.Visible := True;
finally
Screen.Cursor := crDefault;
end;
end;
end.