亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rxlogin.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 2 頁
字號(hào):
procedure TRxCustomLogin.UnlockOkClick(Sender: TObject);
var
  Ok: Boolean;
begin
  with TRxLoginForm(Sender) do begin
    Ok := False;
    try
      Ok := CheckUnlock(UserNameEdit.Text, PasswordEdit.Text);
    except
      Application.HandleException(Self);
    end;
    if Ok then ModalResult := mrOk
    else ModalResult := mrCancel;
  end;
end;

function TRxCustomLogin.CheckUnlock(const UserName, Password: string): Boolean;
begin
  Result := True;
  if Assigned(FOnUnlockApp) then
    FOnUnlockApp(Self, UserName, Password, Result)
  else if Assigned(FOnUnlock) then
    Result := FOnUnlock(Password);
end;

function TRxCustomLogin.CreateLoginForm(UnlockMode: Boolean): TRxLoginForm;
begin
  Result := TRxLoginForm.Create(Application);
  with Result do begin
    FUnlockMode := UnlockMode;
    if FUnlockMode then begin
      FormStyle := fsNormal;
      FSelectDatabase := False;
    end
    else FormStyle := fsStayOnTop;
    if Assigned(Self.FOnIconDblClick) then begin
      with AppIcon do begin
        OnDblClick := DoIconDblClick;
        Cursor := crHand;
      end;
      with KeyImage do begin
        OnDblClick := DoIconDblClick;
        Cursor := crHand;
      end;
    end;
    PasswordEdit.MaxLength := FMaxPasswordLen;
    AttemptNumber := Self.AttemptNumber;
  end;
end;

function TRxCustomLogin.DoUnlockDialog: Boolean;
begin
  with CreateLoginForm(True) do
  try
    OnFormShow := nil;
    OnOkClick := UnlockOkClick;
    with UserNameEdit do begin
      Text := LoggedUser;
      ReadOnly := True;
      Font.Color := clGrayText;
    end;
    Result := ShowModal = mrOk;
  finally
    Free;
  end;
end;

function TRxCustomLogin.UnlockHook(var Message: TMessage): Boolean;

  function DoUnlock: Boolean;
  var
    Popup: HWnd;
  begin
    with Application do
      if IsWindowVisible(Handle) and IsWindowEnabled(Handle) then
{$IFDEF WIN32}
        SetForegroundWindow(Handle);
{$ELSE}
        BringWindowToTop(Handle);
{$ENDIF}
    if FUnlockDlgShowing then begin
      Popup := GetLastActivePopup(Application.Handle);
      if (Popup <> 0) and IsWindowVisible(Popup) and
        (WindowClassName(Popup) = TRxLoginForm.ClassName) then
      begin
{$IFDEF WIN32}
        SetForegroundWindow(Popup);
{$ELSE}
        BringWindowToTop(Popup);
{$ENDIF}
      end;
      Result := False;
      Exit;
    end;
    FUnlockDlgShowing := True;
    try
      Result := DoUnlockDialog;
    finally
      FUnlockDlgShowing := False;
    end;
    if Result then begin
      Application.UnhookMainWindow(UnlockHook);
      FLocked := False;
    end;
  end;

begin
  Result := False;
  if not FLocked then Exit;
  with Message do begin
    case Msg of
      WM_QUERYOPEN:
        begin
          UnlockHook := not DoUnlock;
        end;
      WM_SHOWWINDOW:
        if Bool(WParam) then begin
          UnlockHook := not DoUnlock;
        end;
      WM_SYSCOMMAND:
        if (WParam and $FFF0 = SC_RESTORE) or
          (WParam and $FFF0 = SC_ZOOM) then
        begin
          UnlockHook := not DoUnlock;
        end;
    end;
  end;
end;

{ TRxLoginDialog }

procedure TRxLoginDialog.Loaded;
var
  Loading: Boolean;
