AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi zur laufzeit erzeugte TImage komp freisetzen!
Thema durchsuchen
Ansicht
Themen-Optionen

zur laufzeit erzeugte TImage komp freisetzen!

Ein Thema von ATwardz · begonnen am 5. Jan 2005 · letzter Beitrag vom 5. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#1

zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 17:45
Hallo!

Habe das Problem das ich mehrer TImage Komponenten erzeuge und diese irendwann wieder freisetzen will! Das Problem Namen hab ich nicht vergeben da es in meinem Fall hinderlich ist!
Delphi-Quellcode:
With TImage.Create(Form1) do
  Begin
    Picture.loadfromfile('TEST.bmp');
    parent:=Form1;
    visible:=true;
  end;
Gib es vielleicht die möglichkeit alle TImage komponente freizusetzen(Problem es sind auch 3 Images dabei(mit Namen) die erhalten bleiben sollen!

Danke für Tipps
-->-->
Dreamteam: Delphi und Bier!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:05
Warum ist es hinderlich die Namen-Property zu belegen? Falls du deine TImages nicht in einem globalen Array verwaltest, könntest du mit FindComponent arbeiten, allerdings brauchst du dann einen eindeutigen Namen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#3

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:12
Kann man irgenwie eine Komponente aus einem zusammengestzen name ansprechen?

Also zum Beispiel Findkomponent(intostr(x)+Inttostr(y)) ?

Das wäre dann eine Lösung!

Jan
-->-->
Dreamteam: Delphi und Bier!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:16
Moin Jan,

klar geht.
Du müsstest halt den Namen beim Erzeugen auch vergeben.
Allerdings musst der Name mit einem Buchstaben oder _ beginnen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:23
du könntest mit Components auch alle Componenten durchgehen und prüfen ob es ein TImage ist. Wenn es ein TImage ist könntest du noch prüfen ob der Name leer ist. Und wenn der Name leer ist dann kannst du die Kompo freigeben
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:25
Moin Sir Thornberry,

Zitat von ATwardz:
Problem es sind auch 3 Images dabei(mit Namen) die erhalten bleiben sollen!
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:26
@christian: ich weiß, deswegen hab ich ja auch geschrieben das er alle images durchgehen soll und nur die freigeben wo KEIN Name vergeben ist
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:29
Moin Sir Thornberry,

stimmt auch wieder
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#9

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:38
Also du meinst in etwa so ja?

Delphi-Quellcode:
    For j:=0 to Form1.ComponentCount do
    Begin
      If Form1.Components[j].Name='then
      Form1.Components[j].Free;
    end;
Leider bekomme ich immer einen Listindex out of Bounds (25)

und zwar egalob ich
    For j:=0 to Form1.ComponentCount-1 oder
    For j:=1 to Form1.ComponentCount-1 oder
    For j:=0 to Form1.ComponentCount oder
    For j:=1 to Form1.ComponentCount Was mache ich falsch eigentlcih beginnt der index doch mit 0 oder etwa nicht?

-->-->
Dreamteam: Delphi und Bier!
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#10

Re: zur laufzeit erzeugte TImage komp freisetzen!

  Alt 5. Jan 2005, 18:46
Von 0 bis ComponentCount-1 stimmt eigentlich schon. Das Problem ist nur, wenn Du während der Schleife eine Komponente freigibst, stimmt der Schleifen-Endwert narürlich nicht mehr. Du solltest daher statt einer For-Schleife eine While-Schleife nehmen.

Abgesehen davon ist es kein guter Programmierstil ohne Referenzvariable zu arbeiten, wenn Du Dein Objekt nicht unmittelbar wieder freigeben willst. Merk Dir das Image einfach und gib es dann über die Referenz frei.

Gruß, teebee
  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 20:30 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