■画面作成  
    ●学習内容  
       ここでは、  
      ・プログラムの動作・機能
・コンポーネントの設定
・コードの記述
 
       について記述してあります。Imageにリンクが張ってあるのでコンポーネントの使い方と動作が確認できると思います。また、画面ごとに設定とコードの記述について説明がしてあります。  
            
    ●Form1画面1(映画情報一覧)  
     
 
           
     
説明
コード記述
設定
・検索用BitBtn 
 検索フォームを表示し、SQL文を生成
・一覧表示用BitBtn 
 全レコードを表示
映画情報一覧表示用DBGrid
 
           
      ■検索用BitBtn  
     
プロパティ名 設定値
Caption 検索
Glyph Zoomin.bmp
Name BitBtn1
 
           
      ■一覧用BitBtnコンポーネント  
     
プロパティ名 設定値
Caption 一覧
Glyph Table.bmp
Name BitBtn2
 
           
      ■一覧表示用DBGrid  
     
プロパティ名 設定値

Columns

0-cinema_name
1-w_day
2-genre_name
DataSource CinemaDM.CinemaDS
 
           
      ●コードの記述  
     
コンポーネント イベント 発生タイミング
BitBtn(検索用) OnClick ボタンを押したとき
BitBtn(一覧用) OnClick ボタンを押したとき
DBGrid OnCellClick セルをクリックしたとき
 
           
      ■検索用BitBtn.OnClickイベント  
     
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 Form3 := TForm3.Create(Self);
 Try
  Form3.ShowModal;
  if Form3.ModalResult = mrOK then
  CinemaDM.SetSearchSQL(Form3.WhereString);
  //CinemaQuery.SQLのSQL文に検索条件を追加する
 finally
  Form3.Release;
 end;
end;
 
           
      ■一覧表示用BitBtn.OnClickイベント  
     
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 CinemaDM.ReSetSQLCinemaQuery;
 //DefaultSQLを使ってもとのSQLにもどす
end;
 
           
      ■DBGrid.OnCellClickイベント  
     
procedure TForm1.DBGrid1CellClick(Column: TColumn) ;
begin
 PageControl1.ActivePageIndex := 1;
 //セルをクリックしたときに現在のレコードの詳細情報に移る
end;
 
         
           
    ●Form1画面2(映画情報詳細・登録・更新)  
     
 
           
     
説明
コード記述
設定
・JPEGImage挿入用SpeedButton
Dialogを開きJPEGImageをデータベースに登録
なし
OpenPicutureDialog
なし
なし
・CinemaQuery用DBNavigator 
映画情報の登録・更新・削除を行う
なし
登録日時用DBEdit
なし
映画名用DBEdit
なし
ジャンル用DBLookupComboBox
なし
コメント用DBMemo
なし
 
           
      ■映画情報詳細DBNavigator  
     
プロパティ名 設定値
DataSource CinemaDM.CinemaDS
ShowHint True
VisibleButtons nbRefresh False
  nbFirst False
  nbLast False
 
         
      ■登録日時用DBEdit  
     
プロパティ名 設定値
DataField w_day
DataSource CinemaDM.CinemaDS
Name w_dayDBEdit
 
           
      ■映画名用DBEdit  
     
プロパティ名 設定値
DataField cinema_name
DataSource CinemaDM.CinemaDS
Name TitleDBEdit
 
           
      ■ジャンル用DBLookupComboBox  
     
プロパティ名 設定値
DataField genre_code
DataSource CinemaDM.CinemaDS
KeyField genre_code
ListField genre_name
ListSource CinemaDM.GenreDS
 
           
      ■コメント用DBMemo  
     
プロパティ名 設定値
DataField comment
DataSource CinemaDM.CinemaDS
 
           
      ■イメージ挿入用SpeedButton  
     
プロパティ名 設定値
Glyph newfile.bmp
Hint イメージの挿入
ShowHint True
 
           
    ●コードの記述  
      ■イベントハンドラ  
     
コンポーネント イベント 発生タイミング
SpeedButton OnClick ボタンを押したとき
 
           
      ■イメージ挿入用SpeedButton.OnClickイベント  
      データモジュールを利用している場合、データベース項目をフォームに配置されたコンポーネントが扱うには、Unitファイルのinterface部uses句にDB、DBTableと宣言しておく必要があります。また、JPEGを扱うためにUnitファイルのinterface部uses句でJPEGと宣言しておいてください。そうする事でJPEGイメージを扱えるようになります。  
     
procedure TForm1.SpeedButton1Click(Sender: TObject) ;
var
 JPG: TJPEGImage;
 BlobStream: TBlobStream;
begin
 // JPEGファイルの読み出し
 OpenPictureDialog1.Filter := 'JPEGファイル(*.jpg)|*.jpg|すべてのファイル(*.*)|*.*';
 if OpenPictureDialog1.Execute then
 begi
  JPG :=TJPEGImage.Create;
  JPG.LoadFromFile(OpenPictureDialog1.FileName);
  if not (CinemaDM.CinemaQuery.State in [dsEdit, dsInsert]) then
  CinemaDM.CinemaQuery.Edit;
  // BLOBストリームを作成する
  BlobStream := TBlobStream.Create( TBlobField(CinemaDM.CinemaQuery.
                   FieldByName('image')), bmWrite);
 try
  // JPEGデータをストリームへ保存する
  JPG.SaveToStream(BlobStream);
  // Imageオブジェクトに画像を表示する
  Image1.Picture.Assign(JPG);
 finally
  BlobStream.Free;
  JPG.Free;
 end;
 end;
end;
 
       
           
      ●Form3(検索条件入力)  
     
 
           
     
説明
コード記述
設定
映画名検索用Edit
なし
なし
ジャンル検索用DBLookupComboBox
なし
OK用BitBtn
なし
キャンセル用BitBtn
なし
検索条件入力フォーム
なし
 
           
      ■ジャンル検索用DBLookupComboBox  
     
プロパティ名 設定値
KeyField genre_code
ListField genre_name
ListSource CinemaDM.GenreDS
 
           
      ■OK用BitBtn  
     
プロパティ名 設定値
Kind bkOK
Name BitBtn1
 
           
      ■キャンセル用BitBtn  
     
プロパティ名 設定値
Kind bkCancel
Name BitBtn2
 
           
      ●Form3(検索条件入力フォーム)  
      ■フィールド  
     
可視属性 名称
Public WhereString String
 
           
      ■イベントハンドラ  
     
コンポーネント イベント 発生タイミング
Form3 OnClose フォームを閉じるとき
 
           
      ■Oncloseイベントのコード記述  
     
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if ModalResult = mrOK then
  begin
  if DBLookupComboBox2.Text <> '' then  //ジャンル検索
   WhereString := WhereString + 'AND genre_code =' +
                   String(DBLookupComboBox2.keyvalue);
  if Edit1.Text <> '' then        //映画名検索
   begin
   WhereString := WhereString + 'AND a.cinema_name = '''
+Edit1.Text+'''';
   end
  else
   Form1.BitBtn2.Enabled := True;
  end;
end;
 
           
      ●Form1画面1(検索結果表示)