سیستم مکانیزه دبیرخانه
 
این برنامه یک دیتابیس ساده به زبان دلفی با کمک اکسس و دستورات  Sql  می باشد برای این کار ابتدا به برنامه اکسس رفته و یک Tabel  با نام Dabir ایجاد می کنیم که مانند عکس شامل فیلد های زیر می باشد
 
 
Nno : شماره نامه ای که قرار است ثبت شود
Subject : موضوع نامه ای که قرار است ثبت شود
Date  : تاریخی که در آن نامه ثبت شذه
Name  : نام صاحب نامه
File  : آدرس فایلی که نامه ذخیره می شود
جدول را ذخیره می کنیم و به دلفی می رویم :
New project   را انتخاب می کنیم
مطابق شکل ابزار زیر را در صفحه قرار می دهیم
 
 
 
 
 
 
 
 
 
 
کد این یونیت به صورت زیر می باشد
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, Menus;
type
  TForm1 = class(TForm)
    Button1: TButton;
    GroupBox1: TGroupBox;
    Button3: TButton;
    Button4: TButton;
    GroupBox2: TGroupBox;
    Button6: TButton;
    Button2: TButton;
    Button5: TButton;
    Button7: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ColorDialog1: TColorDialog;
    FontDialog1: TFontDialog;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
uses Unit2, Unit3, Unit5, editor, Unit7, Unit4;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.show;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
form3.show;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
form5.show;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
mainform.show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form7.show;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
if fontdialog1.Execute then
begin
form1.Font:=  fontdialog1.Font;
form2.Font:=  fontdialog1.Font;
form3.Font:=  fontdialog1.Font;
form4.Font:=  fontdialog1.Font;
form5.Font:=  fontdialog1.Font;
form7.Font:=  fontdialog1.Font;
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
  if colordialog1.Execute then
begin
form1.Color :=  colordialog1.Color;
form2.Color :=  colordialog1.Color;
form3.Color :=  colordialog1.Color;
form4.Color :=  colordialog1.Color;
form5.Color :=  colordialog1.Color;
form7.Color :=  colordialog1.Color;
end;
end;
end.
 
حال به سراغ طراحی فرم های دیگر برنامه می رویم
 
 
 
 
 
 
مانند شکل یک تیبل و یک کوری و یک دیتا ست و یک کانکشن بر روی صقحه         می گذاریم و تنظیمات آنها را به فایل مربوطه در اکسس مربوط می نماییم و سه دکمه و 4 label , و 4 Edit box  نیز قرار می دهیم کد این فرم برای سه دکمه به صورت زیر است که کد مهم آن کد دکمه ذخیره می باشد.
 
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, DBCtrls, Mask, StdCtrls, ComCtrls, ExtCtrls, ToolWin,
  DBTables;
type
  TForm2 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    MaskEdit1: TMaskEdit;
    Label4: TLabel;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    dabir: TADOTable;
    RichEdit1: TRichEdit;
    Splitter1: TSplitter;
    Button1: TButton;
    Button2: TButton;
    Edit3: TEdit;
    aq: TADOQuery;
    Label5: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form2: TForm2;
    ll:string;
    oo:boolean;
implementation
      uses  editor;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
e1,e2,e3,e4:boolean;
begin
e1 := false;
e2 := false;
e3 := false;
e4 := false;
if edit1.Text = '' then e1:=true;
if edit2.Text = '' then e2:=true;
if edit3.Text = '' then e4:=true;
if maskedit1.Text = '1384/__/__' then e3:=true;
if  e1 or e2 or e3 or e4 then
          showmessage('اطلاعات کامل نیست')
                     else
                  begin
             ll := 'c:\dabir_khane\nameha\'+ edit3.Text;
              aq.Active :=false;
              aq.SQL.Clear ;
              aq.SQL.Add ('select * from dabir where nno='''+edit3.Text+'''');
              aq.Active :=true;
           if aq.IsEmpty=true then
                       begin
                   dabir.Insert ;
                   dabir.FieldByName ('name').asstring:=edit1.text;
                   dabir.FieldByName ('subject').asstring:=edit2.text;
                   dabir.FieldByName ('date').asstring:=maskedit1.text;
                   dabir.FieldByName ('nno').asstring:=edit3.text;
                   dabir.FieldByName ('file').asstring:=ll;
                   dabir.Post;
                   showmessage('اطلاعات ثبت شد');
                  richedit1.Lines.SaveToFile(ll);
  edit1.Text :='';
  edit2.Text :='';
  edit3.Text :='';
  maskedit1.Text :='';
                     end
                       else
                          begin
                                showmessage('اطلاعات تکراری است');
  edit1.Text :='';
  edit2.Text :='';
  edit3.Text :='';
  maskedit1.Text :='';
     end;
     end;
    end;
procedure TForm2.Button2Click(Sender: TObject);
begin
adoconnection1.Connected:=false;
form2.Close;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
if edit3.Text = '' then showmessage ('ابتدا شماره نامه را وارد کنید') else
begin
oo:=true;
ll := 'c:\dabir_khane\nameha\'+ edit3.Text;
 
RichEdit1.lines.savetofile(ll);
mainform.show;
 
end;
     end;
end.
فرم بعدی فرم ویرایش نامه ها می باشد با شکل زیر
 
 
 
 
 
 
 
ابزار های مورد نیاز این فرم برای ساخت عبارتند از
یک db navigation  یک dbgrid یک دیتا سورس یک کوری یک دیتا ست و یک Ado Tabel  که نامه های را که تایپ شده اند را نشان می دهد و ویرایش می کند که لازم برای طراحی این فرم به صورت زیر است :
 
unit Unit3;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;
type
  TForm3 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ADODataSet1: TADODataSet;
    procedure DBGrid1CellClick(Column: TColumn);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form3: TForm3;
    jj,ss:string;
implementation
uses Unit4;
{$R *.dfm}
procedure TForm3.DBGrid1CellClick(Column: TColumn);
begin
ss:=dbgrid1.SelectedField.AsString;
 with ADODataSet1 do begin
  CommandType := cmdText;
  CommandText := 'select * from dabir where nno='''+ss+'''';
     Open;
     end;
       if ADODataSet1.IsEmpty=true  then
         begin
         showmessage ('برای ویرایش متن بر روی شماره نامه کلیک کنید');
         ADODataSet1.Refresh;
         ADODataSet1.Active:=false;
          end
        else if ADODataSet1.IsEmpty= false  then
        begin
       jj:= adodataset1.Fields.Fields[4].AsString;
          ADODataSet1.Refresh;
         ADODataSet1.Active:=false;
         form4.show;
         end;
end;