Скачиваний:
9
Добавлен:
17.06.2023
Размер:
1.4 Mб
Скачать

begin checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:=SQL+' WHERE Now_Doxod.ND_ID='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

if DBEdit4.Text<>'' then begin

Label8.Visible:=StrToBool(DBEdit4.Text); DBLookupComboBox1.Enabled:= not StrToBool(DBEdit4.Text); DBLookupComboBox2.Enabled:= not StrToBool(DBEdit4.Text); DBEdit2.Enabled:= not StrToBool(DBEdit4.Text); DateTimePicker2.Enabled:=not StrToBool(DBEdit4.Text); checkEdit:=StrToBool(DBEdit4.Text);

end;

end;

procedure TNDoxod.isEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Now_Doxod SET Now_Doxod.EDIT = True WHERE Now_Doxod.ND_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:=SQL+' WHERE ND_ID='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

procedure TNDoxod.noEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Now_Doxod SET Now_Doxod.EDIT = False WHERE Now_Doxod.ND_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:=SQL+' WHERE ND_ID='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

procedure TNDoxod.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.DoxNQuery4.Sort:= DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TNDoxod.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.DoxNQuery4.SQL.Clear;

DM.DoxNQuery4.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); Refresh;

end;

procedure TNDoxod.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.DoxNQuery4.SQL.Clear; DM.DoxNQuery4.SQL.Add(SQL+';'); DM.DoxNQuery4.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

51

procedure TNDoxod.DateTimePicker2Change(Sender: TObject); begin

DBEdit3.Text:=DateToStr(DateTimePicker2.Date);

end;

procedure TNDoxod.DBEdit3Change(Sender: TObject); begin

if DBEdit3.Text<>''then DateTimePicker2.Date:=StrToDate(DBEdit3.Text); end;

procedure TNDoxod.BitBtn2Click(Sender: TObject); begin

Refresh;

end;

procedure TNDoxod.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

var n:integer; begin ins:=false;

if Button=nbInsert then begin

ins:=true;

if DBLookupComboBox1.Enabled then DBLookupComboBox1.SetFocus; end;

if (Button=nbRefresh) then begin

n:=DM.DoxNQuery4.FieldValues['ND_ID']; Refresh; DM.DoxNQuery4.Locate('ND_ID',n,[]); CheckEdit;

end;

end;

procedure TNDoxod.DBEdit1Change(Sender: TObject); begin

if (DBEdit1.Text<>'') and (not ins) then checkEdit; end;

procedure TNDoxod.DBLookupComboBox1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNDoxod.DBLookupComboBox1Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNDoxod.Timer1Timer(Sender: TObject); begin

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbRefresh);

end;

end;

procedure TNDoxod.FormClose(Sender: TObject; var Action: TCloseAction); begin

noEdit;

Timer1.Enabled:=false;

end;

procedure TNDoxod.DBLookupComboBox2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNDoxod.DBLookupComboBox2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

52

procedure TNDoxod.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNDoxod.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNDoxod.DateTimePicker2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNDoxod.DateTimePicker2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNDoxod.BitBtn1Click(Sender: TObject); begin

Refresh;

if DM.DoxNQuery4.FieldValues['EDIT']=false then begin

if MessageDlg('Удалитьзапись?',mtWarning,[mbYes,mbNo],0)=mrYes then//если "да" begin

Refresh;

DM.DoxNQuery5.Close;

DM.DoxNQuery5.SQL.Clear;

DM.DoxNQuery5.SQL.Add('DELETE Now_Doxod.ND_ID, *FROM Now_Doxod WHERE Now_Doxod.ND_ID='+DBEdit1.Text+';');

DM.DoxNQuery5.ExecSQL;

end; end else

MessageDlg('Запись редактируется другим пользователем',mtError,[mbOK],0); end;

end.

Программный код модуля «Текущие расходы»:

unit Now_rasxod;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, DBCtrls, StdCtrls, Buttons, Grids, DBGrids, Mask;

type

TNRasxod = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBGrid1: TDBGrid;

RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label1: TLabel;

Label2: TLabel; ComboBox1: TComboBox; Edit1: TEdit;

53

DBNavigator1: TDBNavigator; DBLookupComboBox1: TDBLookupComboBox; DBLookupComboBox2: TDBLookupComboBox; DateTimePicker2: TDateTimePicker; Timer1: TTimer;

DBEdit4: TDBEdit;

Label8: TLabel;

BitBtn1: TBitBtn;

procedure DBEdit3Change(Sender: TObject); procedure DateTimePicker2Change(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject);

procedure DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

procedure DBLookupComboBox1Enter(Sender: TObject); procedure DBLookupComboBox1Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure DBEdit1Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject); procedure DBLookupComboBox2Enter(Sender: TObject); procedure DBLookupComboBox2Exit(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject);

procedure DateTimePicker2Enter(Sender: TObject); procedure DateTimePicker2Exit(Sender: TObject);

