Old

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 51 total)
  • Author
    Posts
  • in reply to: [AC 7.56] Сбор ошибок прямо из демки #47347
    Old
    Participant
    'Ahell' wrote:
    P.S. Ну когда же можно будет увидеть справку к компонентам, и хороший ман по рисованию скинов… ?

    а шо не понятного ? пофиг им и это, и все остальное, имхо

    Old
    Participant
    'Support' wrote:

    А элементы управления на окне?

    Я проверил и на форму в вашем примере положил TButton – после ShowWindow форма рисуется как надо, а вот кнопки на ней нету.

    Это объясняется тем, что свойство Visible у такой формы остается False, Showing – тоже.

    Форма рисуется правильно потому что Builder в ее отображении не участвует, а VCL зависит от свойства Visible.

    По-любому нужно как-то это свойство у формы инициализировать, чтобы компоненты из VCL нормально отображались.

    Скины тоже ориентируются на свойство Visible.

    увы, танцы с бубном и

    Code:
    ВызываемаяФорма->Update();
    ВызываемаяФорма->Repaint();
    ВызываемаяФорма->Invalidate();
    ВызываемаяФорма->Visible = true;

    в ВызываемаяФорма – FormShow не помогли.

    И я не помню, есть ли какое похожее АПИ-сообщение для “встряски” формы.

    in reply to: Имя скина из Available skins #47295
    Old
    Participant
    'Support' wrote:

    Если я правильно понял, то sSkinManager1.SkinName

    Спасибо, уважаемый Support, я уже нашел.

    Думалось, что есть что-нибудь непосредственное, типа

    Code:
    AvailableSkins.SkinName
    Old
    Participant
    'Torbins' wrote:

    А где у вас BEGIN_MESSAGE_MAP/END_MESSAGE_MAP?

    Там же, где и в Вашем примере 😀 .

    Работает, спасибо, уважаемый Torbins.

    Но это – все же, – извращение, выход из ситуации, поскольку приходится писать кучу в сравнении с одним единственным вызовом ShowWindow(), и выход этот никоим образом не снимает вопрос о функции АПИ ShowWindow().

    Но это уже, наверное, вопрос больше к уважаемому Support'у 🙂 . Будем ждать 🙁 …

    Old
    Participant

    Программа окно находит, но не показывает:

    Old
    Participant
    'Torbins' wrote:

    1. Не вижу в вашем коде аналога сроки

    Code:
    private
    procedure MyShow(var m: TMessage); message WM_MyShow;

    Это привязка сообщения к обработчику.

    2. Еще можете поставить бряк внутри MyShow. Наверняка туда никогда не заходит.

    3. Ну и не помешает сравнить значение FoundHandle с реальным.

    1. Аналог (прототип) строки в заголовочном файле .

    3. Шас поставлю… Хотя никакой отсебятины в коде – просто перевод на си.

    2. Ставил непосредственно:

    Code:
    PostMessage(FindWindow(“TForm1”,0),WM_MyShow,0,0);

    – результат тот же. Или Вы имеете ввиду

    Code:
    if (FoundHandle == FindWindow(“TForm1”,0) {
    PostMessage(FoundHandle,WM_MyShow,0,0);
    }
    Old
    Participant
    Code:
    //—————————————————————————
    #define WM_MyShow WM_USER+1
    #include
    //…
    TForm1 *Form1;
    //—————————————————————————
    void TForm1::MyShow(TMessage &m)
    {
    Show();
    }
    //—————————————————————————
    //…
    //—————————————————————————
    void __fastcall TForm1::mniShowApiClick(TObject *Sender)
    {
    HWND hWnd,FoundHandle;
    FoundHandle = FindWindow(“TForm1”,0);
    PostMessage(FoundHandle,WM_MyShow,0,0);
    // ShowWindow(hWnd,SW_SHOW);
    }
    //—————————————————————————

    Ошибок нет, окна тоже 🙁 .

    Old
    Participant
    'Torbins' wrote:

    1. ExtendedBorders включены? Попробуйте выключить.

    2. Вообще использовать ShowWindow действительно не стоит.

    3. Вместо этого лучше создать обработчик кастомного сообщения, который будет вызывать Show. И соответственно из других прог отсылать именно это сообщение.

    1. Все настройки – по умолчанию, т.е., ExtendedBorders выключены.

    2. С таким же успехом можно советовать не использовать АС.

    3. Совет хорош примером 🙂 .

    Спасибо.

    Old
    Participant
    'Support' wrote:

    В design-time IDE не даст изменить Width или Height на величину меньше 150, но оказывается Builder позволяет сделать это в ран-тайм, даже если стоит RangeChecking <_< в этом все дело. Спасибо за наводку, у меня получилось уже вопроизвести проблему, скоро поправлю. PS. В вашей демке не было этого, поэтому в ней не воспроизводилось.

    Спасибо, Support.

    in reply to: MessageBox #47215
    Old
    Participant

    ну и хрен с ним… с текстом… главное, что красиво… как и у меня… с увеличительным стеклом… и никто даже не чешется…

    Old
    Participant
    'Support' wrote:

    Уже есть такое ограничение, только на размере 150х150.

    Вообще, странно, что появилась такая проблема. Я пытаюсь повторить, но не получается, даже с вашей демкой.

    Пока что изучаю это все 🙂

    А у меня все стабильно.

    И в Инспекторе объектов я не нашел “ограничения, даже на размере 150х150”.

    in reply to: Access violations – SkinManager1GetMenuExtraLineData #47152
    Old
    Participant
    'Support' wrote:

    Уже должно работать.

    на вас, уважаемый Support , и испытал 😀 , как бы работает 🙂 , спасибо.

    и на себе, любимом, потренировался – работает ! :a1:

    Old
    Participant
    'Postscripter' wrote:

    1) “Непонятный” означает “непонятно зачем оно нужно”

    2) тоже что и (1). но программа ваша – тут я вам не советчик

    почему бы и нет, если совет дельный 🙂

    Old
    Participant
    'Postscripter' wrote:
    1. Вместо отображения непонятного диалога

    2. следовало бы послать предыдущему экземпляру программы сообщение,

    3. по которому оно выскочит в центр экрана.

    4. Ведь почему пользователь запускает вторую копию? Потому что потерял первую ^_^

    1. Единственное, чем могу вам помочь по этому поводу – это советом учить английский, будет полезен не только в данном случае.

    2. Единственное, что могу вам посоветовать – это внимательно читать тему, в которой вы предполагаете разместить ваше сообщение (сообщение #4):

    Quote:
    Настройки повторного запуска и отображения соответствующего сообщения при этом присутствуют по умолчанию.

    3. Это предусмотрено.

    4. Логика данной программы не предполагает одновременного существования двух копий приложения, хотя такая возможность пользователю предоставлена.

    Для вас персонально объясняю:

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

    in reply to: Access violations – SkinManager1GetMenuExtraLineData #47111
    Old
    Participant
    'alex000' wrote:
    Я имел ввиду …

    ага … [BCC32 Error] untFormSettings.cpp(132): E2190 Unexpected } … шучу, конечно 🙂

    Все супер :a7: .

    Спасибо, alex000 .

    Почему, когда я нажимаю – впервые за текущие сутки – зелененькую кнопулечку с плюсиком, то получаю вот такое уведомление :

    in reply to: Access violations – SkinManager1GetMenuExtraLineData #47109
    Old
    Participant
    'alex000' wrote:

    а в отладчике разве не видно что Glyph = NULL?

    Наверно надо добавить строчку:

    Code:
    Glyph = new Graphics::TBitmap();

    а это :

    Code:
    Glyph = menu_glyph;

    ? те же яйца, только в профиль ? или я чего не понял – куда добавить ?

    in reply to: Access violations – SkinManager1GetMenuExtraLineData #47107
    Old
    Participant
    'alex000' wrote:
    1. Как можно убедится – В демке – ничего не удаляется.

    Очевидно, AC сама удаляет этот битмап – иначе получается что:

    Code:
    ВашОбработчикСобытия(ссылка на битмап *Glyph)
    {
    СоздаемБитмап Glyph

    УдаляемБитмап Glyph
    }

    2. Спрашивается, где можно использовать, этот битмап, кроме вашего обработчика?

    И не надо меня убеждать что это не очевидно 🙂

    3. А Support`у можно посоветовать добавить куда-нибудь в хелп информацию о том что битмап удаляется AC.

    1. Шас убедюсь 🙂 .

    2. Если в ресурсе – стандартная иконка приложения – то везде 🙂 .

    Хотя я охотно верю вам на слово, уважаемый alex000, и не без оснований :a7: .

    3. ой, я вас умоляю … У уважаемого Support`а и без этого забот – выше крыши 🙁 .

    Вопрос про

    Code:
    Glyph->LoadFromResourceName((int)HInstance,”BITMAP_2″); // = menu_glyph;

    – что позволило бы избежать “мутных мест”,

    все еще актуален .

    Old
    Participant
    'alex000' wrote:

    В двух словах: добавляете в проект дата-модуль…

    Спасибо, alex000, все получилось 🙂 . Как видно из фотографии, скинированный диалог есть, а кнопочки для его вызова нет, т.е., скинируется именно диалог при попытке повторного запуска приложения.

    В двух словах 🙂 : Что сделал дата-модуль ?

    Old
    Participant
    'Mike-Aiki' wrote:
    1. Добавить в программе настройку поведения при запуске других экземпляров приложения – разрешить или запретить, без вывода всяких окон диалога, что само по себе IMHO вредно.

    2. В данном случае – с чего это окно будет скинировано, если вызывается до создания формы с SkinManager? 😉

    1. Настройки повторного запуска и отображения соответствующего сообщения при этом присутствуют по умолчанию.

    2. Это понятно, в том и суть вопроса.

    Спасибо, Mike-Aiki.

    'alex000' wrote:
    Можно посоветовать 2 варианта:

    1 – вместо MessageBox показывать свою форму, на которой будет свой SkinManager

    2 – можно перед показом MessageBox создать TDataModule, в котором будет SkinManager

    Второй вариант, имхо проще 🙂

    1. Рассматривалось, как говорится, овчинка выделки не стоит, имхо.

    2. Вот это уже мысль. Можно подробнее?

    Спасибо, alex000/

    in reply to: Артефакты – Скин WMP 2008 sPanel #47089
    Old
    Participant

    При более пристальном исследовании оказалось, что иконки “выпадают” также в РАД ХЕ2.

Viewing 20 posts - 1 through 20 (of 51 total)