AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Komponente entfernen

Ein Thema von made in Germany · begonnen am 3. Mai 2006 · letzter Beitrag vom 4. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2   
made in Germany

Registriert seit: 28. Apr 2006
50 Beiträge
 
#1

Problem mit Komponente entfernen

  Alt 3. Mai 2006, 23:21
Hi!

Ich komm wieder mal nicht weiter,
ich hoffe ihr könnt mir helfen:


Ich möchte die hier zur Laufzeit erstellte Kompnente wieder entfernen.

Delphi-Quellcode:
var
imgnew:TImage;
x1,y1,imganz: Integer;


procedure TForm1.Button1Click(Sender: TObject);
   begin
        imgnew:=TImage.Create(self);
        imgnew.Parent:= SDIAppForm;
        imgnew.Show;
        imgnew.Canvas.Brush.Color:=clred;
        imgnew.PopupMenu:=Popupmenu1;
        imgnew.Canvas.Rectangle(x1,y1,x1+100,y1+100);

        imgnew.Name:='Image'+IntToStr(imganz); // Namen ändern
        imganz:=imganz+1;

        x1:=x1+5; //neue Koordinaten
        y1:=y1+5;
   end;




procedure TForm1.lschen1Click(Sender: TObject);
begin

TImage().Free; // Hier sollte nacher die ausgewählte Kompnente irgendwie wieder entfernt werden

end;
Das Image, das das Popupmenü geöffnet hat, soll entfernt werden.

Zumindest hab ich mir das so vorgestellt
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Problem mit Komponente entfernen

  Alt 3. Mai 2006, 23:25
Hallo,

die Eigenschaft Delphi-Referenz durchsuchenTPopupMenu.PopupComponent ist wohl das, was du suchst.

Gruß Hawkeye
  Mit Zitat antworten Zitat
made in Germany

Registriert seit: 28. Apr 2006
50 Beiträge
 
#3

Re: Problem mit Komponente entfernen

  Alt 3. Mai 2006, 23:32
genau das hab ich gebraucht

danke
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 09:49
Frage: Warum legst du dir eine globale Variable für die Image Instanz an? Das ist total unsinnig, da du schliesslich mehr als eine Instanz anlegst und somit die anderen, alten Instanzen verlierst.
  Mit Zitat antworten Zitat
made in Germany

Registriert seit: 28. Apr 2006
50 Beiträge
 
#5

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 18:02
gut, okay. Hab ich geändert.

Wenn ich aber dann

PopupMenu.popupcomponent.free;

verwende, bekomme ich beim Schließen meines Programmes eine Fehlermeldung.
Woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#6

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 18:34
Probier mal
FreeAndNil(PopupMenu.PopupComponent); oder
Delphi-Quellcode:
PopupMenu.PopupComponent.Free;
PopupMenu.PopupComponent := nil;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 18:41
Zitat von himitsu:
FreeAndNil(PopupMenu.PopupComponent);
Damit wird der Compiler wohl nicht einverstanden sein. "PopupComponent" ist ein Property.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#8

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 19:19
Dann halt die zweite Variante

Es ist ja nur 'ne Vermutung, aber eventuell versucht dann ja irgendwas aus das Objekt zuzugreifen, welches in PopupComponent gespeichert ist und dann wirdja ein Fehler passieren, wenn da ein nicht mehr existierened Objekt drinsteht ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
made in Germany

Registriert seit: 28. Apr 2006
50 Beiträge
 
#9

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 21:11
Funktioniert nicht


FEHLER:

Access violation at address 00000001. Read of address 00000001.


Kann mir mal jemand sagen, was das bedeutet?
  Mit Zitat antworten Zitat
made in Germany

Registriert seit: 28. Apr 2006
50 Beiträge
 
#10

Re: Problem mit Komponente entfernen

  Alt 4. Mai 2006, 21:19
Wenn ich jedoch bei der Prozedur TSDIAppForm.close folgendes eingebe:

imgnew:=TImage.Create(self);
Dann lässt sich das Programm ohne Fehler schließen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:29 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