elpik

Forum Replies Created

Viewing 20 posts - 61 through 80 (of 132 total)
  • Author
    Posts
  • elpik
    Participant
    'Bash' wrote:

    SkinProvider лежит на форме (забыл написать), Ничего нового не произошло.

    Дайте демку на версии 8.12, если не трудно…

    in reply to: Не прорисовывается грид (v8.11) #49657
    elpik
    Participant
    'Support' wrote:

    Постараюсь выложить исправление в ближайшие дни.

    Спасибо за демку.

    Погорячился я…

    В версии 8.12 по прежнему есть проблемы с прорисовкой DBGrid на некотрорых скинах

    например на скине (Beijing Ext.asz) повторное пере-открытие датасета не прорисовывается…

    при этом нет проблем с прорисовкой на скине (iOS4.asz)

    ЗЫ: С уважением elpik…

    in reply to: Не прорисовывается грид (v8.11) #49629
    elpik
    Participant
    'elpik' wrote:

    +1 у меня ДБ-гриды тоже перестали отрисовываться…

    ОТкатываюсь на 8.10…

    В версии 8.12 проблема была решена…

    Спасибо огромное ^_^

    in reply to: Не прорисовывается грид (v8.11) #49624
    elpik
    Participant

    +1 у меня ДБ-гриды тоже перестали отрисовываться…

    ОТкатываюсь на 8.10…

    in reply to: Проблемы с версией 8.10 #49607
    elpik
    Participant
    'Support' wrote:

    Спасибо за демку, постараюсь исправить в ближайшем релизе.

    В новой версии 8.11 все прорисовывается нормально.

    Спасибо огромное (^_^)

    ЗЫ: топик закрываю. Еще раз большое спасибо (^_^)

    in reply to: Проблемы с версией 8.10 #49531
    elpik
    Participant

    Накидал демку с бажкой…

    При создании Child окошек, на выставленном скине iOS4, фрейм не перерисовывается пока не потянешь за край окна.

    Тут либо проблема в скине либо в отрисовке фрейма…

    (бажка не проявляется на скине AndroidOS)

    Заранее благодарен.

    elpik
    Participant

    Вопрос решен…

    Сам олень, буду над собой работать 🙂

    ЗЫ: Всем спасибо за внимание и поддержку.

    in reply to: русский HELP на компоненты #49297
    elpik
    Participant
    'Support' wrote:

    Новые манулы я думаю сделать онлайн, в таком же формате, как для ASkinEditor : http://www.alphaskin…wdoc.php?lng=ru

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

    Планирую сделать для каждого компонента типа статьи, с картинками, примерами использования и т.п.

    Хотел сначала типа Wiki что-то сделать, но так как планируется, наверное лучше будет. Любой материал можно мне прислать, а я его подправлю если надо и выложу. 🙂

    А почему не хотите Wiki конференцию сделать, там можно и самим вносить исправления и дополнения, вся история хранится… можно оставлять комментарии, одни плюсы, чем просто html страница…

    К томуже неплохо было бы и прием багрепортов организовать…

    ИМХО, Wiki намного лучше во всех смыслах…

    Типичные примеры:

    Словарик по Firebird

    Raudus Wiki

    in reply to: AC под Visual Studio #49152
    elpik
    Participant
    'Alex_S666' wrote:

    ^_^ А под Visual Basic 2010? Будет такое хоть рассматриваться? А то как то другие языки пока нет желания изучать.. 😕

    Вам поможет DevExpress… АС не трогайте 🙂

    in reply to: Не устанавлявается пакет AlphaDB #49090
    elpik
    Participant

    Разобрался 🙂

    Мой косяк был… я не удалил старый пакет с KssListView – основанный на старых версиях альфаскинов…

    Извиняюсь за беспокойство 🙂

    in reply to: Access violation Delphi XE2 #48858
    elpik
    Participant

    что мешает поставить последние скины?

    in reply to: Проблема с некоторыми скинами #48808
    elpik
    Participant

    В общем покопался в коде и разобрался, АСКИН не причем…

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

    А в некоторых из них у меня на событии OnCreate висело обращение к БД, что в данном контексте не имело смысла (мы закрываем приложение, зачем тянуть что-то из БД?)…

    Исправив эти недостатки я перестал получать необработанное исключение…

    Всем спасибо за помощь 🙂

    in reply to: Проблема с некоторыми скинами #48738
    elpik
    Participant
    'Support' wrote:

    Спасибо за код, но не получается воспроизвести. Может можно подключиться удаленно поковыряться? 🙂

    ps. Для чего вызывается ReloadSkin? Что-то не так с загрузкой скина?

    Конечно можно, мой скайп elpik2, как у Вас появится время стукнитесь, и я настрою для вас ТимВьювер… (Если не отвечаю, это значит что я не за компом, а скайп включен на работе постоянно, поэтому на всякий случай заранее извиняюсь…)

    ReloadSkin – хм… я начинал проект довольно давно, потом его отложили и вот сейчас возродили, поэтому изначально версия ASkin была древней и лохматой… Очевидно это результат экспериментов… Дело в том что имя выбранного скина сохраняется в ИНИ-шнике, и при запуске приложения программа “вспоминает” последний выбранный пользователем скин и применяет его…

    Code:
    s:=ExtractFilePath(Application.ExeName);
    if RightStr(s, 1) = '' then s:=s+'Skins'
    else s:=s+'Skins';
    sSkinManager1.Active:=False;
    sSkinManager1.SkinDirectory:=s;
    sSkinManager1.SkinName:=stSkinName;
    sSkinManager1.ReloadSkin;
    sSkinManager1.Active:=True;

    Предполагаю, когда то, без ReloadSkin он просто не срабатывал либо срабатывал частично…

    in reply to: Проблема с некоторыми скинами #48719
    elpik
    Participant
    'Support' wrote:

    Application.Terminate вызывалось при нажатии “Отмена”?

    Да, вот кусок кода при создании главного окна:

    Code:
    //при создании главного окна _—————————————————-
    procedure TfrmMain.FormCreate(Sender: TObject);
    var s: string;
    begin
    FS.ShortDateFormat:='DD.MM.YYYY';
    FS.DecimalSeparator:='.';
    Application.ShowMainForm:=false;
    stVersion := ' версия: v.' + GetFileVersionExt(Application.ExeName);
    SkinPMain.AddedTitle.Text := stVersion;
    //создаем окна
    Application.CreateForm(TfrmLogin, frmLogin);
    Application.CreateForm(TfrmDataModule, frmDataModule);
    //создаем объект обработчик ошибок, включаем его
    ApCatcher:=TgsCatcher.Create(self); //создали екземпляр
    ApCatcher.Enabled:=True; //включили обработчик
    //проверяем есть ли папка Log если нет создаем ее…
    s:=ExtractFilePath(Application.ExeName)+'Log';
    if not DirectoryExists(s) then CreateDir(s);
    //формируем имя Log – файла
    ApCatcher.Log:=ExtractFilePath(Application.ExeName)+'LogReestr'+
    FormatDateTime('_ddmmyyyy_hhnnss',now)+'.log';
    //лог для базы
    {
    frmDataModule.BaseLoger.LogFileName := ExtractFilePath(Application.ExeName)+'LogBase'+
    FormatDateTime('_ddmmyyyy_hhnnss',now)+'.log';
    frmDataModule.BaseLoger.ActiveLogging := True;
    frmDataModule.BaseLoger.ForceSaveLog := True;
    }
    //создаем файл пишем в него о запуске программы
    s:=' Старт приложения. /'+Trim(SkinPMain.AddedTitle.Text)+'/';
    UGlobals.WriteLog(ApCatcher.Log, s);
    //считываем INI выставляем настройки программы
    UGlobals.LoadINI;
    s:=ExtractFilePath(Application.ExeName);
    if RightStr(s, 1) = '' then s:=s+'Skins'
    else s:=s+'Skins';
    sSkinManager1.Active:=False;
    sSkinManager1.SkinDirectory:=s;
    sSkinManager1.SkinName:=stSkinName;
    sSkinManager1.ReloadSkin;
    sSkinManager1.Active:=True;
    //сохраняем IP адрес
    sLocalIP := GetLocalIP;
    //Выставляем Анимацию
    AnimMain.FileName := ExtractFilePath(Application.ExeName)+'Skins13.avi';
    AnimMain.Top := 0;
    AnimMain.Left := frmMain.ClientWidth – AnimMain.Width;
    AnimMain.Active := UGlobals.bAnim;
    chbAnim.Checked := UGlobals.bAnim;
    //логинимся
    if frmLogin.ShowModal = mrOk then
    begin
    frmLogin.Free;
    Application.ShowMainForm := True;
    frmDataModule.OpenProc('USER_DATA_GET', [iUserId]);
    s := frmDataModule.Pr1.ParamValue('ROLE_NAM');
    stBarMain.Panels[0].Text := Trim(s);
    s := Trim(frmDataModule.Pr1.ParamValue('U_SURNAME')) + ' ' +
    Trim(frmDataModule.Pr1.ParamValue('U_NAME')) + ' ' +
    Trim(frmDataModule.Pr1.ParamValue('U_PATRONYMIC'));
    stBarMain.Panels[1].Text := s;
    //закрываем процедуру
    frmDataModule.CloseProc;
    //пишем в лог о входе
    s:=' Вход в систему ('+s+')';
    UGlobals.WriteLog(ApCatcher.Log, s);
    stBarMain.Panels[2].Text := string(frmDataModule.BaseReestr.DBName);
    myMainThread := TMainThread.Create;
    myMainThread.StartedThrd := True;
    if myMainThread.Suspended then myMainThread.Resume;
    end
    else
    begin
    Halt(0);
    //Application.Terminate;
    end;

    end;

    Когда нажимаем “Отмена”, окно логина возвращает mrCancel, в итоге срабатывает ветка else с Halt(0),

    и если закоментить Halt(0); и раскомментить Application.Terminate; появится вышеописанная ошибка, но только на некоторых скинах, на рисунке как раз скин на котором ошибка возникает…

    in reply to: Проблема с некоторыми скинами #48664
    elpik
    Participant

    вечер добрый,

    версия последняя 7.67

    демку собрать не получилось, могу прислать проект но он очень здоровый, и требует подключения к FireBird серверу…

    в демке я пробовал “повториить” ситуацию но ошибка не появлялась…

    Проблему обошел “костылем” вместо Application.Terminate написал Halt(0), ошибка перестала возникать 🙂

    in reply to: TsDBGrid #48498
    elpik
    Participant
    'Support' wrote:

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

    Возможно, самым простым решением на сейчас будет изменение свойства DrawingStyle на gdsClassic при включении скинов.

    Да, действительно помогло, Во всех гридах проекта выставил gdsClassic…

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

    ЗЫ: С уважением elpik…

    in reply to: TsDBGrid #48483
    elpik
    Participant

    Доброго вечера… Снова пытаюсь разобрать как применить собственную закраску грида

    рассмотрев вариант с примером смог добиться чтобы ячейки грида рисовались правильно.

    Для этого я вырвал метод из стандартного DBGrid, подставляя в него нужные цвета…

    Однако линии сетки и незадействованный фон грида по прежнему не закрашиваются как надо…

    В самом конце после прорисовки последней ячейки, вызывается метод:

    Code:
    procedure TsDBGrid.PaintWindow(DC: HDC);
    var
    SavedCanvas : TCanvas;
    bWidth : integer;
    Bmp : TBitmap;
    R, R1: TRect;
    SelNdx :Integer;
    begin
    if FCommonData.Skinned then begin
    if not (csDestroying in ComponentState) then begin
    SavedCanvas := _TCustomControl(Self).FCanvas;
    Bmp := CreateBmp32(Width, Height);
    _TCustomControl(Self).FCanvas := Bmp.Canvas;
    try
    GetClipBox(DC, R);
    Paint;
    if (SkinData.CtrlSkinState and ACS_PRINTING = ACS_PRINTING) then bWidth := 2 else bWidth := 0;
    BitBlt(DC, bWidth, bWidth, Width, Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY);
    finally
    _TCustomControl(Self).FCanvas := SavedCanvas;
    Bmp.Free;
    end;
    end
    end
    else inherited;
    end;

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

    Заранее благодарен: Файл исходника прилагаю…

    in reply to: TsDBGrid #48463
    elpik
    Participant
    'VahaC' wrote:

    на этой странице посмотри пример Image of parent control

    вот прямая ссылка на демо проект http://www.alphaskins.com/sfiles/demos/imageofparent.zip

    Спасибо за инфу. Думаю в будущем поможет, но не сейчас…

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

    Однако именно это свойство заставляет DBGrid рисоваться с белым фоном… Как только убрал, фон установился правильный…

    in reply to: TsDBGrid #48460
    elpik
    Participant

    Заметил что DBGrid на темных скинах красит внутренности грида (область данных) в белый фон…

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

    Если подскажете, выложу обновленный модуль ДБ грида…

    Это модуль отвечающий за отрисовку ячейки грида DrawCell:

    Code:
    var
    DrawColumn: TColumn;
    begin
    CI.FillColor := Color;
    CI.Ready := False;
    if Self.UseRightToLeftAlignment then Canvas.TextFlags := Canvas.TextFlags or ETO_RTLREADING;
    //–тут рисуем заголовок (он работает корректно) ———————-
    if (ARow = 0) and (dgTitles in Options) then begin
    if ACol >= IndicatorOffset then begin
    DrawColumn := Columns[ACol – IndicatorOffset];
    DrawTitleCell(ACol – IndicatorOffset, ARow, DrawColumn, AState); //–вызывается отрисоква заголовка грида
    end
    else begin
    if SkinData.Skinned then begin
    inc(aRect.Right);
    inc(aRect.Bottom);
    DrawIndicator(aRect, False);
    end
    else inherited DrawCell(ACol, ARow, ARect, AState);
    end
    end
    else begin
    //–тут рисуется область данных ——————————
    if DataLink.Active then
    if dgTitles in Options then FActiveRowSelected := ARow – 1 = DataLink.ActiveRecord
    else FActiveRowSelected := ARow = DataLink.ActiveRecord
    else FActiveRowSelected := False;

    if SkinData.Skinned then begin
    if (ACol – IndicatorOffset) < 0 then begin
    ARect.Right := ARect.Right + 1;
    ARect.Bottom := ARect.Bottom + 1;
    DrawIndicator(ARect); //–индикатор
    end
    else inherited DrawCell(ACol, ARow, ARect, AState); //–!!!!!!!!! вот тут вызывается метод из стандартного DBGrid – а он, зараза, красит ячейку в белый!!!! КАК БЫТЬ????!!!!
    end
    else begin
    //–тут рисуются линии для нескинированных ячеек—————
    inherited DrawCell(ACol, ARow, ARect, AState);
    if gdFixed in AState then begin
    if dgColLines in Options then begin
    Canvas.Pen.color := clBlack;
    Canvas.Pen.style := psSolid;
    Canvas.MoveTo(aRect.Right, aRect.Top);
    Canvas.LineTo(aRect.Right, aRect.Bottom + 1);
    end;
    if dgRowLines in Options then begin
    Canvas.Pen.color := clBlack;
    Canvas.Pen.style := psSolid;
    Canvas.MoveTo(aRect.Left, aRect.Bottom);
    Canvas.LineTo(aRect.Right, aRect.Bottom);
    end;
    end;
    end;
    end;
    end;

    Заранее благодарен 🙂

    elpik
    Participant
    'ScS' wrote:

    Если начика одинаковая, зачем триал и фри? 😮

    Триалка для буржуев. Чтоб могли обкатать.

    Всегда ваш Капитан Очевидность 😀

Viewing 20 posts - 61 through 80 (of 132 total)