begin
  Loading := csLoading in ComponentState;
  inherited Loaded;
  if not (csDesigning in ComponentState) and Loading then begin
    if Active and not Login then
      TerminateApplication;
  end;
end;

procedure TRxLoginDialog.OkButtonClick(Sender: TObject);
var
  SetCursor: Boolean;
begin
  with TRxLoginForm(Sender) do begin
{$IFDEF WIN32}
    SetCursor := GetCurrentThreadID = MainThreadID;
{$ELSE}
    SetCursor := True;
{$ENDIF}
    try
      if SetCursor then Screen.Cursor := crHourGlass;
      try
        if DoCheckUser(UserNameEdit.Text, PasswordEdit.Text) then
          ModalResult := mrOk
        else ModalResult := mrNone;
      finally
        if SetCursor then Screen.Cursor := crDefault;
      end;
    except
      Application.HandleException(Self);
    end;
  end;
end;

function TRxLoginDialog.DoCheckUser(const UserName, Password: string): Boolean;
begin
  Result := True;
  if Assigned(FOnCheckUser) then
    FOnCheckUser(Self, UserName, Password, Result);
end;

procedure TRxLoginDialog.WriteUserName(const UserName: string);
var
  Ini: TObject;
begin
  try
{$IFDEF WIN32}
    if UseRegistry then Ini := TRegIniFile.Create(IniFileName)
    else Ini := TIniFile.Create(IniFileName);
{$ELSE}
    Ini := TIniFile.Create(IniFileName);
{$ENDIF}
    try
      IniWriteString(Ini, keyLoginSection, keyLastLoginUserName, UserName);
    finally
      Ini.Free;
    end;
  except
  end;
end;

function TRxLoginDialog.ReadUserName(const UserName: string): string;
var
  Ini: TObject;
begin
  try
{$IFDEF WIN32}
    if UseRegistry then begin
      Ini := TRegIniFile.Create(IniFileName);
{$IFDEF RX_D5}
      TRegIniFile(Ini).Access := KEY_READ;
{$ENDIF}
    end
    else 
      Ini := TIniFile.Create(IniFileName);
{$ELSE}
    Ini := TIniFile.Create(IniFileName);
{$ENDIF}
    try
      Result := IniReadString(Ini, keyLoginSection, keyLastLoginUserName,
        UserName);
    finally
      Ini.Free;
    end;
  except
    Result := UserName;
  end;
end;

function TRxLoginDialog.DoLogin(var UserName: string): Boolean;
begin
  try
    with CreateLoginForm(False) do
    try
      OnOkClick := Self.OkButtonClick;
      UserName := ReadUserName(UserName);
      UserNameEdit.Text := UserName;
      Result := (ShowModal = mrOk);
      if Result then begin
        UserName := UserNameEdit.Text;
        WriteUserName(UserName);
      end;
    finally
      Free;
    end;
  except
    Application.HandleException(Self);
    Result := False;
  end;
end;

{ TRxLoginForm }

procedure TRxLoginForm.FormCreate(Sender: TObject);
begin
  Icon := Application.Icon;
  if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION);
  AppIcon.Picture.Assign(Icon);
  AppTitleLabel.Caption := FmtLoadStr(SAppTitleLabel, [Application.Title]);
  PasswordLabel.Caption := LoadStr(SPasswordLabel);
  UserNameLabel.Caption := LoadStr(SUserNameLabel);
  OkBtn.Caption := ResStr(SOKButton);
  CancelBtn.Caption := ResStr(SCancelButton);
end;

procedure TRxLoginForm.OkBtnClick(Sender: TObject);
begin
  Inc(FAttempt);
  if Assigned(FOnOkClick) then FOnOkClick(Self)
  else ModalResult := mrOk;
  if (ModalResult <> mrOk) and (FAttempt >= AttemptNumber) then
    ModalResult := mrCancel;
end;

procedure TRxLoginForm.FormShow(Sender: TObject);
var
  I: Integer;
  S: string;