private

{ Private declarations } procedure isEdit; procedure noEdit; procedure Refresh; function checkEdit:boolean;

public

{ Public declarations } end;

const

SQL='SELECT Now_Rasxod.*, Family.F_Name, Rasxod.R_Rasxod, Rasxod.R_ID, Family.F_ID' +' FROM Rasxod INNER JOIN (Family INNER JOIN Now_Rasxod ON Family.F_ID =

Now_Rasxod.NR_FIO) ON Rasxod.R_ID = Now_Rasxod.NR_Rasxod';

var

NRasxod: TNRasxod; s:string; ins:boolean;

implementation

uses Data_modul, Familyes, Rasxods;

{$R *.dfm}

procedure TNRasxod.Refresh; begin

DM.RasNQuery5.Close;

DM.RasNQuery5.Open;

end;

function TNRasxod.checkEdit:boolean; begin

checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:=SQL+' WHERE Now_Rasxod.NR_ID='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

if DBEdit4.Text<>'' then begin

Label8.Visible:=StrToBool(DBEdit4.Text); DBLookupComboBox1.Enabled:= not StrToBool(DBEdit4.Text); DBLookupComboBox2.Enabled:= not StrToBool(DBEdit4.Text); DBEdit2.Enabled:= not StrToBool(DBEdit4.Text); DateTimePicker2.Enabled:=not StrToBool(DBEdit4.Text); checkEdit:=StrToBool(DBEdit4.Text);

end;

end;

procedure TNRasxod.isEdit; begin

if DBEdit1.Text<>'' then begin

54

DM.CheckQuery1.SQL.Text:='UPDATE Now_Rasxod SET Now_Rasxod.EDIT = True WHERE Now_Rasxod.NR_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:=SQL+' WHERE NR_ID='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

procedure TNRasxod.noEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Now_Rasxod SET Now_Rasxod.EDIT = False WHERE Now_Rasxod.NR_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:=SQL+' WHERE NR_ID='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

procedure TNRasxod.DBEdit3Change(Sender: TObject); begin

if DBEdit3.Text<>''then DateTimePicker2.Date:=StrToDate(DBEdit3.Text); end;

procedure TNRasxod.DateTimePicker2Change(Sender: TObject); begin

DBEdit3.Text:=DateToStr(DateTimePicker2.Date);

end;

procedure TNRasxod.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.RasNQuery5.Sort:= DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TNRasxod.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.RasNQuery5.SQL.Clear;

DM.RasNQuery5.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); Refresh;

end;

procedure TNRasxod.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.RasNQuery5.SQL.Clear; DM.RasNQuery5.SQL.Add(SQL+';'); DM.RasNQuery5.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TNRasxod.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

var n:integer; begin ins:=false;

if Button=nbInsert then begin

ins:=true;

if DBLookupComboBox1.Enabled then DBLookupComboBox1.SetFocus;

55

end;

if (Button=nbRefresh) then begin

n:=DM.RasNQuery5.FieldValues['NR_ID']; Refresh; DM.RasNQuery5.Locate('NR_ID',n,[]); CheckEdit;

end;

end;

procedure TNRasxod.DBLookupComboBox1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNRasxod.DBLookupComboBox1Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNRasxod.Timer1Timer(Sender: TObject); begin

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbRefresh);

end;

end;

procedure TNRasxod.FormClose(Sender: TObject; var Action: TCloseAction); begin

noEdit;

Timer1.Enabled:=false;

end;

procedure TNRasxod.DBEdit1Change(Sender: TObject); begin

if (DBEdit1.Text<>'') and (not ins) then checkEdit; end;

procedure TNRasxod.BitBtn1Click(Sender: TObject); begin

Refresh;

if DM.RasNQuery5.FieldValues['EDIT']=false then begin

if MessageDlg('Удалитьзапись?',mtWarning,[mbYes,mbNo],0)=mrYes then//если "да" begin

Refresh;

DM.RasNQuery6.Close;

DM.RasNQuery6.SQL.Clear;

DM.RasNQuery6.SQL.Add('DELETE Now_Rasxod.NR_ID, *FROM Now_Rasxod WHERE Now_Rasxod.NR_ID='+DBEdit1.Text+';');

DM.RasNQuery6.ExecSQL;

end; end else

MessageDlg('Запись редактируется другим пользователем',mtError,[mbOK],0); end;

procedure TNRasxod.DBLookupComboBox2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNRasxod.DBLookupComboBox2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNRasxod.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

56

end;

procedure TNRasxod.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TNRasxod.DateTimePicker2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TNRasxod.DateTimePicker2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

end.

Программный код модуля «Смены пароля»:

unit ChangePass;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Mask;

type

TChange = class(TForm) Panel1: TPanel; Label1: TLabel; Panel2: TPanel; Panel3: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label4: TLabel;

DBLookupComboBox1: TDBLookupComboBox; Edit1: TEdit;

