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

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

?? speedbar.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  Result := FButton.Action;
end;

procedure TSpeedItem.SetAction(Value: TBasicAction);
begin
  FButton.Action := Value;
end;
{$ENDIF}

procedure TSpeedItem.ButtonClick;
begin
  FButton.ButtonClick;
end;

function TSpeedItem.CheckBtnMenuDropDown: Boolean;
begin
  Result := FButton.CheckBtnMenuDropDown;
end;

procedure TSpeedItem.Click;
begin
  FButton.Click;
end;

function TSpeedItem.GetTag: Longint;
begin
  Result := inherited Tag;
end;

procedure TSpeedItem.SetTag(Value: Longint);
begin
  inherited Tag := Value;
  FButton.Tag := Value;
end;

function TSpeedItem.GetDropDownMenu: TPopupMenu;
begin
  Result := FButton.DropDownMenu;
end;

procedure TSpeedItem.SetDropDownMenu(Value: TPopupMenu);
begin
  FButton.DropDownMenu := Value;
end;

function TSpeedItem.GetMarkDropDown: Boolean;
begin
  Result := FButton.MarkDropDown;
end;

procedure TSpeedItem.SetMarkDropDown(Value: Boolean);
begin
  FButton.MarkDropDown := Value;
end;

function TSpeedItem.GetWordWrap: Boolean;
begin
  Result := FButton.WordWrap;
end;

procedure TSpeedItem.SetWordWrap(Value: Boolean);
begin
  FButton.WordWrap := Value;
end;

function TSpeedItem.GetLeft: Integer;
begin
  Result := FButton.Left;
end;

function TSpeedItem.GetTop: Integer;
begin
  Result := FButton.Top;
end;

procedure TSpeedItem.SetLeft(Value: Integer);
begin
  FButton.Left := Value;
end;

procedure TSpeedItem.SetTop(Value: Integer);
begin
  FButton.Top := Value;
end;

{ TSpeedBar }

const
  InternalVer = 1;

constructor TSpeedBar.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FSections := TList.Create;
  FButtonSize := DefaultButtonSize;
  FButtonStyle := bsNew;
  FWallpaper := TPicture.Create;
  FWallpaper.OnChange := WallpaperChanged;
  FIniLink := TIniLink.Create;
  FIniLink.OnSave := IniSave;
  FIniLink.OnLoad := IniLoad;
  FOffset.X := MinButtonsOffset;
  FOffset.Y := FOffset.X;
  Height := 2 * FOffset.Y + DefaultButtonSize.Y;
  FRowCount := 1;
  FEditWin := 0;
  FOptions := [sbAllowDrag, sbGrayedBtns];
  ControlStyle := ControlStyle - [csSetCaption
    {$IFDEF WIN32}, csReplicatable {$ENDIF}];
  ParentShowHint := False;
  ShowHint := True;
  SetFontDefault;
  inherited Align := alTop;
  FAlign := alTop;
  UpdateGridSize;
{$IFDEF WIN32}
  FImageChangeLink := TChangeLink.Create;
  FImageChangeLink.OnChange := ImageListChange;
{$ENDIF}
  if not Registered then begin
    RegisterClasses([TSpeedItem, TSpeedbarSection, TSpeedbarButton]);
    Registered := True;
  end;
end;

destructor TSpeedBar.Destroy;
begin
  FOnVisibleChanged := nil;
  FOnApplyAlign := nil;
  FOnPosChanged := nil;
  FIniLink.Free;
  FWallpaper.OnChange := nil;
  FWallpaper.Free;
  FWallpaper := nil;
  if FEditWin <> 0 then begin
    SendMessage(FEditWin, CM_SPEEDBARCHANGED, SBR_DESTROYED, Longint(Self));
    FEditWin := 0;
  end;
  ClearSections;
  FSections.Free;
{$IFDEF WIN32}
  FImageChangeLink.Free;
{$ENDIF}
  inherited Destroy;
end;

