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

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

?? sskinmanager.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
              FreeAndNil(ma[i].Bmp);
              for  j := i to l - 2 do begin
                ma[j].ClassName := ma[j + 1].ClassName;
                ma[j].PropertyName := ma[j + 1].PropertyName;
                ma[j].Bmp := ma[j + 1].Bmp;
              end;
              SetLength(ma, l - 1);
              Break;
            end;
          end;
        end;
      end;
    end;
  end
  else begin
    if pos('.BMP', UpperCase(FileName)) > 0 then begin
      l := Length(ma);
      if l > 0 then begin
        for i := 0 to l - 1 do begin
          if (UpperCase(ma[i].PropertyName) = s) and
             (UpperCase(ma[i].ClassName) = UpperCase(skinSection))  then begin
            ma[i].Bmp.LoadFromFile(FileName);
            Result := True;
            Exit;
          end;
        end;
      end;
    end;
  end;
end;

constructor TsSkinManager.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FBuiltInSkins := TsStoredSkins.Create(Self);
  if FSkinDirectory = '' then begin
    FSkinDirectory := DefSkinsDir;
  end;
  if FSkinName = '' then begin
    if DirExists(FSkinDirectory + '/' + DefSkinsName) then begin
      FSkinName := DefSkinsName;
    end;
  end;
  FActive := True;
  FSkinableMenus := TsSkinableMenus.Create(Self);
  if sSkinData.SkinManager = nil then begin
    sSkinData.SkinManager := Self;
  end
  else begin
    ShowWarning('Please, be sure that only one exemplar of TsSkinManager component is present in project.');
  end;
end;

destructor TsSkinManager.Destroy;
begin
  if Assigned(FBuiltInSkins) then FreeAndNil(FBuiltInSkins);
  if sSkinData.SkinManager = Self then begin
    SendRemoveSkin;
    sSkinData.SkinManager := nil;
  end;
  if Assigned(FSkinableMenus) then FreeAndNil(FSkinableMenus);
  inherited Destroy;
end;

procedure TsSkinManager.ExtractByIndex(Index: integer; DestDir: string);
var
  i : integer;
  DirName : string;
  sf : TMemIniFile;
begin
  DirName := NormalDir(DestDir) + InternalSkins[Index].Name + ' extracted\';
  if not DirectoryExists(DirName) then begin
    if not CreateDir(DirName) then begin
      ShowError('Directory ' + DirName + ' creation error.');
      Exit;
    end;
  end;
  sf := TMemIniFile.Create(DirName + 'Options.dat');
  try
    // Extract Bmp's
    for i := 0 to InternalSkins[Index].Images.Count - 1 do begin
      if InternalSkins[Index].Images[i].Name <> '' then begin
        InternalSkins[Index].Images[i].Image.SaveToFile(DirName + InternalSkins[Index].Images[i].Name);
        WriteIniStr(InternalSkins[Index].Images[i].SectionName, InternalSkins[Index].Images[i].PropertyName, InternalSkins[Index].Images[i].Name, sf);
      end
      else begin
        ShowError('Images in this skin are not contains information about filenames. Please, reload skin.');
        Break;
      end;
    end;
    // Extract Jpeg's
    for i := 0 to InternalSkins[Index].Patterns.Count - 1 do begin
      if InternalSkins[Index].Patterns[i].Name <> '' then begin
        InternalSkins[Index].Patterns[i].Image.SaveToFile(DirName + InternalSkins[Index].Patterns[i].Name);
        WriteIniStr(InternalSkins[Index].Patterns[i].SectionName, InternalSkins[Index].Patterns[i].PropertyName, InternalSkins[Index].Patterns[i].Name, sf);
      end;
    end;
    // Extract Ini
    SaveToIni(Index, sf);
  finally
    sf.UpdateFile;
    FreeAndNil(sf);
  end;
end;

procedure TsSkinManager.ExtractInternalSkin(NameOfSkin, DestDir: string);
var
  i : integer;
  Executed : boolean;
//  s : string;
begin
  Executed := False;
  for i := 0 to InternalSkins.Count - 1 do begin
    if InternalSkins[i].Name = NameOfskin then begin
      if DirectoryExists(Destdir) then begin
        ExtractByIndex(i, Destdir);
      end
      else begin
        ShowError('Directory with such name do not exists.');
      end;
      Executed := True;
    end;
  end;
  if not Executed then begin
    ShowError('Skin with such name do not exists.');
  end;
end;

