alex000

Forum Replies Created

Viewing 20 posts - 161 through 180 (of 227 total)
  • Author
    Posts
  • in reply to: ASkinDemo v7.40 – баги TsPageControl #45466
    alex000
    Participant

    Продолжим:

    Пустой TsPageControl без страниц приводит к AV (причем даже desing-time):

    Code:
    object InnerPageControl: TsPageControl
    Left = 100
    Top = 100
    Width = 279
    Height = 50
    end
    in reply to: TsComboBox link error #45442
    alex000
    Participant
    'Геннадий wrote:

    У меня компонента на основе TsComboBox компилируется нормально, но при компоновке выдается сообщение “Unresolved external TsCustomComboBox::ComboWndProc

    Поиск по форуму “Unresolved external” выдает как минимум 2 подходящие темы:

    Не могу скомпоновать наследника TsComboBox в С++ Builder 6

    “Unresolved external…” при наследовании от TsPanel

    Там же есть советы по решению проблемы.

    in reply to: RCDATA AC все версии #45441
    alex000
    Participant

    Неужели размер exe-файла так важен ? У меня типичный размер программы – 12 мегабайт 😉

    Наверное, размер важен для shareware, при распространении через интернет.

    Кстати, упаковка всякими UPX`ами имеет один недостаток – распакованный образ exe-файла постоянно находится в памяти.

    TsTreeView, TsListView, TsMemo – их “внутренности” все равно рисуются системой, не знаю что там может лагать, будем надеется что с морганием удастся справится.

    Фотошоп использует какой-то хитрый своп, а последних версиях вообще – ускорение видеокартой.

    Кстати, ступор при сворачивании/разворачивании через некоторое время может быть связан с вышеупомянутым поведением свопа. У меня дома своп вообще отключен – в результате – программы не тупят, если их развернуть после долгого бездействия 🙂

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

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

    Вопрос в том, позволит ли архитектура альфы работать без кеша, и не будет ли при этом жуткого моргания?

    Насчет Process Explorer – Вы какой параметр смотрели ? Private Bytes показывает реальное количество занимаемой памяти.

    in reply to: RCDATA AC все версии #45419
    alex000
    Participant
    'Feg16' wrote:

    Довольно давно заметил, что при сборке проекта в него включаются такие бинарники как

    А что вас в этом смущает?

    'Feg16' wrote:

    9-12: для чего они собираются в проекте, если я не использую ни калькулятор, ни календарь?

    Далее, зачем в проект включаются строковые ресурсы 3682..3688. Я не использую ни фрейм-адаптеры, ни диалоги, ни другое, что есть в этих ресурсах.

    Можно как-то управлять подключением всех этих ресурсов? http://www.alphaskins.com/forum/public/style_emoticons/default/ph34r.gif

    Если не ошибаюсь, линкер подключает всю библиотеку, даже если из нее используется только один модуль. Единственный вариант управлять этим – делать отдельные пакеты и подключать только нужные (что правда сильно осложняет установку), как сделано например в FastReport. ИМХО, в случае альфы это неоправданно.

    Все таки, к чему такие вопросы? Волнует размер exe?

    'Feg16' wrote:

    Далее еще вопрос. Почему при использовании альфаскинов, легкий проект при первоначальном запуске кушает аж 17 метров памяти, при 6 метрах с выключенными скинами?

    Дело в том, что обычные, не зашкуренные приложения еще со времен первых версий Windows, для перерисовки своего содержимого – тупо рисуют это содержимое каждый раз заново – это относительно быстро и экономит память. Но альфа не может себе позволить такой способ – были бы адские тормоза и моргание при каждой перерисовке каждого градиента итд итп

    Поэтому, альфа отрисовывает свои контролы в кеш, а потом уже выводит его на экран. Это радикально ускоряет прорисовку и устраняет моргание, но кеш – битмапы – занимают память, причем не мало – битмап размером в весь экран у меня весит около 4 мб.

    С этим – ничего не поделать 🙁

    'Feg16' wrote:

    Однако если открытый проект свернуть, а потом развернуть – то с 17 метров резко упадет до 10 метров и более не будет подниматься. Эт шо за чудеса?

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

    Используйте ProcessExplorer, там таких фокусов нет.

    in reply to: Неверная работа AddImageFromRes #45410
    alex000
    Participant
    'Support' wrote:

    В следующей версии Items тоже будут заполняться.

    Спасибо :a3:

    В AlphaControls v7.34 – все в порядке.

    in reply to: Фиксированный размер окна #45405
    alex000
    Participant

    см. свойство формы Constraints

    in reply to: помогите установить компонент #45404
    alex000
    Participant

    Это из этой темы что-ли?

    Можно было и ссылку дать, а то пришлось искать.

    Черт. Это же тема почти пятилетней давности! 😮

    Скорее всего, данный там объектник не пойдет под delphi 7 – он собран под более новым delphi.

    Альфа последних версий почти нормально скинит этот самый диалог поиска. “Почти” – это TDBCheckBoxEh – с ним остались проблемы которые вряд ли удастся решить, т.к. TDBCheckBoxEh не является наследником TCheckBox.

    Я мог бы выложить исходник DBGridEhFindDlgsMy.pas, но опасаюсь нарушить копирайты – все-таки, это всего лишь модификация оригинального модуля EhLib.

    Могу посоветовать Вам самим проделать “скинирование”, это совсем не сложно:

    1) Скопировать к себе и переименовать DBGridEhFindDlgs.pas и DBGridEhFindDlgs.dfm

    2) Заменить TDBCheckBoxEh на TsCheckBox

    В старой теме есть чуть более подробная инструкция.

    in reply to: Ошибка в файле sSkinProvider.hpp для CB6 #45403
    alex000
    Participant

    Глюк компилятора в том что это “machine generated header”:

    Code:
    // Borland C++ Builder
    // Copyright (c) 1995, 2005 by Borland Software Corporation
    // All rights reserved

    // (DO NOT EDIT: machine generated header) 'Sskinprovider.pas' rev: 10.00

    Автор AlphaControls тут как-бы не причем – этот файл создает компилятор Delphi. Причем компиляторы последних версий Delphi, похоже лишены этого недостатка.

    Есть идеи как это исправить ? (кроме идеи вручную каждый раз исправлять hpp)

    in reply to: Ошибка в файле sSkinProvider.hpp для CB6 #45400
    alex000
    Participant
    alex000
    Participant

    Вообще-то это известный косяк всех не-unicode программ.

    Windows определяет кодировку текста по выбранной в момент копирования раскладке клавиатуры.

    В моем случае это воспроизводится так:

    1 – В TMemo ввести текст на русском

    2 – переключить раскладку на LV (скорее всего подойдет любая не русская и не английская раскладка)

    3 – скопировать текст

    4 – вставить в любую unicode-программу (вроде блокнота)

    В любом случае – альфа тут не причем.

    in reply to: Не изменить высоту sComboBox #45272
    alex000
    Participant

    1) Если не ошибаюсь – с обычным TComboBox та же история. На форуме это несколько раз обсуждалось, можно поискать.

    Могу посоветовать помучить свойства Constraints->MinHeight, и возможно событие OnMeasureItem.

    2) Для TsLabel и остальных компонентов альфы предусмотрено свойство SkinData->CustomColor.

    С обычным контролами вроде TLabel это не пройдет 🙁

    Могу посоветовать поставить им Tag = -98

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

    alex000
    Participant

    Все намного проще – http://www.sql.ru/forum/actualthread.aspx?tid=693708

    В двух словах – это баг VCL, который проявляется при условии WindowState = wsMaximized и Position = poScreenCenter

    .dfm

    Code:
    object Form1: TForm1
    Left = 0
    Top = 0
    Caption = 'Form1'
    ClientHeight = 198
    ClientWidth = 381
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    KeyPreview = True
    OldCreateOrder = False
    Position = poScreenCenter
    OnShow = FormShow
    PixelsPerInch = 96
    TextHeight = 13
    end

    .pas

    Code:
    unit Unit1;
    interface
    uses Windows, Classes, Graphics, Forms, StdCtrls, Controls;

    type
    TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    private
    public
    end;
    var
    Form1: TForm1;

    implementation
    uses Unit2;

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    // Position := poDesigned; // раскомментируте эту строчку – и все бует OK 🙂
    end;

    procedure TForm1.FormShow(Sender: TObject);
    begin
    WindowState := wsMaximized;
    end;

    end.

    in reply to: отрисовка TsBitBtn в AC 7.27 #44472
    alex000
    Participant

    В версии 7.29 все нормально. Спасибо!

    in reply to: AV из-за AnimEffects.Minimizing #44471
    alex000
    Participant

    Да, спасибо, сейчас нормально, не падает.

    Мне наверно стоило сразу выложить пример на Delphi:

    Code:
    // вставить – перед строчкой Application.Initialize;
    // на форме – sSkinManager1 и sSkinProvider1
    Form1 := TForm1.Create(Application);
    Form1.Show();
    Form1.Update();

    while not Application.Terminated and Assigned(Form1) and Form1.Visible do
    Application.HandleMessage();
    // … проверка авторизации, не прошел – ExitProcess(0);
    Form1.Free();

    В любом случае, еще раз спасибо, вопрос закрыт.

    in reply to: отрисовка TDBEditEh в AC 7.27 #44470
    alex000
    Participant

    Спасибо! Теперь, в v7.29 все нормально.

    in reply to: C++ Builder 6 #44466
    alex000
    Participant

    Странно это – по идее без acntBCB6_R.bpl или acntBCB6_R.lib ничего работать не будет..

    Может быть случайно вместо Compile была попытка сделать Build ?

    И почему с предыдущей версией все работало ? Может быть остались “следы” от старой версии ?

    В любом случае – раз все заработало – мои вопросы считать риторическими 🙂

    in reply to: C++ Builder 6 #44463
    alex000
    Participant

    Чесно говоря, не знаю в чем косяк, но могу посоветовать заглянуть в соседнюю тему о BCB2006 – http://www.alphaskins.com/forum/index.php?showtopic=1293&view=findpost&p=18483

    Там как раз есть инструкция для такого случая, для BCB6 тоже должно помочь.

    in reply to: AV из-за AnimEffects.Minimizing #44445
    alex000
    Participant

    Нет, в v7.27 оно по-прежнему..

    Демка – создать новый проект в С++ Builder, и в Project1.cpp дописать:

    Code:
    //—————————————————————————
    #include
    #pragma hdrstop
    //—————————————————————————
    USEFORM(“Unit1.cpp”, Form1);
    //—————————————————————————
    #include “Unit1.h”
    //—————————————————————————
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
    // на форме – sSkinManager1 и sSkinProvider1
    Form1 = new TForm1(Application);
    Form1->Show();
    Form1->Update();

    while ((!Application->Terminated)&&(Form1)&&(Form1->Visible))
    Application->HandleMessage();
    // … проверка авторизации, не прошел – ExitProcess(0);
    Form1->Free();

    // .. итд
    Application->Initialize();

    Думаю, под делфи эта же идея тоже сработает.

    Если такую форму свернуть – кликом по значку проги на таск-баре – получаем AV.

    Подозреваю, что причина AV в том что Application->MainForm = NULL

    alex000
    Participant

    Если срочно – анимацию сворачивания ведь можно отключить – SkinManager.AnimEffects.Minimizing.Active = false

    alex000
    Participant

    Недавно словил очень похожий глюк, но в демке тоже повторить не получилось..

    Так что присоединяюсь к ожиданию результатов анализа 🙂

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

Viewing 20 posts - 161 through 180 (of 227 total)