Panel4: TPanel;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit; DBEdit1: TDBEdit;

procedure BitBtn2Click(Sender: TObject); procedure FormShow(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations } public

{ Public declarations } end;

var

Change: TChange; new, pwd:String; posetitel:string;

implementation

uses Home_page, Data_Modul, LogForm;

{$R *.dfm}

procedure TChange.BitBtn2Click(Sender: TObject); begin

Change.Close;

end;

procedure TChange.FormShow(Sender: TObject); begin

DM.USQuery1.SQL.Clear;

57

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

procedure TChange.DBLookupComboBox1CloseUp(Sender: TObject); begin

posetitel:=DBLookupComboBox1.Text; if posetitel<>'' then

begin pwd:=DBEdit1.Text; Edit1.SetFocus; Edit1.Text:=' '; DM.USQuery1.Close; DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users'

+' WHERE Users.ID='+IntToStr(DBLookupComboBox1.KeyValue)+';'); DM.USQuery1.Open; pwd:=DM.USQuery1.FieldByName('U_Password').AsString; DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

end;

procedure TChange.BitBtn1Click(Sender: TObject); var

ogPath:PChar; begin

if (pwd<>Edit1.Text) or (pwd=Edit2.Text) or (Edit2.Text<>Edit3.Text) then begin

if pwd<>Edit1.Text then begin

MessageDlg('Старыйпаролбвведенневерно!',mtError, [mbOK], 0); Edit1.SetFocus;

end;

if pwd=Edit2.Text then

begin

MessageDlg('Старый пароль не должен совпадть с новым!',mtError, [mbOK], 0);

Edit2.SetFocus;

end;

if Edit3.Text<>Edit2.Text then begin

MessageDlg('Некорректныйвводновогопароля',mtError, [mbOK], 0); Edit3.SetFocus;

end; end

else begin

DBEdit1.Text:=Edit2.Text;

DM.USQuery1.Edit; DM.USQuery1.FieldByName('U_Password').AsString:=Edit2.Text; DM.USQuery1.Post;

MessageDlg('Парольизменне. Повторите вход в систему!',mtInformation, [mbOK], 0); ogPath:=PChar(Application.ExeName);

WinExec(ogPath,SW_SHOW); Application.Terminate; end;

end;

end.

Программный код модуля «Авторизации администратора»:

unit AdForm;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, DBCtrls;

type

TAdmin = class(TForm) Panel1: TPanel; Label1: TLabel; Panel2: TPanel; Label2: TLabel; Panel3: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

58

Edit1: TEdit;

DBLookupComboBox1: TDBLookupComboBox; procedure FormShow(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

Admin: TAdmin; pwd:String; flag:Boolean; posetitel:string;

implementation

uses Data_Modul, UsesForm;

{$R *.dfm}

procedure TAdmin.FormShow(Sender: TObject); begin

MessageDlg('Доступно пользователю с правами администратора', mtInformation, [mbOK], 0);

DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

procedure TAdmin.DBLookupComboBox1CloseUp(Sender: TObject); begin

posetitel:=DBLookupComboBox1.Text; if posetitel<>'' then

begin Edit1.SetFocus; DM.USQuery1.Close;

DM.USQuery1.SQL.Clear; DM.USQuery1.SQL.Add('SELECT Users.*' +' FROM Users'

+' WHERE Users.ID='+IntToStr(DBLookupComboBox1.KeyValue)+';'); DM.USQuery1.Open; pwd:=DM.USQuery1.FieldByName('U_Password').AsString; DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

end;

procedure TAdmin.BitBtn1Click(Sender: TObject); begin

if posetitel='ADMIN' then

if pwd<>Trim(Edit1.Text) then MessageDlg('Неверныйпароль!',mtError, [mbOK], 0)

else begin

flag:=false;

if not flag then

begin

Users:=TUsers.Create(self);

flag:=true;

end;

Users.Show;

Admin.Close;

end

else MessageDlg('Вынеимеетправадминистратора', mtWarning, [mbOK], 0); end;

procedure TAdmin.BitBtn2Click(Sender: TObject); begin

Admin.Close;

end;

end.

Программный код модуля «Список пользователей»:

unit UsesForm;

59

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids;

type

TUsers = class(TForm) Panel1: TPanel; DBGrid1: TDBGrid;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label1: TLabel;

Label2: TLabel; ComboBox1: TComboBox; Edit1: TEdit;

DBNavigator1: TDBNavigator;

procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

const

SQL='SELECT Users.*FROM Users';

var

Users: TUsers; s:string;

implementation

{$R *.dfm}

uses Data_Modul;

procedure TUsers.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.USQuery1.Sort:= DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TUsers.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); DM.USQuery1.Close;

DM.USQuery1.Open;

end;

procedure TUsers.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.USQuery1.SQL.Clear; DM.USQuery1.SQL.Add(SQL+';'); DM.USQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

60

Соседние файлы в папке Курсовые работы