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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? suidbctrls.pas

?? 一套還不錯的DELPHI皮膚控件!
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
        m_VScrollBar.Position := info.nPos;
    end;
    m_SelfChanging := false;
end;

procedure TsuiDBLookupListBox.UpdateScrollBarsPos;
begin
    if m_VScrollBar <> nil then
    begin
        m_VScrollBar.Left := Left + Width - m_VScrollBar.Width - 2;
        m_VScrollBar.Top := Top + 1;
        m_VScrollBar.Height := Height - 2;
    end;

    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMDELETEITEM(var Msg: TMessage);
begin
    inherited;
    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMEARSEBKGND(var Msg: TMessage);
begin
    inherited;

    DrawControlBorder(self, m_BorderColor, Color);
end;

procedure TsuiDBLookupListBox.WMHSCROLL(var Message: TWMHScroll);
begin
    inherited;
    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMKeyDown(var Message: TWMKeyDown);
begin
    inherited;
    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMLBUTTONDOWN(var Message: TMessage);
begin
    inherited;
    m_MouseDown := true;
    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMLButtonUp(var Message: TMessage);
begin
    inherited;
    m_MouseDown := false;
end;

procedure TsuiDBLookupListBox.WMMOUSEMOVE(var Message: TMessage);
begin
    inherited;
    if m_MouseDown then UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMMOUSEWHEEL(var Message: TMessage);
begin
    inherited;
    UpdateScrollBars();
end;

procedure TsuiDBLookupListBox.WMMOVE(var Msg: TMessage);
begin
    inherited;
    UpdateScrollBarsPos();
end;

procedure TsuiDBLookupListBox.WMPAINT(var Msg: TMessage);
begin
    inherited;

    DrawControlBorder(self, m_BorderColor, COlor);
end;

procedure TsuiDBLookupListBox.WMSIZE(var Msg: TMessage);
begin
    inherited;
    UpdateScrollBarsPos();
end;

procedure TsuiDBLookupListBox.WMVSCROLL(var Message: TWMVScroll);
begin
    inherited;
    UpdateScrollBars();
end;

{ TsuiDBCheckBox }

constructor TsuiDBCheckBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csReplicatable];
  State := cbUnchecked;
  FValueCheck := 'True';
  FValueUncheck := 'False';
  FDataLink := TFieldDataLink.Create;
  FDataLink.Control := Self;
  FDataLink.OnDataChange := DataChange;
  FDataLink.OnUpdateData := UpdateData;
  FPaintControl := TPaintControl.Create(Self, 'BUTTON');
  FPaintControl.Ctl3DButton := True;
end;

destructor TsuiDBCheckBox.Destroy;
begin
  FPaintControl.Free;
  FDataLink.Free;
  FDataLink := nil;
  inherited Destroy;
end;

procedure TsuiDBCheckBox.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (FDataLink <> nil) and
    (AComponent = DataSource) then DataSource := nil;
end;

function TsuiDBCheckBox.UseRightToLeftAlignment: Boolean;
begin
  Result := DBUseRightToLeftAlignment(Self, Field);
end;

function TsuiDBCheckBox.GetFieldState: TCheckBoxState;
var
  Text: string;
begin
  if FDatalink.Field <> nil then
    if FDataLink.Field.IsNull then
      Result := cbUnChecked
    else if FDataLink.Field.DataType = ftBoolean then
      if FDataLink.Field.AsBoolean then
        Result := cbChecked
      else
        Result := cbUnchecked
    else
    begin
      Result := cbUnChecked;
      Text := FDataLink.Field.Text;
      if ValueMatch(FValueCheck, Text) then Result := cbChecked else
        if ValueMatch(FValueUncheck, Text) then Result := cbUnchecked;
    end
  else
    Result := cbUnchecked;
end;

procedure TsuiDBCheckBox.DataChange(Sender: TObject);
var
    AState : TCheckBoxState;
begin
    AState := GetFieldState();
    State := AState;
end;

procedure TsuiDBCheckBox.UpdateData(Sender: TObject);
var
  Pos: Integer;
  S: string;
begin
  if State = cbGrayed then
    FDataLink.Field.Clear
  else
    if FDataLink.Field.DataType = ftBoolean then
      FDataLink.Field.AsBoolean := Checked
    else
    begin
      if Checked then S := FValueCheck else S := FValueUncheck;
      Pos := 1;
      FDataLink.Field.Text := ExtractFieldName(S, Pos);
    end;
end;

function TsuiDBCheckBox.ValueMatch(const ValueList, Value: string): Boolean;
var
  Pos: Integer;
