AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen .NET-Sprachen C# [Erledigt] Das mysteriöse null...
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt] Das mysteriöse null...

Ein Thema von implementation · begonnen am 10. Okt 2010 · letzter Beitrag vom 11. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#11

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 23:19
Ich kenne die Klasse nicht, aber eher nein, ist keine Basis-Funtionalität. Da prüfen auf null immer funktionieren sollte, wäre das unnötig. Bei Strings macht es Sinn, da man zwei häufige Abfragen kombinieren kann.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#12

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 23:32
Kann es sein, dass hovered.Name gleich NULL ist?

macht doch einfach mal ein:
Code:
  if (hovered.Name != NULL)
  {
        MessageBox.Show(hovered.Name);
  };
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 23:47
Lest doch mal den verlinkten Thread im C#-Forum.
Da habe ich bereits genau beschrieben, was Name für eine Property ist.
Die Property Name ist vom Typ string und bietet Lese- und Schreibzugriff auf ein Feld.
Name zeigt an der Stelle auf den String "field" und ist daher auf jeden Fall ungleich Null.

hovered ist ganz normal über den Konstruktor erzeugt.

[edit]
Was noch von Belang sein könnte:
Zitat von Implementation im C#F:
Code:
if (hovered != null)
{
        //MessageBox.Show((hovered == null).ToString());
        MessageBox.Show(hovered.Name); // Gibt "field" aus
        MessageBox.Show((hovered == null).ToString()); // Gibt "true" aus
        if (hovered.IsSensitive())
              hovered.AsSensitive().MouseDown(e.X - hovered.Left, e.Y - hovered.Top);
}
Hier tritt keine Exception auf.
Aber nach dem Zugriff auf Name ist hovered null.

[edit2]
Mal zur Aufklärung über hovered's Member:
- string Name: Property mit Getter und Setter
- bool IsSensitive(): Extension Method, fragt ab, ob das Objekt ein bestimmtes Interface ((I)QuinSensitiveControl) implementiert.
- AsSensitive(): Extension Method, liefert Objekt als obiges Interface zurück.
hovered ist ein nichtstatisches Feld und hat einen Interfacetyp ((I)QuinDynamicControl).
(I)QuinSensitiveControl ist von (I)QuinDynamicControl abgeleitet.
Weil IsSensitive() und AsSensitive() Extension Methods sind, gibt es keinen Fehler, wenn hovered null ist.
IsSensitive() liefert dann false zurück und AsSensitiv() null.

Geändert von implementation (11. Okt 2010 um 00:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Das mysteriöse null...

  Alt 11. Okt 2010, 00:04
Ich glaube, die wenigsten haben Lust sich ihre Informationen aus zich Foren zusammenzusuchen, um dir helfen zu können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Das mysteriöse null...

  Alt 11. Okt 2010, 00:27
Deshalb habe ich's hier ja jetzt auch noch einmal geschrieben.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Das mysteriöse null...

  Alt 11. Okt 2010, 00:45
Ich kenne die Klasse nicht, aber eher nein, ist keine Basis-Funtionalität.
Dumm von mir. Die Methode kann es gar nicht geben. Denn wenn das Objekt nicht existiert, also null ist, kann die Methode ja auch nicht aufgerufen werden. Solch eine Methode würde also immer wahr liefern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#17

AW: [Erledigt] Das mysteriöse null...

  Alt 11. Okt 2010, 17:24
Problem gelöst!
Die MessageBoxen haben zu einem MouseLeave geführt, der wiederum auslöste, dass hovered auf null gesetzt wurde
Danke, dass ihr euch mit meinem Problem auseinandergesetzt habt!
  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
 
#18

AW: [Erledigt] Das mysteriöse null...

  Alt 11. Okt 2010, 17:27
Ich hatte da auch so eine Vermutung, aber c ist nicht meine Baustelle.

Aber immer wieder schön, wenn das Bauchgefühl stimmt
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
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#19

AW: [Erledigt] Das mysteriöse null...

  Alt 11. Okt 2010, 23:03
Die MessageBoxen haben zu einem MouseLeave geführt, der wiederum auslöste, dass hovered auf null gesetzt wurde
Und ich wollte ja schon schreiben: MessageBox.Show ist kein Debugging, aber was verkneift man sich nicht alles so
Leo S.
  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 20:14 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