procedure TSpeedBar.Loaded;
begin
  inherited Loaded;
  if (FReserved = 0) and FFix then begin { fix previous version error }
    inherited Align := alTop;
    FAlign := alTop;
  end;
  UpdateGridSize;
  ForEachItem(SetItemButtonSize, 0);
end;

procedure TSpeedBar.ReadData(Reader: TReader);
begin
  FReserved := Reader.ReadInteger;
end;

procedure TSpeedBar.WriteData(Writer: TWriter);
begin
  Writer.WriteInteger(InternalVer);
end;

procedure TSpeedBar.ReadAllowDrag(Reader: TReader);
begin
  if Reader.ReadBoolean then Options := Options + [sbAllowDrag]
  else Options := Options - [sbAllowDrag];
end;

procedure TSpeedBar.ReadDesignStyle(Reader: TReader);
begin
  FDesignStyle := Reader.ReadBoolean;
end;

procedure TSpeedBar.WriteDesignStyle(Writer: TWriter);
begin
  Writer.WriteBoolean(NewStyleControls);
end;

procedure TSpeedBar.ReadSections(Reader: TReader);
var
{$IFDEF WIN32}
  TmpList: TStrings;
  I: Integer;
{$ELSE}
  S: string;
{$ENDIF}
begin
{$IFDEF WIN32}
  TmpList := TStringList.Create;
  try
    Reader.ReadListBegin;
    while not Reader.EndOfList do
      TmpList.AddObject(Reader.ReadString, nil);
    Reader.ReadListEnd;
    if (Reader.Ancestor = nil) or (TmpList.Count > 0) then begin
      for I := 0 to TmpList.Count - 1 do begin
        if SearchSection(TmpList[I]) < 0 then AddSection(TmpList[I]);
      end;
    end;
  finally
    TmpList.Free;
  end;
{$ELSE}
  Reader.ReadListBegin;
  FSections.Clear;
  while not Reader.EndOfList do begin
    S := Reader.ReadString;
    if SearchSection(S) < 0 then AddSection(S);
  end;
  Reader.ReadListEnd;
{$ENDIF}
end;

procedure TSpeedBar.WriteSections(Writer: TWriter);
var
  I: Integer;
begin
  Writer.WriteListBegin;
  for I := 0 to FSections.Count - 1 do
    Writer.WriteString(Sections[I].Caption);
  Writer.WriteListEnd;
end;

procedure TSpeedBar.DefineProperties(Filer: TFiler);
begin
  inherited DefineProperties(Filer);
  Filer.DefineProperty('Sections', ReadSections, WriteSections, False);
  Filer.DefineProperty('NewStyle', ReadDesignStyle, WriteDesignStyle, False);
  Filer.DefineProperty('InternalVer', ReadData, WriteData,
    {$IFDEF WIN32} Filer.Ancestor = nil {$ELSE} True {$ENDIF});
  { AllowDrag reading for backward compatibility only }
  Filer.DefineProperty('AllowDrag', ReadAllowDrag, nil, False);
end;

function TSpeedBar.GetSection(Index: Integer): TSpeedbarSection;
begin
  Result := TSpeedbarSection(FSections[Index]);
end;

function TSpeedBar.GetSectionCount: Integer;
begin
  Result := FSections.Count;
end;

procedure TSpeedBar.ForEachItem(Proc: TForEachItem; Data: Longint);
var
  I, Idx: Integer;
  Sect: TSpeedbarSection;
begin
  for I := 0 to FSections.Count - 1 do
    if FSections[I] <> nil then begin
      Sect := TSpeedbarSection(FSections[I]);
      for Idx := 0 to Sect.Count - 1 do begin
        if (Sect[Idx] <> nil) and Assigned(Proc) then
          Proc(TSpeedItem(Sect[Idx]), Data);
      end;
    end;
end;

function TSpeedBar.MinButtonsOffset: Integer;
begin
  Result := BorderWidth + 2 * Ord(not (sbFlatBtns in Options));
  if BevelOuter <> bvNone then Inc(Result, BevelWidth);
  if BevelInner <> bvNone then Inc(Result, BevelWidth);
