Forum Replies Created
-
AuthorPosts
-
AhellParticipant
Вот я предпологаю что ннеправельно загружаю наастройки скинов:
Splash – окно
Code:procedure TSplashForm.FormCreate(Sender: TObject);
var
ini: TIniFile;
begin
LoadJPEGFromRes('SplashScreen', SplashImage.Picture);
ini := TIniFile.Create(myDir + 'Data' + 'HLR_Settings.ini');
try
//загружаем скины
SkinManager.SkinDirectory := myDir + 'DataSkins';
if (GetFileCount(SkinManager.SkinDirectory, '*.asz') > 0) then
begin
SkinManager.SkinName := ini.ReadString('Skins', 'SkinName', 'Vienna Ext');
SkinManager.Saturation := ini.ReadInteger('Skins', 'Saturation', 0);
SkinManager.HueOffset := ini.ReadInteger('Skins', 'HUEOffset', 0);
SkinManager.Active := ini.ReadBool('Skins', 'UseSkins', True);
end
else
begin
SkinManager.Active := False;
end;
finally
ini.Free;
end;
end;[/spoiler]
Загрузка настроек программы
Code:procedure LoadSettings;
begin
ini := TIniFile.Create(myDir + 'Data' + 'HLR_Settings.ini');
try
….
//загружаем скины
MainForm.SkinManager.SkinDirectory := myDir + 'DataSkins'; //myDir = ExtractFilePath(ParamStr(0))
if (GetFileCount(MainForm.SkinManager.SkinDirectory, '*.asz') > 0) then
begin
MainForm.SkinManager.SkinName := ini.ReadString('Skins', 'SkinName', 'Vienna Ext');
MainForm.SkinManager.Saturation := ini.ReadInteger('Skins', 'Saturation', 0);
MainForm.SkinManager.HueOffset := ini.ReadInteger('Skins', 'HUEOffset', 0);
SettingsForm.UseSkinsChk.Checked := ini.ReadBool('Skins', 'UseSkins', True);
//Перезапуск скинменеджера.. перерисовка скинов.. Др. варианта не нашёл..
MainForm.SkinManager.Active:=SettingsForm.UseSkinsChk.Checked;
MainForm.SkinManager.BeginUpdate;
MainForm.SkinManager.ReloadPackedSkin;
MainForm.SkinManager.EndUpdate(True,false);
end
else
begin
SettingsForm.UseSkinsChk.Checked := False;
SettingsForm.UseSkinsChk.Enabled := False;
SettingsForm.ErrorBar.Visible := True;
SettingsForm.ErrorBar.Panels[0].Text := 'Папка dataskins пуста. Скины отключены.';
MainForm.SkinManager.Active := False;
end;
….[/spoiler]
Может я здесь что-то не так делаю?
AhellParticipantКто-нибудь отпишет?
Собственно посмотрел, отладчик просит sSkinManager.pas
далее указывает на модуль Controls:
Code:procedure TWinControl.MainWndProc(var Message: TMessage);
begin
try
try
WindowProc(Message); //конкретно сюда.
finally
FreeDeviceContexts;
FreeMemoryContexts;
end;
except
Application.HandleException(Self);
end;
end;сообщение:
Acces violation at addres “********” in module “hlr.exe” Read of addres 0000000.
AhellParticipantСобственно разобрался. Вся ошибка происходит причтении ini файла хатя под отладчиком толком ничего!
Собствнно как присходит:
Удаляем ini файл , запускаем программу, идём в настройки и выбираем скин.
Проблема в том что SknDirectory = пустой строке и тогда при вызове SelectSkin происходит ошибка в функции/процедуре TsSkinManager.GetSkinIndex
вот загрузка параметров:
Code:procedure LoadSettings;
begin
ini := TIniFile.Create(myDir + 'Data' + 'HLR_Settings.ini');
try
//чтение главных параметров.
SettingsForm.AppAutoRunChk.Checked := ini.ReadBool('System', 'AutoRun', False);
SettingsForm.ShowHintsChk.Checked := ini.ReadBool('System', 'ShowHints', True);//загружаем скины
MainForm.SkinManager.SkinDirectory := myDir + 'DataSkins';
if not (GetFileCount(MainForm.SkinManager.SkinDirectory, '*.asz') <> 0) then
begin
MainForm.SkinManager.SkinName := ini.ReadString('Skins', 'SkinName', 'Vienna Ext');
MainForm.SkinManager.Saturation := ini.ReadInteger('Skins', 'Saturation', 0);
MainForm.SkinManager.HueOffset := ini.ReadInteger('Skins', 'HUEOffset', 0);
SettingsForm.UseSkinsChk.Checked := ini.ReadBool('Skins', 'UseSkins', False);
SettingsForm.UseSkinsChk.Checked := True;
//Перезапуск скинменеджера.. перерисовка скинов.. Др. варианта не нашёл..
MainForm.SkinManager.Active := False;
MainForm.SkinManager.Active := True;
end
else
begin
SettingsForm.UseSkinsChk.Enabled := False;
SettingsForm.UseSkinsChk.Checked := False;
SettingsForm.ErrorBar.Visible := True;
SettingsForm.ErrorBar.Panels[0].Text := 'Папка dataskins пуста. Скины отключены.';
MainForm.SkinManager.Active := False;
end;…
{Something…}
finally
ini.Free;
end;
end;November 9, 2010 at 2:26 pm in reply to: Локализация форм AC(SelectSkin,SelectDir) и папка Res в сборке AC #43686AhellParticipantПоможет кто?
November 8, 2010 at 6:24 pm in reply to: Локализация форм AC(SelectSkin,SelectDir) и папка Res в сборке AC #43683AhellParticipantПодменил, пересобрал пакеты. Ничего не поуличилось, так и остались английские фразы.
October 31, 2010 at 1:13 pm in reply to: Справочник по компонентам AC и где взять старые версии компонент? #43602AhellParticipantспасибо, второй вопрос решён=)
Как быть со справкой к компонентам? Может можно хоть где-нибуть почитать о свойствах и методах компонент?
AhellParticipantБудет ли поддержка?
AhellParticipantAhellParticipantКто-нибуть ответит?
AhellParticipant=) согласен.. можно и так..
но ведь:CODEsTrackBar1.enabled:=sRadioButton1.checked;на много удобнее…
February 15, 2010 at 8:20 pm in reply to: AC поддерживает компоненты для локализации приложения delphi? #41718AhellParticipantк примеру это TNT components
-
AuthorPosts