begin
  Result := False;
  Pos := 1;
  while Pos <= Length(ValueList) do
    if AnsiCompareText(ExtractFieldName(ValueList, Pos), Value) = 0 then
    begin
      Result := True;
      Break;
    end;
end;

procedure TsuiDBCheckBox.Toggle;
begin
  if FDataLink.Edit then
  begin
    inherited Toggle;
    FDataLink.Modified;
  end;
end;

function TsuiDBCheckBox.GetDataSource: TDataSource;
begin
  Result := FDataLink.DataSource;
end;

procedure TsuiDBCheckBox.SetDataSource(Value: TDataSource);
begin
  if not (FDataLink.DataSourceFixed and (csLoading in ComponentState)) then
    FDataLink.DataSource := Value;
  if Value <> nil then Value.FreeNotification(Self);
end;

function TsuiDBCheckBox.GetDataField: string;
begin
  Result := FDataLink.FieldName;
end;

procedure TsuiDBCheckBox.SetDataField(const Value: string);
begin
  FDataLink.FieldName := Value;
end;

function TsuiDBCheckBox.GetReadOnly: Boolean;
begin
  Result := FDataLink.ReadOnly;
end;

procedure TsuiDBCheckBox.SetReadOnly(Value: Boolean);
begin
  FDataLink.ReadOnly := Value;
end;

function TsuiDBCheckBox.GetField: TField;
begin
  Result := FDataLink.Field;
end;

procedure TsuiDBCheckBox.KeyPress(var Key: Char);
begin
  inherited KeyPress(Key);
  case Key of
    #8, ' ':
      FDataLink.Edit;
    #27:
      FDataLink.Reset;
  end;
end;

procedure TsuiDBCheckBox.SetValueCheck(const Value: string);
begin
  FValueCheck := Value;
  DataChange(Self);
end;

procedure TsuiDBCheckBox.SetValueUncheck(const Value: string);
begin
  FValueUncheck := Value;
  DataChange(Self);
end;

procedure TsuiDBCheckBox.WndProc(var Message: TMessage);
begin
  with Message do
    if (Msg = WM_CREATE) or (Msg = WM_WINDOWPOSCHANGED) or
      (Msg = CM_TEXTCHANGED) or (Msg = CM_FONTCHANGED) then
      FPaintControl.DestroyHandle;
  inherited;
end;

procedure TsuiDBCheckBox.WMPaint(var Message: TWMPaint);
begin
  if not (csPaintCopy in ControlState) then inherited else
  begin
    SendMessage(FPaintControl.Handle, BM_SETCHECK, Ord(GetFieldState), 0);
    SendMessage(FPaintControl.Handle, WM_PAINT, Message.DC, 0);
  end;
end;

procedure TsuiDBCheckBox.CMExit(var Message: TCMExit);
begin
  try
    FDataLink.UpdateRecord;
  except
    SetFocus;
    raise;
  end;
  inherited;
end;

procedure TsuiDBCheckBox.CMGetDataLink(var Message: TMessage);
begin
  Message.Result := Integer(FDataLink);
end;

function TsuiDBCheckBox.ExecuteAction(Action: TBasicAction): Boolean;
begin
  Result := inherited ExecuteAction(Action) or (FDataLink <> nil) and
    FDataLink.ExecuteAction(Action);
end;

function TsuiDBCheckBox.UpdateAction(Action: TBasicAction): Boolean;
begin
  Result := inherited UpdateAction(Action) or (FDataLink <> nil) and
    FDataLink.UpdateAction(Action);
end;

{ TsuiDBRadioGroup }

constructor TsuiDBRadioGroup.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FDataLink := TFieldDataLink.Create;
  FDataLink.Control := Self;
  FDataLink.OnDataChange := DataChange;
  FDataLink.OnUpdateData := UpdateData;
  FValues := TStringList.Create;
end;

destructor TsuiDBRadioGroup.Destroy;
begin
  FDataLink.Free;
  FDataLink := nil;
  FValues.Free;
  inherited Destroy;
end;

procedure TsuiDBRadioGroup.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (FDataLink <> nil) and
    (AComponent = DataSource) then DataSource := nil;
end;

function TsuiDBRadioGroup.UseRightToLeftAlignment: Boolean;
begin
  Result := inherited UseRightToLeftAlignment;
end;

procedure TsuiDBRadioGroup.DataChange(Sender: TObject);
begin
  if FDataLink.Field <> nil then
    Value := FDataLink.Field.Text else
    Value := '';
end;

procedure TsuiDBRadioGroup.UpdateData(Sender: TObject);
begin
  if FDataLink.Field <> nil then FDataLink.Field.Text := Value;
end;

function TsuiDBRadioGroup.GetDataSource: TDataSource;
begin
  Result := FDataLink.DataSource;
end;

procedure TsuiDBRadioGroup.SetDataSource(Value: TDataSource);
begin
  FDataLink.DataSource := Value;
  if Value <> nil then Value.FreeNotification(Self);
end;

function TsuiDBRadioGroup.GetDataField: string;
begin
  Result := FDataLink.FieldName;
end;

procedure TsuiDBRadioGroup.SetDataField(const Value: string);
begin
  FDataLink.FieldName := Value;
end;

function TsuiDBRadioGroup.GetReadOnly: Boolean;
begin
  Result := FDataLink.ReadOnly;
end;

procedure TsuiDBRadioGroup.SetReadOnly(Value: Boolean);
begin
  FDataLink.ReadOnly := Value;
end;

function TsuiDBRadioGroup.GetField: TField;
begin
  Result := FDataLink.Field;
end;

function TsuiDBRadioGroup.GetButtonValue(Index: Integer): string;
begin
  if (Index < FValues.Count) and (FValues[Index] <> '') then
    Result := FValues[Index]
  else if Index < Items.Count then
    Result := Items[Index]
  else
    Result := '';
end;

procedure TsuiDBRadioGroup.SetValue(const Value: string);
var
  I, Index: Integer;
begin
  if FValue <> Value then
  begin
    FInSetValue := True;
    try
      Index := -1;
      for I := 0 to Items.Count - 1 do
        if Value = GetButtonValue(I) then
        begin
          Index := I;
          Break;
        end;
      ItemIndex := Index;
    finally
      FInSetValue := False;
    end;
    FValue := Value;
    Change;
  end;
end;

procedure TsuiDBRadioGroup.CMExit(var Message: TCMExit);
begin
  try
    FDataLink.UpdateRecord;
  except
    if ItemIndex >= 0 then
      TRadioButton(Controls[ItemIndex]).SetFocus else
      TRadioButton(Controls[0]).SetFocus;
    raise;
  end;
  inherited;
end;

procedure TsuiDBRadioGroup.CMGetDataLink(var Message: TMessage);
begin
  Message.Result := Integer(FDataLink);
end;

