AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein wenn a nicht existiert dann mache...
Thema durchsuchen
Ansicht
Themen-Optionen

wenn a nicht existiert dann mache...

Ein Thema von Overprogrammer · begonnen am 16. Jun 2011 · letzter Beitrag vom 17. Jun 2011
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 10:28
Wenn etwas in A nicht existiert, dann Assigned(a), a=nil oder Dergleichen.

Wenn A selber nicht existiert, dann {$IF not Declared(A)} ... {$IFEND} (Type, Variable und Konstante geht ... Unit/Datei geht nicht)

Prüfen auf Compilerschalter: {$IFOPT ...} , {$IFDEF ...} , bzw. {$IF Defined(...)} .



PS: das "Brauche Hilfe" war nicht notwendig, da es wohl klar ist
und zuviele Smilie und Statzzeichen sind evenfalls unnötig.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2011 um 10:32 Uhr)
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#2

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 12:12
Beim Übergeben von Objektzeigern kann das Freigeben der referenzierten Instanz zu Problemen führen. Hier habe ich mir angewöhnt, ein Listenobjekt anzulegen, welches zum Dereferenzieren von IDs genutzt wird (die Arrayelemente sind ID-Objekt-Paare) und dann nur einmalig dieses Listenobjekt zu übergeben. Alle Bezüge auf gelistete Objekte geschehen mit IDs, mit denen entweder nach einem Objekt aufgelöst werden kann oder eine klare Aussage über die Existenz des Objekts gewonnen werden kann.

Hat man wenige Objekte, lässt sich die Auflösung durch lineares Suchen umsetzen, sind es mehr, kann man sortierte Listen per divide&conquer oder über Hashfunktionen strukturiert durchsuchen.
Power is nothing without TControl
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 12:37
Wenn man eine Variable auf den Inhalt prüfen möchte, dann muß man diese, beim Freigeben, natürlich auch zurücksetzen.

Delphi-Quellcode:
o.Free;
o := nil;
Da es hier aber ein Problem gibt, wenn es im Free eine Exception gibt, wurde Delphi-Referenz durchsuchenFreeAndNil bereitgestellt,
welches erst die Variable auf NIL setzt und dann das Objekt frei gibt.


Wer jetzt parallel mit Kopieen der alten Variable arbeitet (z.B. in irgendwelchen Listen, anderen Variablen oder Parametern ohne VAR), ist selber Schuld, wenn dort noch der alte Objektzeiger drinsteht, selbst nach Freigabe/Änderung in der Originalvariable.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2011 um 13:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 12:53
Ich glaube ihr spekuliert zu sehr was hinter der Ausgangsfragé steckt, ich denke das hier ein wenig Konkretisierungsbedarf besteht.
Wenn etwas in A nicht existiert, dann ....
Wenn A selber nicht existiert, dann ...
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 15:10
Ich meine der Thread-Ersteller sollte sich erst einmal mit Programmiergrundlagen und Delphi-Grundlagen beschäftigen.

Wie waren noch gleich die Links in den Delphi-Treff?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 15:14
Die hier?
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
Overprogrammer

Registriert seit: 10. Jun 2011
22 Beiträge
 
Delphi 7 Personal
 
#7

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 20:09
ja ok danke für eure zahlreichen Antworten.
Aber ich meinte wirklich: wenn zb eine Gegenstandsnummer in einer Datenbank nicht gefunden werden kann, weil sie nicht existiert, dass dann eine Fehlermeldung gesendet wird (zb.itemnumber not found als string...)

Ps: Ja danke ich lasse die Smileys und völlig ohnehin klare Sachverhalte in Zukunft raus.
  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 09:01 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