AGB  ·  Datenschutz  ·  Impressum  







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

Delphi mit TImage überfordert?

Ein Thema von Magic94 · begonnen am 9. Apr 2013 · letzter Beitrag vom 10. Apr 2013
Antwort Antwort
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#1

Delphi mit TImage überfordert?

  Alt 9. Apr 2013, 22:55
Hallo Forum,
habe ein Programm geschrieben mit ca. 2600 Zeilen. Das Formular beinhaltet 128 TImage Komponenten, welche leer sind. Gefüllt werden sie erst beim Formcreate. Jede Image Komponente ist nur 23x22 Pixel groß.
Leider, wenn ich jetzt die .dpr öffne bekomme ich die Fehlermeldung: "Fehler beim Erzeugen des Formulars: Systemressourcen erschöpft"
Ich nutze Delphi 7 Personal und habe das Projekt auch schonmal kompiliert bekommen - fragt sich warum es jetzt nicht mehr geht
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Delphi mit TImage überfordert?

  Alt 9. Apr 2013, 23:38
128 Images klingt im Ansatz schon ... sagen wir mal "ungünstig". Der üblichere Weg wäre ein einziges Image, in dessen Picture.Bitmap-Property man aus dem Code heraus das Gesamtbild zusammen baut. (Es ist gut möglich, dass hier die Systemressourcen am Ende sind. Für jedes Image wird intern vorab eine ganze Menge an GDI Ressourcen "veranschlagt", die unabhängig vom RAM oder sonstigem Hardwareausbau systembedingt begrenzt sind. Es ist einfach keine gute Idee so viele Images zu benutzen, das sollte unbedingt anders gemacht werden.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#3

AW: Delphi mit TImage überfordert?

  Alt 9. Apr 2013, 23:45
128 Images klingt im Ansatz schon ... sagen wir mal "ungünstig". Der üblichere Weg wäre ein einziges Image, in dessen Picture.Bitmap-Property man aus dem Code heraus das Gesamtbild zusammen baut. (Es ist gut möglich, dass hier die Systemressourcen am Ende sind. Für jedes Image wird intern vorab eine ganze Menge an GDI Ressourcen "veranschlagt", die unabhängig vom RAM oder sonstigem Hardwareausbau systembedingt begrenzt sind. Es ist einfach keine gute Idee so viele Images zu benutzen, das sollte unbedingt anders gemacht werden.)
Ich kann sie ja noch nicht mal rauslöschen er lässt mich ja garnicht mehr
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Delphi mit TImage überfordert?

  Alt 9. Apr 2013, 23:56
Wenn das Formular-File (.dfm) im Textformat ist, könntest du das mit dem Windows Texteditor noch retten. Die entsprechenden "object"-Deklarationen (und deren Propoerties) einfach von Hand daraus löschen. Die entsprechenden Komponenten im .pas File (in deiner Formularklasse) sollte Delphi dann beim Öffnen des Projektes anmakeln - oder ich irre mich, und es ist nur anders herum. Jedenfalls kannst du die dann auch im Code von Hand löschen, sobald sie aus dem .dfm raus sind. Wenn das .dfm aber im Binärformat gespeichert ist... dann müsstest du das Formular wohl noch Mal neu machen müssen. Immerhin ist in diesem Fall das Gros der Arbeit, die .pas, ja als Textfile noch leicht kopierbar.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Tyrolean

Registriert seit: 3. Jul 2003
76 Beiträge
 
Delphi 7 Professional
 
#5

AW: Delphi mit TImage überfordert?

  Alt 10. Apr 2013, 07:39
Wenn das .dfm aber im Binärformat gespeichert ist... dann müsstest du das Formular wohl noch Mal neu machen müssen. Immerhin ist in diesem Fall das Gros der Arbeit, die .pas, ja als Textfile noch leicht kopierbar.
Dafür gibt es Convert.exe.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delphi mit TImage überfordert?

  Alt 10. Apr 2013, 07:51
Ansonsten kannst Du die Bilder in eine TImageList legen, die ist eigentlich genau dafür da und sollte in der Lage sein, die Ressource besser zu verwalten.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Delphi mit TImage überfordert?

  Alt 10. Apr 2013, 07:55
Du könntest Die Grafiken auch erst zur Laufzeit erzeugen. Das geht vielleicht elegant auch in einer Schleife, falls sie regelmäßig angeordnet sind.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#8

AW: Delphi mit TImage überfordert?

  Alt 10. Apr 2013, 19:02
Habe es jetzt gelöst bekommen:

Zitat:
for i := 0 to 3 do
for j := 1 to 8 do
for k := 1 to 4 do
begin
Bild := TSeqButton.Create(Form1);
Bild.Parent := Form1;
Bild.Visible := True;
Bild.AutoSize := True;
Bild.Name := 'Image'+IntToStr(l);
Bild.Picture := imSaveOff.Picture;
Bild.Hint := 'off';
if i = 0 then Bild.Left := 48 + i*128 + k*32;
if i = 1 then Bild.Left := 56 + i*128 + k*32;
if i = 2 then Bild.Left := 64 + i*128 + k*32;
if i = 3 then Bild.Left := 72 + i*128 + k*32;
Bild.Top := -10 + j*40;
Inc(l);
end;
Damit lassen sich die Bilder perfekt Anordnen.
TSeqButton ist von TImage abgeleitet. Sollen Buttons für einen Sequenzer werden, daher noch ein paar mehr Funktionen.

Danke für die Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Delphi mit TImage überfordert?

  Alt 10. Apr 2013, 21:49
Hoffentlich fliegt dir das Form1 nicht um die Ohren

Wenn du das in einer Methode von TForm1 aufrufst, dann solltest du das gegen Self austauschen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:07 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