Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2011, 13:33   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
Смех Форма внути формы, или как создать предпросмотр скинов AC?

Всем доброго времени суток!

Интересует реализация препросмотра SelectSkinDialog'а а компонентах AlphaControls.

Именно сам предпросмотр.
Я уже спрашивал на оф. сайте, и получил ответ
Проблема с реализацией в Run-time.

У меня есть TGroupBox внути которого я хочу создать форму(TPreviewForm) предпросмотра.
Форма предпросмотра находится в Avaliable Forms(не создаётся самостоятельно).

Вот начал писать функцию препросмотра. Завал на выводе формы(TPreviewForm) в SkinPreviewPanel; // (TGroupBox)
Код:
procedure CreatePreview(SkinName:AnsiString);
var
  PForm:TPreviewForm;
begin
  //Создаём форму
  PForm:=TPreviewForm.Create(nil);
  //Ставим GroupBox родителем формы
  PForm.Parent:=MainForm.SkinPreviewPanel; 
end;
Но на MainForm.SkinPreviewPanel; ничего не отображается.
Почему?
Человек_Борща вне форума Ответить с цитированием
Старый 07.04.2011, 15:35   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Разве никто никогда не создавал форму внутри другой формы?
Человек_Борща вне форума Ответить с цитированием
Старый 07.04.2011, 16:14   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Разве никто никогда не создавал форму внутри другой формы?
Конечно создавали более того я подскажу как сделать то что вам надо
Смотрите далее создаёте обычную форму
Потом открываете код проекта пишите так
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  form2.Parent:=form1;
  form2.Show;
  Application.Run;
end.
На form2 кидаете sSkinManager1 и sSkinProvider1
в свойстве SkinningRules компонента sSkinManager1 есть ещё одно свойство srStdForms там ставите false и дальше любуемся какая у нас красочная внутренняя форма.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 07.04.2011, 16:15   #4
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Позицию создаваемой формы проверьте. Должно быть (0, 0).
eduard93 вне форума Ответить с цитированием
Старый 07.04.2011, 16:36   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Благодарен=) Тема решена=)

Добавлено

Те кто работает с АС помогите=) Я в тупике=)
Вот что получилось(в прилепе сырц):
Код:
procedure CreatePreview(aSkinName:string);
begin
  PreviewForm.PreviewSkinMgr.SkinDirectory:=MainForm.SkinsDirEdit.Text;
  PreviewForm.PreviewSkinMgr.SkinName:=aSkinName;
  PreviewForm.PreviewSkinMgr.Active:=True;
end;

procedure LoadSkinsFromDir(aDir: AnsiString);
var
  SR: TSearchRec;
begin
  if FindFirst(aDir + '\*.asz', faAnyFile and not faDirectory, sr) = 0 then
  begin
    repeat
    MainForm.SkinsBox.Items.Add(ExtractFileName(sr.Name));
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
end;

procedure TMainForm.BrowseSkinsDirBtnClick(Sender: TObject);
begin
  if PathDlg.Execute then
  begin
    SkinsDirEdit.Text := PathDlg.Path;
    LoadSkinsFromDir(SkinsDirEdit.Text);
  end;
end;


procedure TMainForm.SkinsBoxChange(Sender: TObject);
var
  i:Integer;
begin
  i:=SkinsBox.ItemIndex;
  if i <> -1 then
  begin
    CreatePreview(SkinsBox.Items[i]);
  end;
end;
трабл в том что выбранный скин не применяется к форме.

___ADDED__
Проблема была в расширении файлов
Вложения
Тип файла: zip SkinsPreview.zip (117.0 Кб, 10 просмотров)

Последний раз редактировалось Человек_Борща; 07.04.2011 в 18:33.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать или через что прокси сервер? serres Свободное общение 8 13.09.2010 13:08
Заголовок Child формы имеет цвет неактивной формы, хотя форма активна? PrimaryPro Общие вопросы Delphi 0 12.03.2010 11:12
как создать второй экземпляр формы на с++ в vs2008 molodoy-pirat Общие вопросы .NET 1 30.04.2009 09:56
как сделать предпросмотр в QReport J[OGR]A Помощь студентам 1 19.03.2009 10:01