Hab numehr diverses zum Thema "Flackern" nachgesucht, bin aber nicht wirklich fündig geworden.
"DoubleBuffered" an/aus in der OSD-Form bringt nichts.
Beim TImage scheint es so was nicht zu geben ?
Folgendes probiert:
Delphi-Quellcode:
procedure TForm_OSD.Init(BitMap : TBitMap);
begin
if Assigned(Bitmap) then
begin
Image1.Picture.Bitmap.Assign(BitMap);
end;
end;
procedure TForm_OSD.Update(BitMap : TBitMap);
begin
if Assigned(Bitmap) then
begin
Image.Picture.Bitmap.Canvas.Draw(0, 0, Bitmap);
end;
end;
Ich rufe einmal INIT auf und danach nur UPDATE.
Das funktioniert zwar (auch) und flackert nicht - ABER:
... zeigt eine Weile meine Änderungen des FBMOSD an, bleibt dann aber einfach "stehen" (Bildinhalt bleibt da).
D.h., das wo zuvor immer blankes Panel oder flackerndes Image zu erwarten war.
Mir gehen die Ideen aus ... was ist das ?
Nachtrag:
BitMap FBMOSD hat immer den gleichen Zeiger und die gleichen Abmessungen - ist da der interne Speicher weg/woanders ???