AGB  ·  Datenschutz  ·  Impressum  







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

Performance bei vielen Images & Auflösung

Ein Thema von Hallo_Thomas · begonnen am 20. Mär 2006 · letzter Beitrag vom 21. Mär 2006
 
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Performance bei vielen Images & Auflösung

  Alt 20. Mär 2006, 00:21
Hallo,

Ich habe ein Programm mit realiv vielen Images ,sobald ich ein onclick Ereignis auslöse, benötigt dies bei mir ca.15%-18% meiner CpuLeistung bei einer anderen Auflösung, und ca 5-8% bei gleicher Auflöung;
(Bei einem Normalen Buttonclick ohne alles 0-2%)

Ich hab rund 40 Images(BildGrösse ca. 3kb) die ich als Buttons nutze +120 Images(ohne Bild im folgenden Programm) die über den Buttons liegen mit je einem Label und ein Hintergrundimage(1MB).


So und Hier ein paar Zeilen aus meinem Programm,Oben ist der Code,der die Performance am meisten beeinflusst...usw.,zumindest nach meiner Meinung.


Welche möglichkeiten gibt es die CPU Auslastung zu senken?Für ein Onclick Ereignis?

Dies wird im FormCreate ausgelöst:
Delphi-Quellcode:
Procedure TForm1.Aufloesung;
var Breite,Hoehe,x,y: integer;
begin
  begin
// hoehe:=864;
// breite:=1152;
    hoehe:=800;
    breite:=1280;
    scaled := true;
    x:= Screen.width;
    y:= Screen.Height;
    if(y <> Hoehe) or (x <> Breite) then
    begin
      Form1.Height := (Form1.ClientHeight* y div Hoehe) + Form1.Height- Form1.ClientHeight;
      Form1.Width := (Form1.ClientWidth * x div Breite)+ Form1.Height - Form1.ClientHeight;
      scaleBy(x,Breite);
    end;
  end;
end;
So werden die Bilder für die Buttons geladen, Ein Bild für Down und eins für Up(BildGrösse ca. 3kb)
Delphi-Quellcode:
procedure TForm1.AllMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 itag:String;
begin
 iTag := IntToStr((Sender as TControl).Tag);
 (FindComponent('Image'+(iTag)) as TImage).Picture.Assign(Buttonx[(Sender as TImage).Tag]);
end;

Damit die Imagebuttons regieren, wenn die Labels mit Buttons drüber liegen:
Delphi-Quellcode:
procedure TForm1.LabelsOnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  i: Integer;
  iString:String;
  S:Timage;
begin
  for i := 1 to 39 do
  begin
    S:= (FindComponent('Image'+(iString)) as Timage) ;
    iString:=IntToStr(i);
    if S is TImage then
    begin
      with S do
        if PtInRect(Rect(0, 0, Width, Height), ScreenToClient(Mouse.CursorPos)) then
        begin
          OnMouseUp(S, Button, Shift, X, Y);
        end;
    end;
  end;
end;
Angehängte Grafiken
Dateityp: jpg bild_115.jpg (122,8 KB, 49x aufgerufen)
Angehängte Dateien
Dateityp: zip button_121.zip (88,3 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
 


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 22:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz