AGB  ·  Datenschutz  ·  Impressum  







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

Timages löschen.

Ein Thema von simonko · begonnen am 18. Jul 2005 · letzter Beitrag vom 18. Jul 2005
Antwort Antwort
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#1

Timages löschen.

  Alt 18. Jul 2005, 11:02
Wie kann man dynamisch erstellte images löschen?

ich hab
Delphi-Quellcode:
   for i:=1 to anzahl do
      bild[i].free

krieg aber damit immer ein laufzeitfehler.

ich will alle bilder einfach vom form löschen, dass ich sie im nächsten zyklus wieder erstellen kann.


MFG
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Timages löschen.

  Alt 18. Jul 2005, 11:04
Hallo ,
vesuch mal

Delphi-Quellcode:
  for i := 0 to anzahl - 1 do
     bild[i].free
MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#3

Re: Timages löschen.

  Alt 18. Jul 2005, 12:46
ich krieg ketzt zwar keine fehlermeldung mehr aber
die bilder verschwinden nicht vom form.

hab folgende prozedur:

Delphi-Quellcode:
procedure cleanup;
var
   i : integer;
begin
 for i:=0 to st-1 do
   begin
     form1.bild[i].free;
   end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Timages löschen.

  Alt 18. Jul 2005, 12:51
Hallo ,
kannst du vielleicht mal posten, wie du deine bilder erstellst?

Delphi-Quellcode:
Bild: Array[0..10] of TImage;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Image1.Free;
  for i := 0 to 10 do
    Bild[i].Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to 10 do
    begin
      Bild[i] := TImage.Create(Form1);
      Bild[i].Parent := Form1;
      Bild[i].Left := i*50;
      Bild[i].Top := 10;
      Bild[i].Picture := Image1.Picture;
    end;
end;
MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#5

Re: Timages löschen.

  Alt 18. Jul 2005, 13:46
Delphi-Quellcode:
  while (p<>nil) do
    begin
      s:=stacktostring(p,i);
      pfad:=s;
      form1.kortn[i]:= TImage.Create(form1);
      with form1.kortn[i] do
        begin
          Parent:=form1;
          Left:=100+(i*30);
          Top:=300;
          Width:=75;
          Height:=130;
          Picture.LoadFromFile('C:\'+pfad+'.JPG');
          knr:=strtoint(s);
          Tag:=knr;
          proportional:=true;
          onClick:=form1.myonclick;
        end;
      p:=p^.next;
      i:=i+1;
    end;

....

procedure cleanup;
var
   i : integer;
begin
 for i:=0 to st-1 do
   begin
     form1.kortn[i].free;
   end;
end;
cleanup ruf ich dann von einer anderen prozedur auf.
  Mit Zitat antworten Zitat
Benutzerbild von Manne
Manne

Registriert seit: 8. Okt 2003
Ort: Hirrlingen
82 Beiträge
 
Delphi 7 Personal
 
#6

Re: Timages löschen.

  Alt 18. Jul 2005, 13:52
Servus,
muss das nicht
Delphi-Quellcode:
for i:=st-1 downto 0 do
      bild[i].free
heißen?
So 6 wie wir 5 gibt es keine 4 andere, denn wir 3 sind die 2 1sten
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: Timages löschen.

  Alt 18. Jul 2005, 13:55
Wo wird Cleanup aufgerufen?
Wenn es nur darum geht bei Programmende die Komponenten abzuraeumen, so erledigt das Delphi automatisch.
Dafuer ist der bei TImage.Create angegebene Owner zustaendig.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Timages löschen.

  Alt 18. Jul 2005, 14:06
Also bei mir geht es wunderbaer. Ein Beispiel:
Delphi-Quellcode:
var
  Form1: TForm1;
  img:TImage;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Assigned(img) then
   FreeAndNil(img)
   else
   begin
     img := TImage.Create(nil);
     with img do
     begin
       Visible := False;
       Parent := Self;
       Picture.LoadFromFile('c:\test1.bmp');
       AutoSize := True;
       Top := 100;
       Left := 100;
       Visible := true;
     end;
   end;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  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 17:11 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