AGB  ·  Datenschutz  ·  Impressum  







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

Programm läuft eindeutig zu langsam

Ein Thema von Hallo_Thomas · begonnen am 1. Mai 2005 · letzter Beitrag vom 1. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
Hallo_Thomas

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

Programm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 18:45
Siehe Problem=> Davon habe ich 200 ca. Stück in der Procedure stehen, jedes Steuert ein Label an und ein Bild, hat jemand eine Idee wie ich das vereinfachen kann, Programm wird mit der Zeit immer langsamer?




Delphi-Quellcode:
procedure TForm2.AddMyItem(const AItem: String; const AColor: TColor);
begin
 Form1.Anzeige.Items.InsertObject(0, AItem, Pointer(AColor));

Das Problem

Delphi-Quellcode:
begin
    Counter := 0;
for c2227 := Form1.Anzeige.count-1 DownTo 0 do
begin
if StrToInt(Form1.Anzeige.Items[c2227]) in [0..21,28..100] then
Inc(Counter)
else if StrToInt(Form1.Anzeige.Items[c2227]) in [22..27] then
Counter := 0 ;
[pre]Form1.Label12.Caption:= IntToStr(Counter) ;
end;
end;////////Hier werden die Daten aus der Listbox gezogen um im Label den Count darzustellen
 begin if counter<=c637n Then begin
  Form1.Image12.Picture := nil;
  Form1.Label12.font.color:=CLgreen;
  Form1.Label12.Caption:=''
  end;
begin if counter=c637b Then begin
  Form1.Image12.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'Chipblau.bmp'); //////////die Bilder erscheinen jedesmal
  Form1.Label12.font.color:=CLWhite;
  end;
begin if counter=c637g Then begin
Form1.Image12.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'Chipgelb.bmp');
Form1.Label12.font.color:=CLblack
end else if counter=c637p Then begin
Form1.Image12.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'Chippink.bmp');
Form1.Label12.font.color:=CLwhite;///Hier wird dem Label das entsprechende Bild hinzugefügt
end;
end;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 18:50
Zitat von Hallo_Thomas:
Siehe Problem=> Davon habe ich ca. Stück in der Procedure stehen,
Ja wieviel Stück denn?
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Hallo_Thomas

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

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:01
@Subdata: habs vervessert

Hab gehört das TImage(Ich nehme TI wegen den Transparenten Bildern) auch einiges an Resourcen frisst, hilft da eine Imagelist vieleicht?
Im Moment wird alles über die Listbox berechnet, würde eine Stringlist oder so was schneller seine?
Oder vieleicht indem einiges in eine 2,3,4.. Procedur verschiebe?
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:09
Wenn es am Hinzufügen der 200 Items liegt, dann setz einfach mal ein
Delphi-Quellcode:
Listbox1.beginupdate;

//... Items hinzufügen ...

Listbox1.endupdate;
Das sollte die Sache beschleunigen.
  Mit Zitat antworten Zitat
Hallo_Thomas

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

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:27
Es wird eigentlich immer nur ein Item hinzugefügt pro Procedurdurchlauf, bloss dadurch müssen die Labels immer wieder neu berechnet werden.

@Gordon freeman; Bei mir wird die Fehlermelung "undefinierter Bezeichner"
für beginupdate/endupdate angezeigt



Form1.Anzeige.beginupdate;
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:43
Hatte mich vertan, muss in deinem Fall
Form1.Anzeige.[b]Items.[/b]beginupdate; heißen! Das packste dann vor und nach die Schleife, in der die Procedure aufgeruden wird.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:44
Schonmal was von Codeeinrückung gehört ?
Du hast da ziemlich viele unnütze Blöcke:
Delphi-Quellcode:
begin if counter<=c637n Then begin
  Form1.Image12.Picture := nil;
  Form1.Label12.font.color:=CLgreen;
  Form1.Label12.Caption:=''
  end;
begin if counter=c637b Then begin
  Form1.Image12.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'Chipblau.bmp'); //////////die Bilder erscheinen jedesmal
  Form1.Label12.font.color:=CLWhite;
  end;
[...]
end;
end;
Macht aber wahrscheinlich keine Performanceeinbußen. LoadFromFile benötigt jedoch IMHO viel Zeit. Lade die drei Bilder lieber am Anfang des Programms in drei TBitmaps.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Hallo_Thomas

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

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 19:53
@Khabarakh

Ich glaub das macht, dass Programm auch nich schneller und so oft wie in letzter Zeit da alles ändere bringt bei dieser Passage für mich nix. Bin im Moment auch zu verzweifelt für so einen Spass.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 20:01
Wie du meinst. Ich kann dir nur sagen, dass das Laden von Bildern beim OnEnter/OnExit eines Custom-Buttons bei einem meiner Programme dieses für ca. eine halbe Sekunde zum Erliegen gebracht hat, das Kopieren eines Bitmaps gerade bei kleineren Bildern jedoch fast in Nullzeit passiert.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Hallo_Thomas

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

Re: Prgramm läuft eindeutig zu langsam

  Alt 1. Mai 2005, 20:18
@@Khabarakh

sorry, hatte dass nur mit den blöcken gelesen. Das mit Loadfromfile, mache ich so, weil am Anfang kein Bild an der Stelle zusehen ist, die werden dann erst ausgetauscht an der entsprechenden Stelle, so ne Art Ampel, geht das Trotzdem was Du sagst?
  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 03:34 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