Конференция "Media" » Как устранить мерцание компонента TImage?
 
  • 647 (24.04.08 18:57) [0]
    И как установить двойную буферизацию TImage? Спасибо.
  • {RASkov} © (24.04.08 19:29) [1]
    > [0] 647   (24.04.08 18:57)
    > И как установить двойную буферизацию TImage?

    Никак... Двойной буфиризацией обладают ВинКонтролы...
    Другими словами выставь ДБ паренту Имагеса....
  • AIK © (24.04.08 20:48) [2]
    Насчет мерцания лучше выводить изображения через канву
    image1.Canvas.Draw(kor_x, kor_y, рисунок);
  • antonn © (25.04.08 08:48) [3]

    > image1.Canvas.Draw(kor_x, kor_y, рисунок);

    image1.picture.bitmap.canvas.draw() если уж на то пошло...
    а то кто нить догадается запихнуть в image картинку в JPEG и потеряет пол дня спрашивая себя, почему АВ вылетает...
  • {RASkov} © (25.04.08 12:54) [4]
    > [3] antonn ©   (25.04.08 08:48)
    > а то кто нить догадается запихнуть в image картинку в JPEG

    Но и в данном случае битмап ничего хранить не будет(т.е. картинки JPG) да и будет размером 0х0 так что ничего видно не будет после draw :)
  • antonn (work) (25.04.08 19:08) [5]
    а до draw скорее всего не дойдет, зато ругнется вполне себе честно %)
  • general_zero (12.05.08 03:22) [6]
    попробуй прописать в OnCreate формы следующее
    DoubleBuffered := true;


    Поможет.
  • genaonyx (20.08.09 10:02) [7]
    Самый лучший способ устранить мерцание полностью timage это
    Self.Image1.Parent.DoubleBuffered := true;

  • ramsu (27.10.09 00:05) [8]
    Спасибо! Долго искал, помогло DoubleBuffered := true;
    Потом поставил Self.Image1.Parent.DoubleBuffered := true; Не знаю чем они отличаются, на вид одинаково работают...
  • Омлет © (27.10.09 00:53) [9]
    > [8] ramsu   (27.10.09 00:05)
    > на вид одинаково работают

    Потому что выставляют двойную буферизацию одному и тому же контролу - тому, на котором Image.
  • Eretik (04.02.10 20:41) [10]
    Спасибо огромное! Уж не знал что и делать с этим.
  • Andrey_MM (22.03.14 15:42) [11]
    Self.Image1.Parent.DoubleBuffered := true;    - этот рецепт мне помог
    DoubleBuffered := true;                              - а этот нет
  • Лакримакристи (25.03.14 10:18) [12]
    Andrey_MM, Некропостер, некропостер! Труляляля-труляля! >:3

    Зависит от того где лежало Image1.

    Self - это в подавляющем большинстве случаев = Form1
    Image1 - картинки и всё остальное "принадлежат" Form1, но "лежать" могут не на самой Form1, а например на Form1.Panel1
    Image1.Parent - это то где "лежит" Image1, может быть Form1, Panel1, итд

    Короче вот вам:

    procedure TForm1.FormCreate(Sender: TObject);
    var i: Integer;
    begin
    for i:=0 to ComponentCount-1 do
         if Components[i] is TWinControl then
               TWinControl(Components[i]).DoubleBuffered:=true;
    end;

 
Конференция "Media" » Как устранить мерцание компонента TImage?
Есть новые Нет новых   [118624   +10][b:0][p:0.001]