/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
flickering i en grafisk komponent?
Fra : Thomas Eg Jørgensen


Dato : 04-02-03 18:09

Hej

Jeg har bygget en grafisk komponent som brugeren kan ændre på med musen, men
jeg har lidt problemer med at det "flimre"..

jeg har haft lidt kik på doublebuffer, jvf. tidligere diskutioner i denne
nyhedsgruppe, men jeg kan ikke rigtig finde en løsning der passer til mit
problem(hvor jeg skal fjerne de flickering i min komponent)...

Jeg har forsøgt at sætte ejeren af min komponent til doublebuffer:=false;
men det hjælper ikke rigtigt...

Nogen ideer?

MVH
Thomas



 
 
Thomas Eg Jørgensen (04-02-2003)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 04-02-03 19:17


"Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> wrote in message
news:b1orvc$ela$1@sunsite.dk...
> Jeg har forsøgt at sætte ejeren af min komponent til doublebuffer:=false;
> men det hjælper ikke rigtigt...

Jeg mente selvfølgelig doublebuffer:=true;



MVH
Thomas



Casper A. Hansen (05-02-2003)
Kommentar
Fra : Casper A. Hansen


Dato : 05-02-03 16:16

"Thomas Eg J rgensen" <thomas@kontorbutikken.dk> wrote in message news:<b1ovvo$5v9$1@sunsite.dk>...
> "Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> wrote in message
> news:b1orvc$ela$1@sunsite.dk...
> > Jeg har forsøgt at sætte ejeren af min komponent til doublebuffer:=false;
> > men det hjælper ikke rigtigt...
>
> Jeg mente selvfølgelig doublebuffer:=true;
>
>
>
> MVH
> Thomas

Overskriv WM_ERASEBKGND, så er du sikker på at din komponent ikke
flicker.

Eks:

private
procedure WMEraseBkgnd(var AMessage : TWmEraseBkgnd); message
WM_ERASEBKGND;
....
procedure TMyControl.WMEraseBkgnd(var AMessage : TWmEraseBkgnd);
begin
// Slet ikke baggrunden.
end;

Ulempen ved ovenstående er at din Paint skal tegne over det hele
(incl. alle flader), ellers bliver der vist noget mærkeligt på
skærmen.

Men jeg forstår ikke hvorfor DoubleBuffered ikke fjerner flickeriet,
hvilken klasse nedarver din komponent fra?

/Casper

Thomas Eg Jørgensen (05-02-2003)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 05-02-03 16:37


"Casper A. Hansen" <cah@skygate.dk> wrote in message
news:d581ee7f.0302050715.7a00c646@posting.google.com...
> > Jeg mente selvfølgelig doublebuffer:=true;
> Overskriv WM_ERASEBKGND, så er du sikker på at din komponent ikke
> flicker.
> Men jeg forstår ikke hvorfor DoubleBuffered ikke fjerner flickeriet,
> hvilken klasse nedarver din komponent fra?
>

Den nedarver fra TGraphiccontrol...Jeg så det samme som du foreslog i et
tidligere indlæg, men så skal TWinControl jo ind i hirakiet og det kniber
lidt her...

Jeg har forsøgt at tegne grafikken på en usynlig TBitmap og så bruger jeg
copyrect til at kopiere billedet ind efter endt opdatering. Det virker
umidlbart med den smule som indtil vidre er på komponenten....

MVH
Thomas



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste