home *** CD-ROM | disk | FTP | other *** search
- unit DemoMixedToMany;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, Mask, DBCtrls, DB, DBTables, Grids, DBGrids, ExtCtrls;
-
- type
- TFormMixedToMany = class(TForm)
- QryPerson: TQuery;
- SrcPerson: TDataSource;
- Pers_LastName: TDBEdit;
- Label1: TLabel;
- Pers_FirstName: TDBEdit;
- Label2: TLabel;
- Pers_Birthday: TDBEdit;
- Label4: TLabel;
- NavPerson: TDBNavigator;
- EditBemerkungen: TDBMemo;
- Label5: TLabel;
- QryAddress: TQuery;
- GridAdressen: TDBGrid;
- Label7: TLabel;
- SrcAddresses: TDataSource;
- QryPersonPers_LastName: TStringField;
- QryPersonPers_FirstName: TStringField;
- QryPersonPers_Remarks: TMemoField;
- QryPersonPers_Birthday: TDateTimeField;
- QryPersonPers_IsFemale: TBooleanField;
- Pers_IsFemale: TDBCheckBox;
- QryPersonPers_ID: TIntegerField;
- QryAddressAdr_ID: TAutoIncField;
- QryAddressAdr_PersID: TIntegerField;
- QryAddressAdr_Street: TStringField;
- QryAddressAdr_ZIP: TStringField;
- QryAddressAdr_Place: TStringField;
- QryAddressAdr_Country: TStringField;
- TblAddress: TTable;
- TblAddressAdr_ID: TAutoIncField;
- TblAddressAdr_PersID: TIntegerField;
- TblAddressAdr_Street: TStringField;
- TblAddressAdr_ZIP: TStringField;
- TblAddressAdr_Place: TStringField;
- TblAddressAdr_Country: TStringField;
- DropSourceType: TComboBox;
- Label3: TLabel;
- Bevel1: TBevel;
- EditRecordNumber: TEdit;
- Label6: TLabel;
- procedure QryAddressBeforeOpen(DataSet: TDataSet);
- procedure FormCreate(Sender: TObject);
- procedure DropSourceTypeClick(Sender: TObject);
- procedure SrcPersonDataChange(Sender: TObject; Field: TField);
- procedure EditRecordNumberExit(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- FormMixedToMany: TFormMixedToMany;
-
- implementation
- {$R *.DFM}
-
- uses
- DAO;
-
- procedure TFormMixedToMany.QryAddressBeforeOpen(DataSet: TDataSet);
- begin
- QryAddress.Prepare;
- end {QryAdressenBeforeOpen};
-
-
- procedure TFormMixedToMany.FormCreate(Sender: TObject);
- begin
- QryPerson.Open;
- QryAddress.Open;
- TblAddress.Open;
- DropSourceType.ItemIndex:= 0;
- end;
-
- procedure TFormMixedToMany.DropSourceTypeClick(Sender: TObject);
- begin
- if DropSourceType.ItemIndex = 0 then begin
- SrcAddresses.DataSet:= TblAddress;
- end else begin
- SrcAddresses.DataSet:= QryAddress;
- end;
- end;
-
- procedure TFormMixedToMany.SrcPersonDataChange(Sender: TObject; Field: TField);
- begin
- with QryPerson do begin
- if Active then begin
- EditRecordNumber.Text:= IntToStr( DAORecordset( Handle ).AbsolutePosition + 1 );
- end;
- end {with QryPerson};
- end;
-
- procedure TFormMixedToMany.EditRecordNumberExit(Sender: TObject);
- var
- newPos: integer;
- begin
- with QryPerson do begin
- if Active and EditRecordNumber.Modified then begin
- try
- newPos:= StrToIntDef( EditRecordNumber.Text, 1 ) - 1;
- DAORecordset( Handle ).AbsolutePosition:= newPos;
- except
- ShowMessage( 'No such record number!' );
- end;
- Resync( [] );
- EditRecordNumber.Modified:= False;
- end;
- end {with QryPerson};
- end;
-
- end.
-