AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button flimmert

Ein Thema von TheMiller · begonnen am 30. Sep 2006 · letzter Beitrag vom 30. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Button flimmert

  Alt 30. Sep 2006, 15:39
Hallo,

für alle, die meinen vorherigen Thread nicht gelesen haben. Hab eine neue Komponente von TSpeedButton wegen dem Glyphen abgeleitet. Jetzt habe ich die Prozedur Paint überschrieben und einen Glyphen geladen. Es wird alles gemacht, doch der Button flimmert.

Hier der Code

Delphi-Quellcode:
  inherited Paint;
  Canvas.Brush.Color:=clRed;
  Canvas.Pen.Color:=clBlack;
  Canvas.MoveTo(0,0);
  Canvas.LineTo(Width, Height);
  Glyph.Width:=Width;
  Glyph.LoadFromFile('C:\test.bmp');
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Button flimmert

  Alt 30. Sep 2006, 15:50
Setz' mal die Eigenschaft doublebuffered auf True
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Button flimmert

  Alt 30. Sep 2006, 15:54
Sehr gut! Das funktioniert!

Aber geht das nicht extrem auf die Performance, wenn ich diese Eigenschaft eingeschaltet habe?
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Button flimmert

  Alt 30. Sep 2006, 16:02
Die Komponente wird nur ein weiteres mal zwischengespeichert, das sollte IMHO vor allem für heutige PCs problemlos zu schaffen sein...
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Button flimmert

  Alt 30. Sep 2006, 16:07
Hm,

das Problem war, dass die Prozedur Paint immer wieder aufgerufen wird und ich somit immerwieder das Bild xyz lade. Das geht richtig auf die Performance (Notebook-Lüft geht an)...

Muss das irgendwie anders lösen
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Button flimmert

  Alt 30. Sep 2006, 16:09
Das könnte auch an deiner Prozedur liegen...

Zeig' mal ein bisschen Code bitte
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: Button flimmert

  Alt 30. Sep 2006, 16:15
Ok, hatte es erst so:

Delphi-Quellcode:
procedure TRollOverButton.Paint;
begin
  inherited Paint;
  Glyph.LoadFromFile('C:\test.bmp');
end;
Doch dadurch, dass Paint ja ständig ausgeführt wird, wird das Bild immer neu geladen und neu gezeichnet. Also habe ich jetzt eine Prozedur geschrieben, die mich das Bild wechseln lässt und habe diese beim Erstellen des Buttons ausgeführt.

BTW: Doch wenn ich DoubleBuffered auf True setze, dann zeichnet das Programm einen dicken grauen Rahmen um die normalen TButtons in meinem Programm...
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: Button flimmert

  Alt 30. Sep 2006, 16:23
Lade das Bitmap doch in der Create-Prozedur in eine Private Variable und zeichne es in der Paint-Methode via Glyph.Assign(...);

Dann wird das Bild nur einmal geladen und muss nur gezeichnet werden...
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: Button flimmert

  Alt 30. Sep 2006, 16:25
Ja, gute Idee. Kann ich machen.

Hast du noch eine Idee wegen dem DoubleBuffered-Problem?
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Button flimmert

  Alt 30. Sep 2006, 16:29
Tut mir leid, ich kann mir nichts darunter vorstellen...
Du kannst ja mal ein Screenshot machen...
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz