Конференция "KOL" » Отрисовка GrushButton
 
  • Vinum (29.11.07 19:13) [0]
    По нажатии на GrushButton1 (OnClick) я делаю form1.grushbutton1.visible:=false;
    При следующем появлении этой кнопки по программе, она отрисовывается как-бы полунажатой, а не какой была изначально. Как это вылечить ???
  • Vladimir Kladov © (29.11.07 20:57) [1]
    Invalidate?
  • homm © (29.11.07 21:12) [2]
    ХотФикс:

    function WndProcGRush(Ctl_: PGRushControl; var Msg: TMsg; var Rslt: Integer): Boolean;
    ………
           WM_SHOWWINDOW:
               begin
                   if Ctl_.Enabled then
                       TU := [tuDef]
                   else
                       TU := [tuDis];
                   Ctl_.CheckNeedUpdate(TU, Data.fNeedDib);
                   Data.fResultNeedUpdate := true;
               end;

  • Vinum (29.11.07 22:45) [3]
    Invalidate не помогает
    "Хотфикс" вписал в KOLGRushControls.pas
    что надо сделать чтобы появились изменения в работе?
  • homm © (29.11.07 22:49) [4]
    А что, нет изменений?
    Точно то сделал?
    В процедуре WndProcGRush в конце обработчика события WM_SHOWWINDOW добавилась строка:
    Data.fResultNeedUpdate := true;

  • Compiler © (29.11.07 22:56) [5]
    //Появление
    grushbutton1.Style:= grushbutton1.Style or  WS_VISIBLE;
    form.Invalidate;

    //Скрытие
    grushbutton1.Style:= grushbutton1.Style and not  WS_VISIBLE;
    form.Invalidate;

  • homm © (29.11.07 23:00) [6]
    > [5] Compiler ©   (29.11.07 22:56)

    инвалидат не нужен при появлении. А такие сложности к чему?
    grushbutton1.visible никуда не делось
  • Vinum (29.11.07 23:22) [7]
    Все сделал, все заработало, всем спасибо, но возник вопрос другой, немного не в тему :), напишу здесь

    Как мне разместить на одной панели другие панели? А то они размещаются на форме, у меня както случайно получилось несколько панелей на панель засунуть, а сейчас никак не выходит, ctrl+x с формы ctrl+v на панель ничего не дает, панели лежат на форме
  • homm © (30.11.07 07:11) [8]
    > [7] Vinum   (29.11.07 23:22)
    > ctrl+x с формы ctrl+v на панель

    Вот так и размещать. все у тебя с первого раза не получается.
  • Barloggg (30.11.07 08:50) [9]
    проверь состояние AcceptChildren на пенелях. иногда они "гуляют".
  • Vladimir Kladov © (30.11.07 19:36) [10]
    2homm: а мой хот фикс вы не видели? (У меня не падало больше после добавки тех поправок, что я выслал).
  • homm_ (30.11.07 21:10) [11]
    > [10] Vladimir Kladov ©   (30.11.07 19:36)
    > а мой хот фикс вы не видели?

    Видел. В суть не вникал, к сожалению. Если работает, может здесь выложить.
    procedure BitmapAntialias2X(SrcBitmap, DstBitmap: PBitmap);
    ...........
    begin
     if DstBitmap.DIBBits = nil then Exit; //+++
     if SrcBitmap.DIBBits = nil then Exit; //+++
       {$IFDEF USE_MMX}
    ...........

    ...........
    procedure BlendBitmaps(var DestBitmap, FromBitmap, ToBitmap: PBitmap; Factor: Integer; ClipRect:TRect);
    ...........
    begin
     if DestBitmap.DIBBits = nil then Exit; //+++
     if FromBitmap.DIBBits = nil then Exit; //+++
     if ToBitmap.DIBBits = nil then Exit;   //+++
     if ClipRect.Left >= ClipRect.Right then Exit; //+++
     if ClipRect.Top >= ClipRect.Bottom then Exit; //+++
     {$IFDEF USE_MMX}



    ЗЫ Чето меня форум не узнает. Неужто опять забанили. Вроде не за что.
  • homm © (30.11.07 21:13) [12]
    Сорри. Тест.
 
Конференция "KOL" » Отрисовка GrushButton
Есть новые Нет новых   [134431   +10][b:0][p:0.002]