AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Überprüfen ob ein Objekt existiert aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen ob ein Objekt existiert aber wie?

Ein Thema von Schuster · begonnen am 3. Jan 2005 · letzter Beitrag vom 27. Dez 2020
Antwort Antwort
Seite 2 von 2     12   
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 08:58
Es ist beim 1.Mal einfach <> nil. Du solltest 'mPlayer' (und generell alle Variablen) initialisieren.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 08:58
Das ist eine lokale Variable, richtig? Die werden im Gegensatz zu globalen Variablen oder privaten Klassenfeldern nicht initialisiert, d.h. es steht irgendetwas drin, deshalb ist die Referenz nicht nil, obwohl das Objekt nicht existiert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#3

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 09:13
Hallo zusammen,

danke für die Antworten.....ich blicke irgendwie nicht ganz durch:
Meine Klasse TMPlayer (gekürzt):

Delphi-Quellcode:
type
  TMPlayer = class
  Private
    playlist:TStringlist;
  public
    constructor create();
    //
    //
    destructor Destroy(); override;
  end;
Der Konstruktor wird auch erst aufgerufen, wenn ich das Objekt explizit erzeuge. Dies ist beim Start des Programmes nicht der Fall.
??
MFG
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#4

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 09:16
Das hat aber doch mit der Variablen mPlayer nichts zu tun, die fragst Du doch ab.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 09:23
Schreib nochmal, was Du genau tun willst.

Die Klasse ist ja nur der Bauplan(Beschreibung) eines Objektes. Das Objekt muss dann noch erzeugt und einer Variablen zugewiesen werden.
Auto := TAuto.Create(Besitzer); Dabei wird der Constructor ausgeführt, der ja ansonsten einfach eine Methode ist.
Dann kannst Du mit dem Auto arbeiten (fahren ).

Ob die Variable Auto vorher nil ist oder irgendwelche zufälligen Daten darin stehen hängt davon ab, wo sie deklariert ist.
Am sichersten einfach mal als erstes Auto := nil; zuweisen, sofern das Objekt nicht ohnehin gleich richtig erzeugt wird.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 8. Jun 2013, 23:19
Wie gibst du das Objekt frei? Nur Free reich6t nicht. Du musst den Zeiger auf das Objekt auch auf nil setzen, damit die Überprüfung mit Assign funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#7

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 9. Jun 2013, 00:29
Hallo Luckie,

freeandnil(mplayer)
Delphi-Quellcode:
destructor TMPlayer.destroy;
 begin
 try
  // Abschalten + div Einstellungen zurücksetzen
 finally
  mplayer:=nil;
  inherited destroy;
 end;
 end;
Hoffe mal, das passt so..
MFG
Steffen
  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
 
#8

AW: Überprüfen ob ein Objekt existiert aber wie?

  Alt 9. Jun 2013, 00:38
Eher nicht ...

Eine globale Variable ist schon mal pauschal pfui.
Eine globale Variable innerhalb des destructors (so) auf nil zu setzen ist der totale SuperGAU und daher immer falsch (selbst wenn es compiliert und anscheinend läuft).
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
Seite 2 von 2     12   


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 14:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz