AGB  ·  Datenschutz  ·  Impressum  







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

schnelles Anzeigen von SpeedButtons

Ein Thema von Mario · begonnen am 23. Sep 2003 · letzter Beitrag vom 24. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#1

schnelles Anzeigen von SpeedButtons

  Alt 23. Sep 2003, 20:33
Hallo,

ich habe ein Formular, welches große teilweise deaktivierte Speedbuttons mit Grafiken enthält. Wenn diese Formular angezeigt wird, so ist gerade auf Rechnern mit Grafikkarte (Matrox und Ati getestet) der Aufbau sehr langsam. Auf einem Rechner mit Intel 815-Grafik war der Effekt nicht sichtbar.

Wenn ich das Formular nun im Speicher lasse und nur immer wieder anzeige, geht der Aufbau immer schnell. Ich habe mal ein kleines Beispiel gemacht, anbei.

Was mir noch auffiel: Wenn ich alle Speedbuttons deaktiviere, ist der Effekt besonders stark sichtbar, es braucht auf einem Athlon 1800 mit Matrox MGA 400 auf Windows XP über eine Sekunde zum Einblenden der 25 Speedbuttons.

Hat jemand eine Idee, was ich dagegen machen kann, ausser das Formular permanent im Speicher lassen?
Angehängte Dateien
Dateityp: zip testspeed.zip (230,1 KB, 23x aufgerufen)
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#2

Re: schnelles Anzeigen von SpeedButtons

  Alt 23. Sep 2003, 22:47
Also ich muss sagen, dass ich keine Probleme hab!

(XP2800+, 1GB-Ram, GeForce4 Ti 4800) //angeb angeb
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#3

Re: schnelles Anzeigen von SpeedButtons

  Alt 23. Sep 2003, 23:26
Hallo Mario,

habe Deine Buttons statisch und dynamisch probiert. Kein Unterschied in der Darstellungsgeschwindigkeit erkennbar.

Verwendet: XP2700+ auf Asrock-Mainboard K7S8X mit 512 MB RAM, 64 MB GF4 MX440

Versuch's doch mal mit einer anderen Grafikkarte auf Deinem Board bzw. Deine Grafikkarte auf einem anderen Board. Vielleicht läßt sich das Problem dann klären.

mfg
eddy
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#4

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 08:23
hi

also ich kann mario zustimmen wenn man nur einen 1800 hat denn lässt sich da schon was erkennen! aber warum weis ich auch nicht
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 08:33
Ich habe es mir gerade mal auf dem PIII600 meiner Frau angeschaut (SIS Grafikkarte mit 4MB )

... nicht zum Aushalten. Das komische ist, dass es auf meinem PIII 1000 mit onBoard Intel-Grafik gar keine Verzögerung zu erkennen ist.

Ich denke also mal, dass es mit einigen Treiber schlechter und mit einige besser klappt. Da wir uns aber unsere Kunden nicht aussuchen können, wäre es natürlich schön, wenn ich es auf allen Rechnern flüssig bekomme!

Noch mal zum Rechner mit 4MB Grafik. Wenn ich da statisch wähle, also das Form nicht mehr frei gebe, ist der zweite Aufruf flüssig! Wenn ich jetzt wüßte, wie ich sagen könnte: "Initialisiere Dich fix und fertig, so wie Du es nach OnShow machst", wäre mir schon sehr geholfen.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#6

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 08:44
Hallo Mario,

P3 600, 512 MByte Ram, Matrox Millenium G450 AGP, 16 MByte, NT 4.0 SP6: nur kurze Verzögerung beim Formularaufbau (ca 1-2 sec.)
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 08:58
Jetzt habe ich es geknackt

Also, an der Ladezeit lässt sich nix drehen, aber die Ladezeit kann ich fast vollständig ins OnCreate verlagern, also in den nichtvisuelle Teil!

Dazu muss ich nur die Routine Loaded der Buttons nach dem Laden der Grafik aufrufen, damit die Glyphs initialisiert werden. Da diese ja aber private ist, muss halt ein kleiner Trick herhalten:

Delphi-Quellcode:
interface

...

type
  TWorkSpeedButton = class(TSpeedButton)
  end;

...

implementation

...

procedure LoadGrafik(aButton: TSpeedButton);
var Rect: TRect;
begin
  aButton.Glyph.LoadFromFile('test.bmp');
  TWorkSpeedButton(aButton).Loaded;
end;
Dann ist der eigentliche Bildschirmaufbau sogar auf einem 600er flüssig.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#8

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 08:59
Versuch doch mal den Quelltext

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  LoadGrafik(SpeedButton1);
  LoadGrafik(SpeedButton2);
  LoadGrafik(SpeedButton3);
  LoadGrafik(SpeedButton4);
  LoadGrafik(SpeedButton5);
  LoadGrafik(SpeedButton6);
  LoadGrafik(SpeedButton7);
  LoadGrafik(SpeedButton8);
  LoadGrafik(SpeedButton9);
  LoadGrafik(SpeedButton10);
  LoadGrafik(SpeedButton11);
  LoadGrafik(SpeedButton12);
  LoadGrafik(SpeedButton13);
  LoadGrafik(SpeedButton14);
  LoadGrafik(SpeedButton15);
  LoadGrafik(SpeedButton16);
  LoadGrafik(SpeedButton17);
  LoadGrafik(SpeedButton18);
  LoadGrafik(SpeedButton19);
  LoadGrafik(SpeedButton20);
  LoadGrafik(SpeedButton21);
  LoadGrafik(SpeedButton22);
  LoadGrafik(SpeedButton23);
  LoadGrafik(SpeedButton24);
end;
So umzuschreiben:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
  i : integer;
begin
  for i := 1 to 24 do
  begin
    LoadGrafik(Form2.FindComponent('Speedbutton' + i);
  end;
end;
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 09:05
@Sebastian: Das war nur eine Demo, der tatsächliche Source ist schon so ähnlich
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#10

Re: schnelles Anzeigen von SpeedButtons

  Alt 24. Sep 2003, 09:31
Achso...Konnt ich ja nicht wissen. Oder stand das irgendwo schon?
Sebastian
Ehemals bekannt als General2004
  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 10:18 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