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
Seite 1 von 2  1 2      
Overprogrammer

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

wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 11:15
Hallo Leute,
hab ein Problem und zwar möchte ich programmieren,
dass wenn eine var (zb.a) nicht existiert, dass dann das und das gemacht werden soll..
wie mache ich das?
Brauche Hilfe
LG Overprogrammer

Geändert von Overprogrammer (16. Jun 2011 um 21:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 11:17
Wenn Du eine variable deklarierst, dann existiert sie zwangsläufig immer. Es wird z.B. immer ein Speicherbereich für sie allokiert.

Sofern 'a' z.B. ein Pointer auf irgend ein Objekt ist, kannst Du allerdings mit if not Assigned(a) then ... prüfen, ob der variable ein Wert zugewiesen wurde.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 11: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.
$2B or not $2B

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

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 13: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.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 13: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.
$2B or not $2B

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

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

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 13: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
 
#7

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 16: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.626 Beiträge
 
Delphi 12 Athens
 
#8

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 16: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
 
#9

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 21: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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: wenn a nicht existiert dann mache...

  Alt 16. Jun 2011, 21:11
Dann frage halt die Anzahl der zurückgegebenen Datensätze aber, oder prüfe den PK auf NULL
Markus Kinzler
  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 21:10 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