end;

procedure TSpeedBar.SetItemVisible(Item: TSpeedItem; Data: Longint);
var
  ItemVisible: Boolean;
begin
  ItemVisible := Item.Visible and Self.Visible;
  Item.FButton.Visible := ItemVisible;
  if (Item.FButton.Parent <> Self) and ItemVisible then
    Item.FButton.Parent := Self;
end;

procedure TSpeedBar.SetItemEnabled(Item: TSpeedItem; Data: Longint);
begin
  Item.FButton.Enabled := Item.Enabled and Self.Enabled;
end;

procedure TSpeedBar.SetItemButtonSize(Item: TSpeedItem; Data: Longint);
begin
  ApplyItemSize(Item, Data);
  Item.Visible := Item.Visible; { update visible and parent after loading }
end;

procedure TSpeedBar.SwapItemBounds(Item: TSpeedItem; Data: Longint);
begin
  Item.FButton.SetBounds(Item.Top, Item.Left, FButtonSize.X, FButtonSize.Y);
end;

procedure TSpeedBar.SetFontDefault;
{$IFDEF WIN32}
var
  NCMetrics: TNonClientMetrics;
{$ENDIF}
begin
  ParentFont := False;
  with Font do begin
{$IFDEF WIN32}
    NCMetrics.cbSize := SizeOf(TNonClientMetrics);
    if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @NCMetrics, 0) then
    begin
      Handle := CreateFontIndirect(NCMetrics.lfMenuFont);
  {$IFNDEF VER90}
      Charset := DEFAULT_CHARSET;
  {$ENDIF}
    end
    else begin
{$ENDIF}
      Name := 'MS Sans Serif';
      Size := 8;
      Style := [];
      Color := clBtnText;
{$IFDEF WIN32}
    end;
{$ENDIF}
  end;
end;

procedure TSpeedBar.CMVisibleChanged(var Message: TMessage);
begin
  inherited;
  if not (csLoading in ComponentState) then ForEachItem(SetItemVisible, 0);
  if Assigned(FOnVisibleChanged) then FOnVisibleChanged(Self);
end;

procedure TSpeedBar.CMEnabledChanged(var Message: TMessage);
begin
  inherited;
  if not ((csLoading in ComponentState) or (csDesigning in ComponentState)) then
    ForEachItem(SetItemEnabled, 0);
end;

procedure TSpeedBar.WallpaperChanged(Sender: TObject);
begin
  Invalidate;
end;

procedure TSpeedBar.SetWallpaper(Value: TPicture);
begin
  FWallpaper.Assign(Value);
end;

procedure TSpeedBar.ClearSections;
begin
  while FSections.Count > 0 do RemoveSection(FSections.Count - 1);
  FSections.Clear;
end;

function TSpeedBar.Items(Section, Index: Integer): TSpeedItem;
var
  List: TSpeedbarSection;
begin
  Result := nil;
  if (Section >= 0) and (Section < FSections.Count) then begin
    List := Sections[Section];
    if List <> nil then
      if (Index >= 0) and (Index < List.Count) then
        Result := List[Index];
  end;
end;

function TSpeedBar.ItemsCount(Section: Integer): Integer;
begin
  Result := 0;
  if (Section >= 0) and (Section < FSections.Count) then begin
    if FSections[Section] <> nil then
      Result := Sections[Section].Count;
  end;
end;

procedure TSpeedBar.RemoveSection(Section: Integer);
var
  Sect: TSpeedbarSection;
  Item: TSpeedItem;
begin
  Sect := Sections[Section];
  if Sect <> nil then begin
    while Sect.Count > 0 do begin
      Item := Sect[0];
      Item.Free;
    end;
    Sect.FParent := nil;
    Sect.Free;
    FSections[Section] := nil;
  end;
  FSections.Delete(Section);
end;

procedure TSpeedBar.DeleteSection(Section: Integer);
var
  Sect: TSpeedbarSection;
  I: Integer;