begin
  if FSelectDatabase then begin
    ClientHeight := CustomCombo.Top + PasswordEdit.Top - UserNameEdit.Top;
    S := LoadStr(SDatabaseName);
    I := Pos(':', S);
    if I = 0 then I := Length(S);
    CustomLabel.Caption := '&' + Copy(S, 1, I);
  end
  else begin
    ClientHeight := PasswordEdit.Top + PasswordEdit.Top - UserNameEdit.Top;
    CustomLabel.Visible := False;
    CustomCombo.Visible := False;
  end;
  if not FUnlockMode then begin
    HintLabel.Caption := LoadStr(SHintLabel);
    Caption := LoadStr(SRegistration);
  end
  else begin
    HintLabel.Caption := LoadStr(SUnlockHint);
    Caption := LoadStr(SUnlockCaption);
  end;
  if (UserNameEdit.Text = EmptyStr) and not FUnlockMode then
    ActiveControl := UserNameEdit
  else 
    ActiveControl := PasswordEdit;
  if Assigned(FOnFormShow) then FOnFormShow(Self);
  FAttempt := 0;
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线色| 欧美日本一区二区在线观看| 亚洲自拍偷拍网站| 欧美电视剧在线观看完整版| 91麻豆国产在线观看| 国产乱子伦一区二区三区国色天香| 亚洲欧美激情小说另类| 欧美精品一区二区蜜臀亚洲| 欧美怡红院视频| 国产黄色精品网站| 久久精品国产网站| 天天av天天翘天天综合网色鬼国产 | 日韩欧美电影一二三| 色偷偷一区二区三区| 成人一区二区三区在线观看| 美国精品在线观看| 亚洲3atv精品一区二区三区| 亚洲免费电影在线| 久久久亚洲欧洲日产国码αv| 欧美精品1区2区3区| 91久久精品网| 972aa.com艺术欧美| 高清视频一区二区| 国产精品系列在线播放| 久久福利资源站| 蜜乳av一区二区| 五月婷婷综合在线| 亚洲一区二区三区爽爽爽爽爽| 成人免费在线播放视频| 国产欧美一区二区三区在线老狼| 精品久久久久一区| 精品国产乱码久久久久久闺蜜| 91精品国产综合久久福利| 欧美日韩免费观看一区二区三区| 一本一道久久a久久精品综合蜜臀| 国产aⅴ精品一区二区三区色成熟| 久久精品国产精品亚洲红杏| 美女一区二区视频| 久久se精品一区二区| 理论电影国产精品| 激情文学综合插| 国产伦精品一区二区三区视频青涩 | 亚洲午夜成aⅴ人片| 悠悠色在线精品| 一区二区三区丝袜| 亚洲一区二三区| 亚洲国产综合91精品麻豆| 亚洲国产欧美一区二区三区丁香婷| 亚洲人成人一区二区在线观看| 综合欧美亚洲日本| 亚洲香肠在线观看| 日韩av午夜在线观看| 老司机午夜精品| 国产一区二区三区久久悠悠色av | 国产不卡一区视频| 成人免费视频一区| 91网上在线视频| 欧美私模裸体表演在线观看| 欧美精品日韩精品| 精品福利在线导航| 国产精品你懂的| 亚洲精品免费看| 日产国产高清一区二区三区| 国产一区二区三区精品视频| 成人av网站大全| 欧美日韩黄色一区二区| 欧美va亚洲va在线观看蝴蝶网| 亚洲国产精品传媒在线观看| 亚洲欧美电影一区二区| 亚洲欧美另类在线| 日韩电影一区二区三区四区| 国产自产高清不卡| 91亚洲精品一区二区乱码| 欧美人伦禁忌dvd放荡欲情| 26uuu精品一区二区| 国产精品理论片| 日韩精品一区第一页| 激情综合色播五月| 色噜噜狠狠一区二区三区果冻| 9191久久久久久久久久久| 久久精品视频一区二区| 亚洲精品欧美激情| 国产九色精品成人porny| 色偷偷久久一区二区三区| 日韩欧美一区二区不卡| 国产精品久久久久久久浪潮网站| 亚洲国产精品尤物yw在线观看| 国产一区二区三区黄视频 | 日韩精品一区二区三区视频在线观看 | 欧美日本视频在线| 欧美国产精品中文字幕| 日本欧美一区二区三区| 成人亚洲一区二区一| 日韩视频在线你懂得| 亚洲男人天堂一区| 国产精一区二区三区| 欧美男女性生活在线直播观看| 中文字幕免费一区| 日本不卡一区二区三区| 色噜噜狠狠色综合欧洲selulu| 久久新电视剧免费观看| 性久久久久久久| 99久久伊人精品| www精品美女久久久tv| 日韩国产在线一| 91视频一区二区| 国产日本欧洲亚洲| 免费成人小视频| 欧美日韩在线一区二区| 综合激情网...| 国产iv一区二区三区| 精品噜噜噜噜久久久久久久久试看| 亚洲一区二区三区四区在线免费观看| 国产福利91精品| 久久天天做天天爱综合色| 奇米影视在线99精品| 欧美日本国产视频| 亚洲综合久久av| 日本韩国精品在线| 亚洲人成精品久久久久久| 成人一区二区三区中文字幕| 久久综合九色综合欧美就去吻| 日韩高清不卡一区二区| 欧美视频在线一区| 伊人一区二区三区| 色婷婷av久久久久久久| 亚洲美女淫视频| 一本色道亚洲精品aⅴ| 亚洲特级片在线| 99精品久久免费看蜜臀剧情介绍| 国产农村妇女毛片精品久久麻豆| 国产成人av一区二区三区在线| 欧美成人一级视频| 国产在线不卡一区| 2023国产一二三区日本精品2022| 久久99精品久久久久久| 精品久久久久久最新网址| 国产一区二区三区四区五区入口| 亚洲精品一区二区三区影院| 国内精品国产三级国产a久久| 亚洲精品在线三区| 国产在线视视频有精品| 国产日韩影视精品| 成人av片在线观看| 亚洲卡通欧美制服中文| 欧美午夜精品电影| 亚洲va国产天堂va久久en| 欧美一区二区精品久久911| 蜜臀91精品一区二区三区| 欧美va在线播放| 国产suv精品一区二区三区| 日韩美女精品在线| 欧美日韩一区二区三区在线看| 手机精品视频在线观看| 精品噜噜噜噜久久久久久久久试看| 国产在线麻豆精品观看| 国产欧美一区二区精品性色 | 99精品在线免费| 亚洲国产视频在线| 欧美一级片免费看| 国产成+人+日韩+欧美+亚洲| **网站欧美大片在线观看| 欧美三级日韩在线| 精品亚洲porn| 亚洲图片欧美激情| 91精品国产综合久久久蜜臀粉嫩 | 亚洲精品国产无套在线观| 欧美日韩一区在线| 久久成人精品无人区| 国产精品私人自拍| 欧美另类久久久品| 国产馆精品极品| 亚洲网友自拍偷拍| 久久伊人中文字幕| 色一情一伦一子一伦一区| 久久99国产精品久久| 综合精品久久久| 日韩精品一区二区三区三区免费 | 国产精品毛片a∨一区二区三区| 色诱亚洲精品久久久久久| 美女在线视频一区| 久久亚洲一级片| 一区二区三区不卡视频| 欧美日韩一区二区三区高清| 精品系列免费在线观看| 樱花影视一区二区| 精品盗摄一区二区三区| 91黄色在线观看| 国产精品中文欧美| 日韩国产一二三区| 亚洲视频在线一区二区| 精品国产乱码久久久久久1区2区| 一本色道久久综合精品竹菊| 激情欧美一区二区三区在线观看| 亚洲乱码国产乱码精品精小说| 欧美成人一区二区三区| 欧美又粗又大又爽| 成人综合在线观看| 精品一区二区成人精品| 日韩午夜在线播放|