Конференция "Основная" » Написал универсальную функцию прозрачности окон.
 
  • homm © (26.12.07 00:00) [20]
    > [18] Черный Шаман   (25.12.07 23:54)
    > Кстати, DoubleBuffered у контролов стоит?

    Демка та же, стоит.

    Если все равно не понятно, о чем я, вот так еще сделай:
    procedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
    begin
     SkinVisualControl1.Left := X - (SkinVisualControl1.Width div 2);
     SkinVisualControl2.Left := X - (SkinVisualControl2.Width div 2);
     //SetLeft(SkinVisualControl1, X - (SkinVisualControl1.Width div 2));
     //SetLeft(SkinVisualControl2, X - (SkinVisualControl2.Width div 2));
     SkinVisualControl1.Refresh;
     SkinVisualControl2.Refresh;
    end;


    Только таймер отключи. А потом разремарь мой вариант и заремарь SkinVisualControl1.Left. Почувствуй, как говориться, разницу :)
  • homm © (26.12.07 00:06) [21]
    Есть, кстати, еще одна досада. Положи на форму ричедит, попробуй по нему «проехаться». Эту гадость вообще ни одна прозрачность не берет :)
  • Черный Шаман (26.12.07 00:09) [22]
    homm ©   (26.12.07 00:00) [20]
    SetLeft чуть быстрее, но это и понятно.

    Вполне прилично по скорости для прозрачных/полупрозрачных панелек если их сделать только парочку для крутоты.
  • homm © (26.12.07 00:12) [23]
    > [22] Черный Шаман   (26.12.07 00:09)
    > SetLeft чуть быстрее, но это и понятно.

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

    У меня Д7. Новее нет ничего сейчас на машине.
  • Черный Шаман (26.12.07 00:14) [24]

    > homm ©   (26.12.07 00:06) [21]
    >
    > Есть, кстати, еще одна досада. Положи на форму ричедит,
    > попробуй по нему «проехаться». Эту гадость вообще ни одна
    > прозрачность не берет :)


    Для большинства случаев хватит. Даже в Vista нормальной прозрачности дочерних элементов нет. Хотите полных наворотов - берите QT.

    Или же я обдумываю о создании библиотеки визуальных контролов через Direct3D. Нужно же загрузить процессорные мощности? :)
  • homm © (26.12.07 00:27) [25]
    > [24] Черный Шаман   (26.12.07 00:14)
    > Или же я обдумываю о создании библиотеки визуальных контролов
    > через Direct3D. Нужно же загрузить процессорные мощности?
    > :)

    Скорее ноборот, разгрузить ;)
  • PEAKTOP © (26.12.07 06:24) [26]
    Ребята, бросайте курить эту гадость ! :)

    Помоему, начиная с Delphi7 (или раньше ?) давно уже есть
    TCustomForm.AlphaBlendValue := [0..255];
    TCustomForm.AlphaBlend := [true || false];

    И все там прозрачно: и форма, и дочерние элементы управления ...
  • homm © (26.12.07 07:12) [27]
    > [26] PEAKTOP ©   (26.12.07 06:24)
    > Ребята, бросайте курить эту гадость ! :)

    Хорошо так, со стороны ляпнуть первое, что в голову пришло, и вроде умным показался и напрягатся особо не пришлось. Давай уже сам бросай, включай соображалку.
  • Ketmar_ (26.12.07 11:01) [28]
    > PEAKTOP ©   (26.12.07 06:24) [26]
    молодец. писать научился. осталось научиться думать перед тем как писать.

    зыж у меня, например, тоже была такая же реакция. но я не поддался, и потрудился хотя бы глянуть код перед постом. после чего понял, что не стоит глупости постить.
  • MetalFan © (27.12.07 10:21) [29]
    а для чего в этой функции SetWindowOrgEx ?
  • Черный Шаман (27.12.07 17:33) [30]

    > MetalFan ©   (27.12.07 10:21) [29]
    >
    > а для чего в этой функции SetWindowOrgEx ?


    Не нравится SetWindowOrgEx, можешь использовать SetViewportOrgEx :), только знаки в вычислениях поменяй на противоположные.

    Для того чтобы сместить точку отрисовки на Canvas(HDC).
 
Конференция "Основная" » Написал универсальную функцию прозрачности окон.
Есть новые Нет новых   [134481   +26][b:0][p:0.001]