begin
  Sect := Sections[Section];
  if Sect <> nil then begin
    for I := 0 to Sect.Count - 1 do RemoveItem(TSpeedItem(Sect[I]));
    Sect.FParent := nil;
    FSections[Section] := nil;
  end;
  FSections.Delete(Section);
end;

procedure TSpeedBar.RemoveItem(Item: TSpeedItem);
var
  I, Index: Integer;
begin
  if FindItem(Item, I, Index) then begin
    Item.FButton.Parent := nil;
    Item.FParent := nil;
    Item.FSection := -1;
    Sections[I].FList.Delete(Index);
  end;
end;

function TSpeedBar.SearchSection(const ACaption: string): Integer;
var
  I: Integer;
begin
  Result := -1;
  for I := 0 to FSections.Count - 1 do
    if Sections[I].Caption = ACaption then begin
      Result := I;
      Exit;
    end;
end;

function TSpeedBar.AppendSection(Value: TSpeedbarSection): Integer;
var
  UniqueName: string;
  I: Integer;
begin
  I := 0;
  UniqueName := Value.Caption;
  while SearchSection(UniqueName) >= 0 do begin
    Inc(I);
    UniqueName := Value.Caption + Format(' (%d)', [I]);
  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合天天做天天综合| 欧美视频在线一区| 欧美中文字幕久久 | 精品一区二区三区欧美| caoporen国产精品视频| 日韩美女视频在线| 亚洲精品videosex极品| 国产风韵犹存在线视精品| 欧美猛男超大videosgay| 国产午夜亚洲精品羞羞网站| 日韩有码一区二区三区| 色88888久久久久久影院野外| 精品噜噜噜噜久久久久久久久试看| 亚洲欧美另类久久久精品| 久久国内精品自在自线400部| 91久久精品国产91性色tv| 国产亚洲污的网站| 青青草原综合久久大伊人精品优势 | 久久尤物电影视频在线观看| 亚洲电影你懂得| 91美女在线观看| 中文字幕一区二区三区在线播放| 国产精品综合二区| 久久综合五月天婷婷伊人| 日本aⅴ免费视频一区二区三区| 欧美在线制服丝袜| 亚洲美女一区二区三区| 99久久综合99久久综合网站| 日本一区二区免费在线| 成人免费观看av| 欧美国产激情一区二区三区蜜月 | 亚洲va欧美va人人爽午夜| 91婷婷韩国欧美一区二区| 国产欧美一区二区精品久导航| 国产一区二区三区四区五区美女 | 91精品1区2区| 亚洲美女屁股眼交| 在线观看网站黄不卡| 亚洲免费看黄网站| 在线观看亚洲专区| 午夜精品视频在线观看| 欧美熟乱第一页| 日本成人在线视频网站| 日韩一区二区高清| 国产一区二区主播在线| 精品88久久久久88久久久| 国产乱码精品一区二区三| 久久综合久久综合久久综合| 国产宾馆实践打屁股91| 国产精品电影一区二区三区| 色呦呦国产精品| 偷窥少妇高潮呻吟av久久免费| 91精品蜜臀在线一区尤物| 麻豆精品视频在线观看视频| 精品国产123| 成人激情午夜影院| 亚洲成人自拍偷拍| 欧美α欧美αv大片| 国产99一区视频免费| 亚洲三级免费观看| 在线成人午夜影院| 国产东北露脸精品视频| 亚洲一区在线视频观看| 日韩欧美国产午夜精品| 粉嫩在线一区二区三区视频| 亚洲人成人一区二区在线观看| 欧美另类久久久品| 国产一区二区成人久久免费影院| 日韩理论片中文av| 91麻豆精品91久久久久同性| 国产成人av一区二区三区在线 | 色综合久久综合网97色综合| 日韩va欧美va亚洲va久久| 久久精品欧美一区二区三区不卡 | 午夜电影网亚洲视频| 精品成人免费观看| 91丨porny丨在线| 日本伊人精品一区二区三区观看方式| 久久蜜桃av一区二区天堂| 91视频国产资源| 精品在线观看视频| 亚洲一线二线三线久久久| 国产视频一区二区三区在线观看 | 日韩美女视频一区二区在线观看| 99麻豆久久久国产精品免费| 毛片av一区二区| 亚洲黄色尤物视频| 久久一留热品黄| 7777精品伊人久久久大香线蕉完整版 | 亚洲国产视频网站| 国产精品色哟哟网站| 欧美大胆一级视频| 欧美日韩午夜精品| 99久久精品免费看国产免费软件| 激情欧美一区二区| 首页欧美精品中文字幕| 亚洲视频资源在线| 欧美国产禁国产网站cc| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩三级在线| 91免费看片在线观看| 粉嫩aⅴ一区二区三区四区| 狠狠色丁香婷综合久久| 天堂成人国产精品一区| 亚洲电影一级片| 亚洲黄一区二区三区| 亚洲精品网站在线观看| 中文字幕一区二区三区精华液| 国产色产综合产在线视频| 欧美精品一区在线观看| 91精品免费在线| 日韩一二在线观看| 欧美一区二区视频在线观看2020| 欧美色综合天天久久综合精品| 91首页免费视频| 在线观看国产91| 在线国产电影不卡| 欧美亚洲国产一区二区三区va | 国产福利不卡视频| 国产成人免费视频一区| 不卡一区二区三区四区| 99久久婷婷国产精品综合| caoporn国产一区二区| 色综合久久精品| 在线免费观看成人短视频| 欧美日韩一区二区三区四区| 欧美日韩一级片网站| 日韩视频一区二区三区| 亚洲精品在线观看网站| 国产日韩视频一区二区三区| 国产精品网站在线| 亚洲曰韩产成在线| 日韩精品免费视频人成| 精品一区二区免费在线观看| 国产综合久久久久久鬼色| 丁香六月久久综合狠狠色| 91性感美女视频| 91麻豆精品国产91久久久久| 久久天天做天天爱综合色| 日本一区二区三区免费乱视频| 中文字幕一区视频| 视频在线观看一区二区三区| 六月丁香婷婷色狠狠久久| 福利91精品一区二区三区| 欧美三片在线视频观看| 欧美大胆一级视频| 亚洲欧洲另类国产综合| 亚洲一区二区精品视频| 国产尤物一区二区在线| 91在线观看成人| 日韩一区二区免费在线电影| 国产精品色噜噜| 婷婷开心久久网| 成人妖精视频yjsp地址| 欧美日韩综合色| 国产日韩欧美高清| 婷婷六月综合网| av亚洲精华国产精华| 91精品国产乱码| 中文字幕一区二区三区精华液 | 国产精品综合av一区二区国产馆| 91美女片黄在线| 2022国产精品视频| 亚洲影院理伦片| 成人午夜精品在线| 制服丝袜亚洲精品中文字幕| 国产精品久久久久久久久久久免费看| 亚洲成人手机在线| 99精品欧美一区二区三区小说| 欧美一区二区三区思思人| 综合久久给合久久狠狠狠97色| 久色婷婷小香蕉久久| 欧美日韩在线播| 亚洲日穴在线视频| 国产成人av自拍| 欧美大片拔萝卜| 日韩经典一区二区| 91论坛在线播放| 欧美高清在线一区| 国产一区欧美一区| 日韩欧美国产电影| 日韩中文欧美在线| 欧美色图在线观看| 一区二区国产视频| 99riav久久精品riav| 国产午夜精品福利| 激情小说欧美图片| 日韩丝袜情趣美女图片| 天堂久久一区二区三区| 在线精品视频一区二区三四 | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久99久久精品欧美| 欧美嫩在线观看| 亚洲一区二区三区四区五区中文| 99久久夜色精品国产网站| 欧美国产日本视频| 99久久免费国产| 1024成人网| kk眼镜猥琐国模调教系列一区二区| 国产丝袜在线精品|