TCount

Forum Replies Created

Viewing 20 posts - 501 through 520 (of 560 total)
  • Author
    Posts
  • in reply to: Двойной запуск #51240
    TCount
    Participant

    Не видать прикрепленей чот)

    Но я делаю так:


    ….

    BEGIN

    CreateMutex(Nil, True, '9999');

    if GetLastError=ERROR_ALREADY_EXISTS then begin

    if ParamCount=0 then ShowMessage('Неее, харе уже запускать!:)');

    EXIT;

    end;

    Application.Initialize;

    TCount
    Participant
    'elpik' wrote:

    Для такого, обычно, используют ViewStyle = vsReport

    В своих проектах постоянно юзаю sListView – никаких проблем не испытываю…

    Никаких проблем? А что насчет этой: Про ползунок

    TCount
    Participant
    'szimin' wrote:

    демонстрация проблемы:

    http://youtu.be/nlV0WCdRomo

    Архив с исходниками приложен: [attachment=6578:DemoBug.zip]

    AlphaControls 8.50, Delphi 2009, Windows 7,8

    Подтверждаю! Вообще, с ListView'ом масса проблем(

    TCount
    Participant
    'Mike' wrote:

    Можно проще:

    Code:
    PrepareForAnimation(sPageControl1);
    sPageControl1.ActivePageIndex := N;
    AnimShowControl(sPageControl1, 200);

    Я и не сразу нашел эти функции, они в модуле sVclUtils. Не докумментировано. Хотя можно было бы и покопаться)

    TCount
    Participant
    'LuxCore' wrote:

    Эффект появления/исчезновения содержимого вкладок

    Чуть неправильно было) Вот, попробуй лучше это:


    procedure TForm14.Button1Click(Sender: TObject);

    var MCur,PCur: tpoint;Tab: byte;rect: trect;

    begin

    Tab:=2;

    rect:=sPageControl1.TabRect(Tab);

    PCur:=sPageControl1.ClientToScreen(Point(0, 5));

    inc(PCur.X,Rect.Left+10);

    MCur:=mouse.CursorPos;

    setcursorpos(PCur.X,PCur.Y);

    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, PCur.X, PCur.Y, 0, 0);

    setcursorpos(MCur.X,MCur.Y);

    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, PCur.X, PCur.Y, 0, 0);

    end;

    P.S. Tab – номер закладки, на которую нужно переключиться

    Или как функцию:

    Function GoTab(Tab: integer): boolean;

    var MCur,PCur: tpoint;rect: trect;

    begin

    TRY

    rect:=sPageControl1.TabRect(Tab);

    PCur:=sPageControl1.ClientToScreen(Point(0, 5));

    inc(PCur.X,Rect.Left+10);

    MCur:=mouse.CursorPos;

    setcursorpos(PCur.X,PCur.Y);

    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, PCur.X, PCur.Y, 0, 0);

    setcursorpos(MCur.X,MCur.Y);

    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, PCur.X, PCur.Y, 0, 0);

    result:=true;

    EXCEPT result:=false;END;

    end;

    TCount
    Participant
    'LuxCore' wrote:

    При нажатии на радиобутоны необходимо программное переключение вкладок pagecontrol`а, вкладки не видимые. Нужно для того, чтобы плавный эффект появление/исчезновения содержимого остался.

    Спасибо.

    Как-то странно и непонятно звучит “переключение невидимых вкладок, чтобы остался эффект появления/исчезновения”. А зачем невидимым вкладкам этот эффект?

    in reply to: Куда пропадает ползунок? #51220
    TCount
    Participant

    Неужели никто с этим не сталкивался и только я один такое наблюдаю?)))

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

    актуальны почти стандартные ScrollBar'ы…

    in reply to: Неувязочка с AlphaHints #51219
    TCount
    Participant
    'Support' wrote:

    Проблема в пакете, думаю в следующем релизе будет все Ок )

    Спасибо, что рассмотрели мою проблему)

    in reply to: Неувязочка с AlphaHints #51217
    TCount
    Participant
    'Support' wrote:

    Спасибо, сегодня буду смотреть.

    Спасибо, буду ждать.

    in reply to: Минусовые значения в DecimalSpinEdit #51216
    TCount
    Participant
    'Alfatester' wrote:

    При вводе минуса, а потом числа перед минусом возикает ошибка.

    Число перед минусом должно быть блокировано.

    Скрин и код приатачил.

    Есть такое…

    Как альтернативу, могу предложить следующий код:


    procedure TForm1.sDecimalSpinEdit1KeyPress(Sender: TObject; var Key: Char);

    var str: string;

    begin

    str:=sDecimalSpinEdit1.Text;

    if length(str)>0 then if (str[1]='-')and(sDecimalSpinEdit1.SelStart=0) then if key<>'-' then key:=#0;

    end;

    in reply to: Неувязочка с AlphaHints #51214
    TCount
    Participant
    'elpik' wrote:

    Попробуйте уменьшить высоту исходного PNG

    Я обычно с маленькой высотой PNG и делал все проекты, но в этот раз это не совсем меня устроило, так как в этот раз у меня в качестве фона градиент. Получается, что если подсказка будет в несколько строк, то этот градиент неприятно растянется.

    'Support' wrote:

    Можно пример посмотреть? Тогда точно скажу что надо сделать )

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

    Надеюсь на помощь:)

    P.S. Возможно, Вы посоветуете использовать сразу оба PNG, но это немного накладно, так как у меня свои скины и под каждый из них разные подсказки (PNG загружаются программно). Хотелось бы какой-то оптимальный вариант:)

    in reply to: По поводу настройки AlphaHints #51210
    TCount
    Participant

    Покопался чуток в AlphaHints и нашел все, что мне нужно было:)

    Если кому интересно, то программно настраиваются бордюры и прочее для подсказки в самом PNG, имеющем тип TAchintImage.

    Например, простая загрузка нового изображения в AlphaHints в первый итем (на Delphi):


    procedure TForm1.Button1Click(Sender: TObject);

    var AHImg: TAchintImage;

    begin

    AHImg:=TAchintImage.Create(sAlphaHints1.Templates.Items[0]);

    AHImg.Image.LoadFromFile('путь к PNG…');

    //настройки бордюров (Left,Top,Right,Bottom)

    with AHImg.BordersWidths do begin … end;

    //настройки отступов контента (Left,Top,Right,Bottom)

    with AHImg.ClientMargins do begin … end;

    //для включения прозрачности

    AHImg.Image.AlphaFormat:=afPremultiplied;

    sAlphaHints1.Templates.Items[0].ImageDefault:=AHImg;

    AHImg.Free;

    end;

    in reply to: Проблема с мерцанием формы #51182
    TCount
    Participant
    'Support' wrote:

    Можно как-то посмотреть в работе на эти формы? Я буду знать причину точнее.

    К сожалению, такой возможности нет, но скорее всего это всего лишь я намудрил.

    Кстати, еще заметил, не относящееся к данной “проблеме”:

    Дело в том, что по неизвестным причинам свойсво Doublebuffered, установленное (например, форме) в среде разработке, сбрасывается при запуске.

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

    Работает только, если программно ее устанавливать.

    Какое-то время я недоумевал, почему ListView постоянно моргает, пока не нашел этот небольшой глюк.

    in reply to: Собственная отрисовка в Title? #51166
    TCount
    Participant
    'elpik' wrote:

    Вот тестовый пример:

    Правда с некоторыми скинами вылезают артефакты 🙂

    Интересный пример:) Но я все равно отказался от всего, использую стиль борюров bsnone. Поэтому панель можно и в качестве заголовка считать.

    Много неприятностей с этими бордюрами и системными заголовками, я сделал иллюзию этого всего. Ничего не мигает, не тормозит, все работает как нужно. И выглядит нормально, по-моему:)

    AlphaControls очень сильно помогли с решением всех вопросов, связанных с дизайном. Раньше я всё делал на одних Image 😆 Это было жестоко.

    in reply to: И снова про ExtendedBorders #51161
    TCount
    Participant
    'Support' wrote:

    Одновременно для двух форм не получится это сделать.

    Поэтому пришлось отказаться от ExtendedBorders и рисовать обычные рамки. В приницпе, это даже лучше.

    Но а может как-то тень вокруг всего окна можно приделать, не используя ExtendedBorders и не прибегая к установке обычной тени средствами WinApi?

    in reply to: Собственная отрисовка в Title? #51152
    TCount
    Participant
    'elpik' wrote:

    Вопросы:

    1) Такое возможно средствами GDI, или для этого понадобится GDI+?

    2) Можно ли добавить такой компонент в палитру который будет прокручивать текст над прямоугольником контрола?

    Вот как раз я и написал копмонент на основе прозрачного канваса, на котором рисуется текст. И думал его добавить в заголовок.

    in reply to: Собственная отрисовка в Title? #51140
    TCount
    Participant
    'Support' wrote:

    Не реально.

    А в TsTitleBar можно слева и справа создать пустые пункты и менять попиксельно их ширины.

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

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

    В принципе, от этой бегущей строки можно и отказаться. Только меня смущает еще один нюанс – изменение расстояния между итемами в tsTitleBar.

    Например, мне нужно уменьшить расстояние между несколькими кнопками. Искал в свойствах самого tsTitleBar'а, а в редакторе скинов нашел только установку отступов от границ заголовка.

    in reply to: Собственная отрисовка в Title? #51138
    TCount
    Participant
    'Support' wrote:

    Это можно попробовать сделать с помощью TsTitleBar.

    Динамически текст менять, а компонент сам нарисует.

    Вы имеете ввиду программно менять Caption в итеме TsTitleBar, чтобы получилась бегущая строка?

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

    У меня есть готовый комонент, который я написал (бегущая строка). Я его накладываю на панель и все нормально.

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

    in reply to: Собственная отрисовка в Title? #51136
    TCount
    Participant
    'Support' wrote:

    Через Canvas не получится. Нужно получать контекст устройства окна и на него выводить при получении WM_NCPAINT.

    Спасибо за ответ, что-то подобное пробовал, но наверное все-таки пока буду использовать обычную панель вместо заголовка с TitleBar'ом.

    in reply to: Снова про ExtendedBorders #51135
    TCount
    Participant
    'Support' wrote:

    При изменении AlphaBlend и AlphaBlendValue скины не получают сообщение, что нужно что-то обновить, поэтому такое поведение.

    Бордюры можно сразу обновить вручную:

    if sSkinProvider1.BorderForm <> nil then

    sSkinProvider1.BorderForm.UpdateExBordersPos(Redraw: boolean = True; Blend: byte = MaxByte);

    Огромное спасибо! Именно то, что поддержка прописала :a7:

Viewing 20 posts - 501 through 520 (of 560 total)