function TsSkinManager.GetExternalSkinNames(sl: TStrings): string;
var
  FileInfo: TSearchRec;
  DosCode: Integer;
  s : string;
  SkinPath : string;
begin
  Result := '';
  SkinPath := GetFullskinDirectory;
  sl.Clear;

  // External skins names loading
  if DirExists(SkinPath) then begin
    s := SkinPath + '\*.*';
    DosCode := FindFirst(s, faDirectory, FileInfo);
    try
      while DosCode = 0 do begin
        if (FileInfo.Name[1] <> '.') and (FileInfo.Attr and faDirectory = faDirectory) then begin
          sl.Add(FileInfo.Name);
          if Result = '' then Result := FileInfo.Name;
        end;
        DosCode := FindNext(FileInfo);
      end;
    finally
      FindClose(FileInfo);
    end;
  end;
end;

function TsSkinManager.GetFullskinDirectory: string;
begin
  Result := SkinDirectory;
  if (pos('.\', Result) = 1) or (pos('./', Result) = 1) then begin
    Delete(Result, 1, 2);
    Result := GetAppPath + Result;
  end
  else if (pos(':', Result) < 1) then begin
    Result := GetAppPath + Result;
  end;
  NormalDir(Result);
end;

function TsSkinManager.GetSkinNames(sl: TStrings) : string;
var
  FileInfo: TSearchRec;
  DosCode: Integer;
  s : string;
  SkinPath : string;
begin
  Result := '';
  SkinPath := GetFullskinDirectory;
  sl.Clear;

  // Internal skins names loading
  if InternalSkins.Count > 0 then begin
    for DosCode := 0 to InternalSkins.Count - 1 do begin
      sl.Add(InternalSkins[DosCode].Name);
      if Result = '' then Result := InternalSkins[DosCode].Name;
    end;
  end;

  // External skins names loading
  if DirExists(SkinPath) then begin
    s := SkinPath + '\*.*';
    DosCode := FindFirst(s, faDirectory, FileInfo);
    try
      while DosCode = 0 do begin
        if (FileInfo.Name[1] <> '.') and (FileInfo.Attr and faDirectory = faDirectory) then begin
          sl.Add(FileInfo.Name);
          if Result = '' then Result := FileInfo.Name;
        end;
        DosCode := FindNext(FileInfo);
      end;
    finally
      FindClose(FileInfo);
    end;
  end;
end;

procedure TsSkinManager.GetSkinSections(sl: TStrings);
begin
  if sSkinData.Active and (sSkinData.SkinFile <> nil) then sSkinData.SkinFile.ReadSections(sl);
end;

procedure TsSkinManager.Loaded;
var
  M : TSMSkin;
  i : integer;
begin
  inherited;
  if Active and (SkinName <> '') then begin
    RestrictDrawing := False;
    M.Msg := SM_SETNEWSKIN;
    M.GroupIndex := GroupIndex;
    M.Result := 0;
    M.SkinManager := Self;
    if csDesigning in ComponentState then begin
      if (csLoading in ComponentState) or (csReading in ComponentState) then Exit;
      for i := 0 to Screen.FormCount - 1 do begin
        BroadCastS(Screen.Forms[i], M);
      end;
    end
    else begin
      AppBroadCastS(M);
    end;
    M.Msg := SM_REFRESH;
    M.GroupIndex := GroupIndex;
    M.Result := 0;
    M.SkinManager := Self;
    if csDesigning in ComponentState then begin
      if (csLoading in ComponentState) or (csReading in ComponentState) then Exit;
      for i := 0 to Screen.FormCount - 1 do begin
        BroadCastS(Screen.Forms[i], M);
      end;
    end
    else begin
      AppBroadCastS(M);
    end;
  end;
end;

procedure TsSkinManager.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited;
  if (AComponent is TMenuItem) then begin
//    if not FSkinableMenus.IsTopLine(TMenuItem(AComponent)) then
//      FSkinableMenus.InitItem(TMenuItem(AComponent), (Operation = opInsert) and sSkinData.Active and not (csDesigning in ComponentState));
  end
  else if (AComponent is TMainMenu) then begin
    FSkinableMenus.InitMenuLine(TMainMenu(AComponent), Operation = opInsert);
  end;
end;

procedure TsSkinManager.SaveToIni(Index: integer; sf: TMemIniFile);
var
  gd : TsSkinGeneral;
  i : integer;
  s, SectionName : string;
begin
  for i := 0 to InternalSkins[Index].GeneralData.Count - 1 do begin
    gd := InternalSkins[Index].GeneralData.Items[i];
    if gd.SectionName = '' then Continue;
      SectionName := gd.SectionName;

      s := gd.ParentClassName;
      WriteIniStr(SectionName, ParentClassName, s, sf);

      s := IntToStr(gd.PaintingColor);
      WriteIniStr(SectionName, PaintingColor, s, sf);
      s := IntToStr(ord(gd.PaintingBevel));
      WriteIniStr(SectionName, PaintingBevel, s, sf);
      s := IntToStr(gd.PaintingBevelWidth);
      WriteIniStr(SectionName, PaintingBevelWidth, s, sf);

      s := IntToStr(gd.ShadowBlur);
      WriteIniStr(SectionName, ShadowBlur, s, sf);
      s := IntToStr(gd.ShadowOffset);
      WriteIniStr(SectionName, ShadowOffset, s, sf);
      s := IntToStr(gd.ShadowColor);
      WriteIniStr(SectionName, ShadowColor, s, sf);
      s := IntToStr(gd.ShadowTransparency);
      WriteIniStr(SectionName, ShadowTransparency, s, sf);
      s := iff(gd.ShadowEnabled, 'TRUE', 'FALSE');
      WriteIniStr(SectionName, ShadowEnabled, s, sf);
      s := iff(gd.ReservedBoolean, 'TRUE', 'FALSE');
      WriteIniStr(SectionName, ReservedBoolean, s, sf);
      s := ExtractWord(1, gd.FontColor, [' ']);
      WriteIniStr(SectionName, FColor, s, sf);
      s := ExtractWord(2, gd.FontColor, [' ']);
      WriteIniStr(SectionName, TCLeft, s, sf);
      s := ExtractWord(3, gd.FontColor, [' ']);
      WriteIniStr(SectionName, TCTop, s, sf);
      s := ExtractWord(4, gd.FontColor, [' ']);
      WriteIniStr(SectionName, TCRight, s, sf);
      s := ExtractWord(5, gd.FontColor, [' ']);
      WriteIniStr(SectionName, TCBottom, s, sf);
      s := ExtractWord(1, gd.HotFontColor, [' ']);
      WriteIniStr(SectionName, HotFColor, s, sf);
      s := ExtractWord(2, gd.HotFontColor, [' ']);
      WriteIniStr(SectionName, HotTCLeft, s, sf);
      s := ExtractWord(3, gd.HotFontColor, [' ']);
      WriteIniStr(SectionName, HotTCTop, s, sf);
      s := ExtractWord(4, gd.HotFontColor, [' ']);
      WriteIniStr(SectionName, HotTCRight, s, sf);
      s := ExtractWord(5, gd.HotFontColor, [' ']);
      WriteIniStr(SectionName, HotTCBottom, s, sf);
      s := IntToStr(gd.PaintingTransparency);
      WriteIniStr(SectionName, PaintingTransparency, s, sf);
      s := IntToStr(gd.GradientPercent);
      WriteIniStr(SectionName, GradientPercent, s, sf);
      s := IntToStr(gd.ImagePercent);
      WriteIniStr(SectionName, ImagePercent, s, sf);
      s := (gd.GradientData);
      WriteIniStr(SectionName, GradientData, s, sf);
      s := iff(gd.ShowFocus, 'TRUE', 'FALSE');
      WriteIniStr(SectionName, ShowFocus, s, sf);
      s := iff(gd.FadingEnabled, 'TRUE', 'FALSE');
      WriteIniStr(SectionName, FadingEnabled, s, sf);
      s := IntToStr(gd.FadingIntervalIn);
      WriteIniStr(SectionName, FadingIntervalIn, s, sf);
      s := IntToStr(gd.FadingIntervalOut);
      WriteIniStr(SectionName, FadingIntervalOut, s, sf);
      s := IntToStr(gd.FadingIterations);
      WriteIniStr(SectionName, FadingIterations, s, sf);
      s := IntToStr(gd.HotPaintingColor);
      WriteIniStr(SectionName, HotPaintingColor, s, sf);
      s := IntToStr(gd.HotPaintingTransparency);
      WriteIniStr(SectionName, HotPaintingTransparency, s, sf);
      s := IntToStr(ord(gd.HotPaintingBevel));
      WriteIniStr(SectionName, HotPaintingBevel, s, sf);
      s := IntToStr(gd.HotPaintingBevelWidth);
      WriteIniStr(SectionName, HotPaintingBevelWidth, s, sf);
      s := IntToStr(gd.HotGradientPercent);
      WriteIniStr(SectionName, HotGradientPercent, s, sf);
      s := gd.HotGradientData;
      WriteIniStr(SectionName, HotGradientData, s, sf);
      s := IntToStr(gd.HotImagePercent);
      WriteIniStr(SectionName, HotImagePercent, s, sf);
      s := IntToStr(gd.PaintingColorBorderTop);
      WriteIniStr(SectionName, PaintingColorBorderTop, s, sf);
      s := IntToStr(gd.PaintingColorBorderBottom);
      WriteIniStr(SectionName, PaintingColorBorderBottom, s, sf);
      s := IntToStr(gd.SelectionColor);
      WriteIniStr(SectionName, SelectionColor, s, sf);
      s := IntToStr(ord(gd.SelectionBorderBevel));
      WriteIniStr(SectionName, SelectionBorderBevel, s, sf);
      s := IntToStr(gd.SelectionBorderWidth);
      WriteIniStr(SectionName, SelectionBorderWidth, s, sf);


  end;
end;

procedure TsSkinManager.SendNewSkin;
var
  M : TSMSkin;
  i : integer;
begin
  sSkinData.Active := False;
  RestrictDrawing := True;

  M.Msg := SM_CLEARINDEXES;
  M.GroupIndex := GroupIndex;
  M.Result := 0;
  M.SkinManager := Self;
  if csDesigning in ComponentState then begin
    for i := 0 to Screen.FormCount - 1 do begin
      BroadCastS(Screen.Forms[i], M);
    end;
  end
  else begin
    AppBroadCastS(M);
  end;

  sSkinData.Active := True;

  M.Msg := SM_SETNEWSKIN;
  M.GroupIndex := GroupIndex;
  M.Result := 0;
  M.SkinManager := Self;
  if csDesigning in ComponentState then begin
    for i := 0 to Screen.FormCount - 1 do begin
      BroadCastS(Screen.Forms[i], M);
    end;
  end
  else begin
    AppBroadCastS(M);
  end;

  RestrictDrawing := False;
  M.Msg := SM_REFRESH;
  M.GroupIndex := GroupIndex;
  M.Result := 0;
  M.SkinManager := Self;
  if (csLoading in ComponentState) or (csReading in ComponentState) then Exit;
  if csDesigning in ComponentState then begin
    for i := 0 to Screen.FormCount - 1 do begin
      BroadCastS(Screen.Forms[i], M);
    end;
  end
  else begin
    AppBroadCastS(M);
  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品一区二区三区精品| 91国偷自产一区二区开放时间| 日韩欧美一区二区三区在线| 免费观看一级特黄欧美大片| 日韩女优av电影| 经典三级在线一区| 久久久久久综合| 99久久精品国产观看| 亚洲一区免费在线观看| 欧美伊人久久久久久久久影院| 亚洲成av人片| 久久午夜色播影院免费高清 | 91高清视频免费看| 一区二区三国产精华液| 欧美日韩精品一区视频| 激情欧美日韩一区二区| 国产精品视频免费| 欧美日韩一区二区三区不卡| 另类小说视频一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美sm极限捆绑bd| 床上的激情91.| 一区二区三区在线视频观看| 在线播放中文一区| 国内欧美视频一区二区| **性色生活片久久毛片| 欧美日韩精品一区视频| 国产99久久久国产精品潘金 | 日本一道高清亚洲日美韩| 久久人人超碰精品| 91国偷自产一区二区开放时间 | 亚洲乱码国产乱码精品精98午夜| 欧美福利视频导航| 不卡一区在线观看| 日本三级亚洲精品| 中文字幕一区二区三区在线播放| 欧美美女一区二区在线观看| 国产成人免费在线| 亚洲妇熟xx妇色黄| 国产精品久久久久久久久果冻传媒 | 国产91高潮流白浆在线麻豆| 亚洲一区影音先锋| 国产精品视频免费看| 日韩片之四级片| 在线观看91视频| 国产99精品国产| 日韩电影在线观看电影| 亚洲欧美自拍偷拍色图| 精品国产百合女同互慰| 欧美日韩精品综合在线| 99久久99久久精品免费看蜜桃| 看片的网站亚洲| 午夜精品久久久久久不卡8050| 国产精品毛片久久久久久久| 日韩欧美卡一卡二| 欧美卡1卡2卡| 在线观看网站黄不卡| 99re成人精品视频| 国产成人鲁色资源国产91色综| 久久精品国产第一区二区三区| 亚洲成av人影院在线观看网| 一区二区在线免费观看| 最新不卡av在线| 国产精品丝袜久久久久久app| 26uuu精品一区二区| 精品久久久久一区二区国产| 欧美日韩不卡视频| 欧美色图片你懂的| 日本高清不卡aⅴ免费网站| 丁香激情综合五月| 成人精品视频.| 高清beeg欧美| 成人免费视频视频在线观看免费 | 毛片av中文字幕一区二区| 午夜影视日本亚洲欧洲精品| 亚洲午夜三级在线| 午夜欧美电影在线观看| 亚洲成在线观看| 婷婷综合五月天| 视频一区欧美精品| 日本不卡在线视频| 午夜精品福利视频网站| 日韩电影在线一区二区| 日本成人中文字幕在线视频| 久久av资源网| 国产精品亚洲专一区二区三区| 国产成人综合亚洲网站| av电影在线观看一区| 波多野洁衣一区| 色激情天天射综合网| 欧美亚洲禁片免费| 91精品在线观看入口| 精品美女一区二区| 国产午夜精品一区二区三区视频| 国产精品视频在线看| 亚洲男帅同性gay1069| 亚洲影视在线观看| 日韩精品国产精品| 精品一区二区三区不卡| 国产电影一区在线| 色综合久久中文字幕综合网| 欧美日韩高清一区二区不卡| 日韩午夜激情视频| 久久久不卡网国产精品二区| 中文字幕一区二区三区精华液 | 国产精品嫩草99a| 亚洲在线成人精品| 美女视频黄免费的久久| 粉嫩一区二区三区性色av| 色呦呦网站一区| 日韩欧美国产一区在线观看| 国产精品麻豆欧美日韩ww| 亚洲二区视频在线| 久久99热这里只有精品| 国产91丝袜在线观看| 欧美少妇性性性| 久久婷婷一区二区三区| 亚洲精品免费视频| 精品亚洲aⅴ乱码一区二区三区| 成人激情图片网| 欧美男人的天堂一二区| 国产日韩欧美精品一区| 婷婷久久综合九色综合绿巨人| 激情综合网av| 91精品1区2区| 久久久精品人体av艺术| 亚洲国产日韩综合久久精品| 成人午夜精品一区二区三区| 欧美精品自拍偷拍动漫精品| 亚洲国产精品ⅴa在线观看| 日本一道高清亚洲日美韩| 91在线国内视频| 久久综合久色欧美综合狠狠| 亚洲一区二区精品视频| 国产suv精品一区二区6| 日韩欧美成人激情| 亚洲免费在线看| 处破女av一区二区| 精品少妇一区二区三区视频免付费| 亚洲综合色在线| av在线播放不卡| 久久久久久99精品| 欧美aaa在线| 欧美日本精品一区二区三区| 亚洲色图.com| 成人综合激情网| 国产日产欧美一区二区视频| 麻豆91免费观看| 欧美精品日韩综合在线| 一区二区三区在线播放| www.亚洲精品| 欧美高清在线精品一区| 国内精品国产成人国产三级粉色 | 久久综合久色欧美综合狠狠| 五月天亚洲婷婷| 欧美伊人久久久久久午夜久久久久| 国产精品久久久一区麻豆最新章节| 韩国av一区二区三区| 欧美成人vps| 九九精品一区二区| 日韩欧美你懂的| 久久99国产精品久久99| 欧美va亚洲va国产综合| 久久精品二区亚洲w码| 欧美丰满一区二区免费视频| 亚洲观看高清完整版在线观看 | 裸体歌舞表演一区二区| 在线不卡欧美精品一区二区三区| 亚洲一二三区在线观看| 欧美午夜理伦三级在线观看| 亚洲激情五月婷婷| 欧美性色黄大片手机版| 亚洲高清三级视频| 5858s免费视频成人| 丝袜脚交一区二区| 欧美一区二区三区小说| 久久精品999| 久久欧美一区二区| 国产91精品一区二区麻豆网站| 国产女人aaa级久久久级| 成人一区在线观看| 中文字幕亚洲在| 在线观看91精品国产入口| 午夜欧美一区二区三区在线播放| 欧美一区二区三区四区高清| 精品夜夜嗨av一区二区三区| 国产欧美精品国产国产专区| 成人ar影院免费观看视频| 亚洲精品一卡二卡| 欧美精品久久一区二区三区| 日韩精品电影在线观看| 久久午夜老司机| 不卡影院免费观看| 亚洲高清免费一级二级三级| 日韩欧美中文字幕制服| 国产成人精品三级麻豆| 亚洲欧洲一区二区三区| 欧美电影一区二区三区| 韩国精品主播一区二区在线观看 | 99国产精品视频免费观看|