procedure TsuiDBRadioGroup.NewClick;
begin
  if not FInSetValue then
  begin
    if ItemIndex >= 0 then Value := GetButtonValue

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文免费| 91在线视频观看| 成人毛片老司机大片| 日韩午夜激情电影| 日韩中文欧美在线| 欧美丝袜丝交足nylons图片| 中文字幕在线观看不卡| 国产成人在线免费观看| 亚洲精品一区二区三区影院| 亚洲 欧美综合在线网络| 欧美综合色免费| 午夜久久久影院| 欧美日韩国产精选| 三级影片在线观看欧美日韩一区二区| 国产亚洲一二三区| 福利视频网站一区二区三区| 久久久91精品国产一区二区三区| 欧美午夜不卡视频| 99精品热视频| av电影天堂一区二区在线观看| 日韩理论片网站| 欧美日韩国产综合视频在线观看| 国产电影一区二区三区| 韩国午夜理伦三级不卡影院| 国产性天天综合网| 精品国产乱码久久久久久牛牛| 69av一区二区三区| 久久成人18免费观看| 26uuu另类欧美| 99re成人在线| 成人v精品蜜桃久久一区| 亚洲午夜久久久久久久久电影院| 欧美一级高清片| 欧美日韩日日夜夜| 国产成人av一区二区三区在线| 久久精品国产秦先生| 91在线小视频| 97se亚洲国产综合自在线| 成人av在线播放网址| 国产aⅴ综合色| 成人av在线播放网站| caoporm超碰国产精品| 99精品欧美一区| 色噜噜久久综合| 捆绑调教一区二区三区| 美女视频一区二区| 国产精品色婷婷久久58| 欧美日韩五月天| 欧美群妇大交群中文字幕| 欧美精品自拍偷拍| 色综合久久中文综合久久牛| 久久精品国产久精国产爱| 麻豆精品一区二区av白丝在线| 久久精品免费看| 国产一区 二区| 日本不卡不码高清免费观看| 一区二区三区在线视频观看58| 亚洲一级在线观看| 成人欧美一区二区三区小说| 亚洲欧美一区二区三区久本道91| 26uuu色噜噜精品一区二区| 久久一区二区三区四区| 国产精品麻豆久久久| 亚洲人成在线播放网站岛国| 亚洲va欧美va国产va天堂影院| 日韩二区三区在线观看| 亚洲综合激情网| 日韩精品一区第一页| 国产揄拍国内精品对白| 99精品欧美一区二区三区综合在线| 在线亚洲一区二区| 日韩一级片网站| 国产精品久久久久久久久免费相片| 精品福利av导航| ...xxx性欧美| 日韩在线播放一区二区| 成人av在线播放网站| 欧美精品三级在线观看| 国产亚洲欧美激情| 亚洲午夜精品17c| 国产精品 欧美精品| 欧美日韩不卡一区| 国产欧美精品一区二区三区四区 | 色噜噜久久综合| 欧美一级欧美一级在线播放| 欧美精品久久天天躁| 久久午夜老司机| 亚洲综合色区另类av| 国产精品一线二线三线| 国产精品一区二区久久精品爱涩 | 五月天欧美精品| 成人免费av在线| 欧美一区二区视频在线观看2022| 国产精品拍天天在线| 三级一区在线视频先锋| 99久久综合精品| 精品国产成人系列| 午夜精品福利一区二区三区av| 懂色av一区二区三区免费看| 欧美丰满高潮xxxx喷水动漫| 日韩伦理av电影| 福利一区二区在线| 日韩欧美黄色影院| 久久久青草青青国产亚洲免观| 国产精品美女久久久久aⅴ| 日本不卡一区二区三区高清视频| 一本色道**综合亚洲精品蜜桃冫| 国产午夜亚洲精品理论片色戒| 亚洲大片免费看| 91麻豆蜜桃一区二区三区| 在线免费观看日韩欧美| 亚洲国产高清在线观看视频| 国产精品免费观看视频| 精品影视av免费| 99视频精品在线| 久久先锋影音av鲁色资源网| 日韩av一区二区在线影视| 91麻豆国产福利在线观看| 国产精品色婷婷久久58| 国产精品亚洲午夜一区二区三区 | 99久久久国产精品| 久久久久久电影| 麻豆国产精品一区二区三区| 欧美日韩中文精品| 一区二区三区毛片| 91理论电影在线观看| 中文字幕一区二区三区四区不卡| 国产69精品久久777的优势| 26uuu国产日韩综合| 精品一二三四在线| 精品日韩在线观看| 日韩一区在线看| 91丨porny丨首页| 国产精品二区一区二区aⅴ污介绍| 国产成人在线网站| 国产亚洲欧美一区在线观看| 久久精品免费观看| 久久网站最新地址| 国产福利一区二区三区视频在线| 欧美精品一区二区三区蜜桃视频 | 一本久久a久久精品亚洲| 中文字幕一区二| 91免费观看视频在线| 樱花草国产18久久久久| 国产高清不卡一区二区| 久久久国产午夜精品| 国产精品 日产精品 欧美精品| 中文字幕免费观看一区| 成人av在线网| 亚洲韩国一区二区三区| 欧美日韩和欧美的一区二区| 美女一区二区视频| 日韩欧美中文字幕公布| 激情欧美一区二区| 国产精品麻豆网站| 欧美性生活久久| 日本成人在线看| 国产欧美综合色| 色综合天天狠狠| 亚洲成人1区2区| 2022国产精品视频| 99久久亚洲一区二区三区青草| 一二三四区精品视频| 制服丝袜成人动漫| 国产精品1区2区3区| 一色桃子久久精品亚洲| 欧美综合天天夜夜久久| 精品在线播放免费| 亚洲三级在线观看| 91精品免费在线观看| 国产精品99久久久久久久女警| 1000部国产精品成人观看| 欧美性生交片4| 国产精品自在在线| 一区二区三区四区乱视频| 日韩一级片在线播放| av电影一区二区| 蜜臀va亚洲va欧美va天堂| 国产精品亲子乱子伦xxxx裸| 欧美日韩成人综合在线一区二区| 韩国精品在线观看| 一区二区三区四区不卡视频| 精品国偷自产国产一区| 91国产精品成人| 国产精品88888| 丝瓜av网站精品一区二区| 国产日韩欧美激情| 在线播放91灌醉迷j高跟美女 | 国产精品亚洲午夜一区二区三区| 亚洲制服丝袜av| 国产午夜久久久久| 宅男在线国产精品| 9i在线看片成人免费| 美女尤物国产一区| 一个色妞综合视频在线观看| 国产日韩av一区二区| 欧美一区二区成人6969| 91猫先生在线| 成人黄色a**站在线观看| 免费高清在线视频一区·|