お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"TDatabaseによるDBログインループ"




{
  いわゆるログインを管理するコードです。TDatabaseのLoginPromptを
Trueにしてログインするとき、ログイン失敗してもその例外をキャッチ
しないと、アプリケーションは気にせず動いちゃいます。また、ログイ
ンダイアログにて「キャンセル」ボタンを押しても、そのハンドルコー
ドは、書かないといけません。
  ちなみに、このログインダイアログは「DBLogDlg」ユニットで、

function LoginDialog(const ADatabaseName: string;
  var AUserName, APassword: string): Boolean;

function LoginDialogEx(const ADatabaseName: string;
 var AUserName, APassword: string; NameReadOnly: Boolean):Boolean;

のどちらかをコールすると出すことができますが、独自のログインルー
チン作るのが、めんどくさいときにこのコードをためしてみてください。

  データモジュールにTDatabaseをおいて、LoginPromptをTrueにします。
}

procedure TDataModule2.DataModule2Create(Sender: TObject);
begin
  repeat
    try
      Database1.Open; //ログイン失敗か、キャンセルクリックで例外
      Break
    except
      if MessageDlg('もう一度努力してみる?',
        mtConfirmation, [mbOK, mbCancel], 0) = mrCancel then
      begin
        Application.Terminate;
        Break;
      end;
    end;
  until False; //無限ループにしてます
end;
                                              まさたか(VZF03733)

Original document by まさたか        氏 ID:(VZF03733)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum