GuSoft

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 48 total)
  • Author
    Posts
  • in reply to: AC и x64 #48610
    GuSoft
    Participant

    тот ответ годовой давности. “скоро” это в этом году хотябы?

    на сколько понимаю в основном все упирается в *.obj компонентов сжатия? может проще из jedy взять их (или аналог), там вроде под x64 работает компрессия. или на основе встроеного zip в хе2 сделать – уменьшится и размер и проблемы пропадут

    in reply to: Delphi XE2 + AC #47084
    GuSoft
    Participant
    in reply to: Калькулятор #46841
    GuSoft
    Participant
    'Support' wrote:

    У компонента TsCalculator есть свойство Caption, оно и будет выводиться.

    это понятно, но по умолчанию оно по английски выводится (если caption ничему не присваивать при создании руками компонента).

    а попытка заменить его на русский в ресурсах успехов не имеет. можно конечно его присваивать при создании, но хочется чтобы на этапе компиляции уже чтобы было по русски по умолчанию. мелочь вот такая. или пусть название по умолчанию будет пустое.

    in reply to: Delphi XE2 + AC #46769
    GuSoft
    Participant

    ограничены-неограничены, но есть уже.

    тут вот на днях первое обновление для xe 2 вышло, там новых тем добавили, а теперь еще и редактировать их можно, жду 2го обновления и новых стилей, ща они это на поток поставят судя по всему + от разных умельцев много чего выйдет, самое главное там основа есть на чем все это базируется а дальше и самому можно стили ляпать

    in reply to: Delphi XE2 + AC #46765
    GuSoft
    Participant

    а проект савсем не умрет?

    styles.png

    Bring new style to your VCL applications

    Delphi XE2 introduces VCL Styles, enabling you to apply a custom look and feel to your VCL applications. Styles are applied to your existing components and UI elements so it's easy to get a new look without swapping out components. Choose from the included, professionally design styles or use the VCL Style Designer to customize or create your own.

    in reply to: Калькулятор #46750
    GuSoft
    Participant

    В sCalcUnit.dfm меняю

    object sCalcForm: TsCalcForm

    Caption = 'Калькулятор'

    пересобираю AC и рантайм (+русские ресурсы), однако название окна все равно не меняется. Что может быть еще?

    Ac 7.50 без исходников, Delphi Xe

    in reply to: Руссификация диалогов AC #46748
    GuSoft
    Participant

    Не могли бы вы:

    а) в папку ResRus кроме *.rc и *.res также и *.dfm включать русифицированые, ато каждый раз с выходом новой сборки сравнивать их со старыми и вносить поправки нудно

    б) для русских выкладывать сразу русифицированые билды

    или может батничек какой напишите, чтобы язык перед компиляцией (а может сразу и компилить) менять быстро, используя параметр командной строки, типа “ChangeLang.bat RUS” – например брал бы из папки resrussian все файлы, заменял их в AlphaDelphiXe и компилил (ну и с параметром ENG аналогично для английской версии)

    спасибо.

    и непонятно, как получить новый русский sStrings.res – при компиляции brcc32 хочет #include “..sstrings.pas”, подставляю из папки alphadelphixe – начинают ошибки вылазить (expected END in sStrings.pas) и в самом *.pas res уже требуется (см.вложение на всякий случай).

    еще немного не в тему: если в sDefaults.pas изменить путь

    DefSkinsDir = 'c:Skins';

    то при компиляции bpl вылазит ошибка на различие в версиях и требует *.pas (Ac 7.50 без исходников, delphi Xe)

    in reply to: Заполнение ThirdParty ручками #46726
    GuSoft
    Participant

    >> Можно динамически создавать SkinProvider : TsSkinProvider.Create(Form1)

    Да, я так и делаю. А нельзяли както SM без SP сообщить:

    1. что все формы уже созданы (или обновить список форм, которые должны шкурится)

    2. когда форма показывается, обратить на нее внимание (ведь компоненты АС которые на ней лежат сразу шкурятся и без SP)

    это я просто все к тому же вопросу, что SM уже создан в длл и передан основному в приложение (т.е. дублируем SM), а теперь кроме него надо еще и SP подключать, хотя он не особо и нужен по большому счету. А про попытки инициализировать SP из длл на зашкуривание форм приложения – я уже писал, не получается (ошибок теперь нет, но и шкуры не применяются).

    in reply to: Заполнение ThirdParty ручками #46669
    GuSoft
    Participant

    Да это заработало.

    Несколько вопросов еще:

    1. Какой лучше применять метод, после заполения списка Skin.Loaded; или LoadThirdNames(Skin); или оба?

    2. Беспокоят пробелы в начале списка (смотрю в dfm), как будет правильно, если руками присваивать?

    const s=#13#10;

    а ) Skin.ThirdParty.ThirdButtons:='TTntButton'+s+'TButton'+s;

    b ) Skin.ThirdParty.ThirdButtons:='TTntButton'+s+'TButton';

    c ) Skin.ThirdParty.ThirdButtons:=s+'TTntButton'+s+'TButton'+s;

    d ) Skin.ThirdParty.ThirdButtons:=' '+s+'TTntButton'+s+'TButton'+s; // в dfm так

    3. Допустим, есть SM (к вопросу http://www.alphaskins.com/forum/index.php?showtopic=6471), но теперь он создается руками, все вроде работает, непонятно вот что:

    p.s. там небольшие изменения в коде основной программы, при создании SM в dll делаю GuSkin:=TsSkinManager.Create(Application);GuSkin.Name:='GuSkin'; и соответственно терь в проге ищу его не по номеру, а по имени, что удобнее:

    SkinInit;

    DefaultManager:=TsSkinManager(application.FindComponent('GuSkin'));

    вот присвоил я дефолтному SM тот который в dll. При показе основной формы (если на ней нет скинпровайдера, далее SP) – на ней компоненты из стандартного набора AC (кнопки и панель) сразу получают скин.

    а стандартные кнопки и панели нет, пока SP не положишь на форму. Почему это происходит, если у SM ThirdParty заполнен? Т.е. нельзя ли без SP обязательного обойтись, если ThirdParty заполнено и в правилах включено, что применять ThirdParty?

    in reply to: Просьба #46656
    GuSoft
    Participant

    7.50 поставил, что то пока невижу, может назвали подругому?

    хорошобы чтобы он объявлялся таким образом, чтобы если установлены компоненты AC – в юнитах (до uses) этот ключ можно былобы использовать.

    in reply to: Dll #46655
    GuSoft
    Participant
    'Torbins' wrote:

    Ну вот сейчас менеджеры у вас больше не дублируются. Ну и что? Все равно осталась целая куча вещей, которые дублируются, включая и код в длл и екзе. Имхо вы экономите не спичках.

    это понятно. но все настройки, скины, форма их выбора лежат в длл. конечно, я не против, если бы SM был бы только один в длл и скинил бы приложение без выкрутасов (см. начало, самое первое сообщение),

    но пока я не вижу другого способа, как это сделать.

    in reply to: Не ставиться пакет под Delphi XE2 #46641
    GuSoft
    Participant

    🙂 и почему это AC еще не x64 и почемуто не работает в релизах платформ на которых разрабатывается? Даже странно… :)))

    in reply to: Просьба #46629
    GuSoft
    Participant

    спасибо

    in reply to: Dll #46609
    GuSoft
    Participant

    классно!

    а вот про это не знал, что так можно

    DefaultManager := tsSkinManager(application.Components[2].Components[0]);

    жалко что тут хотябы небольшой справки нету по компонентам (или может она в платной версии есть, хотя там исходники, значит видимо неособо нужно).

    понятно, что если теперь в новом примере в дпр передалать немного код – создание основной формы сдвинуть вниз, то будет скинеться и она (только номер компонента меняется на 1)

    if not InitDll(Dword(Application),{Dword(Screen)} 0) then Halt(1);

    DefaultManager := tsSkinManager(application.Components[1].Components[0]);

    Application.CreateForm(TForm1, Form1);

    в целом почти то что хотел (жалко что без использования АС в основной программе нельзя обойтись, или может поже вы выпустите чтото типа mini AC как раз для таких случаев – только скинманагер+провайдер для перехвата основного из длл), но в целом все работает: 1000000 спасибов 🙂

    p.s. про подводные камни думать пока не хочу, пока хорошее настроение от решения есть (для небольших проектов вполне сойдет) 🙂 еще раз спасибо

    GuSoft
    Participant

    попробуйте в папке проекта чем то типа Far поискать строку “sAlphaListBox” в *.*, наверняка гдето еще есть. Если не найдете, значит он используется в какомто из подключенных модулей в uses

    in reply to: Dll #46583
    GuSoft
    Participant

    Значится так, накатал я пример, см. вложение.

    Инициализация происходит в dpr (пробовал в разных местах, по моему, это оптимально, можно даже там воткнуть строку перед созданием основной формы).

    После старта проги появляется _заскиненое_ сообщение из длл, что инициализация прошла.

    После появляется основное окно

    11dc731dd8dfb3cee58c51de9d17ec07.png

    нажимаем кнопку GetCompName – в мемо будут перечислены все компоненты с парентами, там видно, что в конце есть скинманагер, т.е. инициализация длл (присвоение апп прг в длл) прошла успешно.

    это же мы видим нажимая TestFormDll – показывается _заскиненая_ тестовая форма из длл.

    скинманагер использует 3дпати и внутрений скин (для тестов на тестируемых окнах есть панели и кнопки – стандартные и из набора AC)

    однако сама основная форма не скинется, думал скинпровайдера нет или как передать, для этого есть кнопка TestFormPrg – формирует динамически форму, т.е. уже после того как скинманагер активен (приводит к ошибке, но окно скинется, закрываем alt+f4, убрав маус с окна)

    если собрать и длл и прогу с бпл, то понятно, что основное окно сразу будет заскинено после старта (без всяких дополнительных движений и скинпровайдеров), чего и добиваюсь, но без бпл 🙁

    интересно, что если в проге на button1 например повесить

    application.MessageBox('test','Test',mb_iconwarning);

    или

    MessageBox(application.Handle,'test','test',mb_iconerror);

    то при клике сообщения будут _заскинены_, а окна диалогов, например showmessage('test') – нет или частично, если положить opendialog1 и выполнить показ.

    p.s. тСкрин не передаю, см. в дпр – заремлен, если будете эксперементировать можете отремить, длл его примет

    Жду помощи.

    Ac 7.47, версию дельфей и виндов расписал в testprg.dpr

    in reply to: Dll #46580
    GuSoft
    Participant

    >> Почему Вы считаете, что application.Components[1].components[0] это SkinManager

    потому что Components[1] это датамодуле в dll, а Components[0] – скинменеджер, который на нем лежит (это также видно, если опрашивать имена компонентов в программе в цикле application.Components, после того как в длл произошло присвоение application приложения)

    >> Я создам тестовое приложение и проверю почему не скинится приложение из Dll

    Очень надеюсь на вашу помощь. Ща тоже пример напишу, позже приложу.

    >> Какие минусы в таком подходе?

    Такие, что их куча будет большая + все время за ними следить надо, если что то меняешь в пакетах. Мне не нужны все, мне нужны только мои (точнее 1 длл) 🙂

    in reply to: Калькулятор #46579
    GuSoft
    Participant

    спасибо, ждем

    in reply to: Dll #46532
    GuSoft
    Participant

    передаю так

    DllInit(DWord(Application),DWord(Screen));

    в длл

    Function DllInit(App,Scr:Dword):bool;

    if App>0 then if not Assigned(OldApp) then begin OldApp:=Application;Application:=TApplication(App);end;

    и скрин аналогично

    пробовал и присваивать и заменять и тскрин. не получается. а при передаче тскрин и присваивании его локальному – еще куча проблем других вылазит.

    сейчас в длл все скинется норм (формы всякие) и я даже вижу в приложении skinmanager в списке компонентов, когда их перечисляю:

    i1:=application.ComponentCount-1;memo1.Clear;

    for i:=0 to i1 do memo1.Lines.Add(inttostr(i)+' '+application.Components.Name);

    т.е. в длл присвоение аппликатион=апп.приложения – норм. отрабатывает.

    но на форму в приложении (а также созданые др.формы после инициализации SM в длл с включенным ThirdParty) это никак не влияет.

    пробовал даже провайдера на формы ставить и присваивать примерно так

    form2.sSkinProvider1.SkinData.SkinManager:=tsSkinManager(application.Components[1].components[0]);

    но это вызывает АВ, хотя форма на какоето время применяет скин. но это все равно не то – в приложение тогда надо подключать СМ и СП в юзес.

    и в длл пробовал на маинформ приложения скинпровайдера повесить

    sSkinProvider1:=tsSkinProvider.Create(application.mainform);

    еще мысли есть, ато у меня уже идеи кончились?

    in reply to: Конфликт с нативным png в Delphi XE #46531
    GuSoft
    Participant
Viewing 20 posts - 1 through 20 (of 48 total)