home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / delphi / ODA10 / _SETUP.1 / DemoMixedToMany.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-04-06  |  3.3 KB  |  122 lines

  1. unit DemoMixedToMany;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Mask, DBCtrls, DB, DBTables, Grids, DBGrids, ExtCtrls;
  8.  
  9. type
  10.   TFormMixedToMany = class(TForm)
  11.     QryPerson: TQuery;
  12.     SrcPerson: TDataSource;
  13.     Pers_LastName: TDBEdit;
  14.     Label1: TLabel;
  15.     Pers_FirstName: TDBEdit;
  16.     Label2: TLabel;
  17.     Pers_Birthday: TDBEdit;
  18.     Label4: TLabel;
  19.     NavPerson: TDBNavigator;
  20.     EditBemerkungen: TDBMemo;
  21.     Label5: TLabel;
  22.     QryAddress: TQuery;
  23.     GridAdressen: TDBGrid;
  24.     Label7: TLabel;
  25.     SrcAddresses: TDataSource;
  26.     QryPersonPers_LastName: TStringField;
  27.     QryPersonPers_FirstName: TStringField;
  28.     QryPersonPers_Remarks: TMemoField;
  29.     QryPersonPers_Birthday: TDateTimeField;
  30.     QryPersonPers_IsFemale: TBooleanField;
  31.     Pers_IsFemale: TDBCheckBox;
  32.     QryPersonPers_ID: TIntegerField;
  33.     QryAddressAdr_ID: TAutoIncField;
  34.     QryAddressAdr_PersID: TIntegerField;
  35.     QryAddressAdr_Street: TStringField;
  36.     QryAddressAdr_ZIP: TStringField;
  37.     QryAddressAdr_Place: TStringField;
  38.     QryAddressAdr_Country: TStringField;
  39.     TblAddress: TTable;
  40.     TblAddressAdr_ID: TAutoIncField;
  41.     TblAddressAdr_PersID: TIntegerField;
  42.     TblAddressAdr_Street: TStringField;
  43.     TblAddressAdr_ZIP: TStringField;
  44.     TblAddressAdr_Place: TStringField;
  45.     TblAddressAdr_Country: TStringField;
  46.     DropSourceType: TComboBox;
  47.     Label3: TLabel;
  48.     Bevel1: TBevel;
  49.     EditRecordNumber: TEdit;
  50.     Label6: TLabel;
  51.     procedure QryAddressBeforeOpen(DataSet: TDataSet);
  52.     procedure FormCreate(Sender: TObject);
  53.     procedure DropSourceTypeClick(Sender: TObject);
  54.     procedure SrcPersonDataChange(Sender: TObject; Field: TField);
  55.     procedure EditRecordNumberExit(Sender: TObject);
  56.   private
  57.     { Private declarations }
  58.   public
  59.     { Public declarations }
  60.   end;
  61.  
  62. var
  63.   FormMixedToMany: TFormMixedToMany;
  64.  
  65. implementation
  66. {$R *.DFM}
  67.  
  68. uses
  69.   DAO;
  70.  
  71. procedure TFormMixedToMany.QryAddressBeforeOpen(DataSet: TDataSet);
  72.   begin
  73.     QryAddress.Prepare;
  74.   end {QryAdressenBeforeOpen};
  75.  
  76.  
  77. procedure TFormMixedToMany.FormCreate(Sender: TObject);
  78.   begin
  79.     QryPerson.Open;
  80.     QryAddress.Open;
  81.     TblAddress.Open;
  82.     DropSourceType.ItemIndex:= 0;
  83.   end;
  84.  
  85. procedure TFormMixedToMany.DropSourceTypeClick(Sender: TObject);
  86.   begin
  87.     if DropSourceType.ItemIndex = 0 then begin
  88.       SrcAddresses.DataSet:= TblAddress;
  89.     end else begin
  90.       SrcAddresses.DataSet:= QryAddress;
  91.     end;
  92.   end;
  93.  
  94. procedure TFormMixedToMany.SrcPersonDataChange(Sender: TObject; Field: TField);
  95.   begin
  96.     with QryPerson do begin
  97.       if Active then begin
  98.         EditRecordNumber.Text:= IntToStr( DAORecordset( Handle ).AbsolutePosition + 1 );
  99.       end;
  100.     end {with QryPerson};
  101.   end;
  102.  
  103. procedure TFormMixedToMany.EditRecordNumberExit(Sender: TObject);
  104.   var
  105.     newPos: integer;
  106.   begin
  107.     with QryPerson do begin
  108.       if Active and EditRecordNumber.Modified then begin
  109.         try
  110.           newPos:= StrToIntDef( EditRecordNumber.Text, 1 ) - 1;
  111.           DAORecordset( Handle ).AbsolutePosition:= newPos;
  112.         except
  113.           ShowMessage( 'No such record number!' );
  114.         end;
  115.         Resync( [] );
  116.         EditRecordNumber.Modified:= False;
  117.       end;
  118.     end {with QryPerson};
  119.   end;
  120.  
  121. end.
  122.