AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [D2010] Record darf nicht nil sein - E2010 Inkompatible Type
Thema durchsuchen
Ansicht
Themen-Optionen

[D2010] Record darf nicht nil sein - E2010 Inkompatible Type

Ein Thema von s.h.a.r.k · begonnen am 26. Nov 2009 · letzter Beitrag vom 26. Nov 2009
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

[D2010] Record darf nicht nil sein - E2010 Inkompatible Type

  Alt 26. Nov 2009, 13:58
hallo zusammen,

seit neuestem verwende ich auch delphi 2010 und bin an einigen ecken auf die schnauze geflogen. nun wollte ich ein projekt aktualisieren und es eben reif für delphi 2010 machen, nur scheitere ich schon nach wenigen schritten. das was unter delphi 2007 noch ging, ist hier auf einmal ein fehler.

hier nun der code der das problem macht:

Delphi-Quellcode:
TImportDataRecord = record
{ hier stehen die einzelnen Datenfelder }
end;
TImportDataRecordItem = record
  Item : TImportDataRecord;
end;
PImportDataRecordItem = ^TImportDataRecordItem;


// weiter unten im programm ...

procedure ...;
var
  pIdR : PImportDataRecordItem;
begin
  { ... }
  pIdR.Item := nil;
  { ... }
end;
und hier der compiler-fehler:
Code:
[DCC Fehler] frameSynchronizeWizard.pas(583): E2010 Inkompatible Typen: 'TImportDataRecord' und 'Pointer'
mir ist schon klar, dass ich auch eine klasse nutzen könnte, aber das will ich nicht wirklich, denn das wirft zu viel durcheinander.

ps: diesen code verwende ich um daten in einem VirtualDrawTree anzeigen zu lassen.

mfg
der hai
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 14:00
der Code dürfte in keiner Delphi-Version kompilierbar sein

Sollte der Code nicht eher so aussehen:
  pIdR := nil;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 14:05
Oder so?
Delphi-Quellcode:
PImportDataRecord = ^TImportDataRecord;
TImportDataRecord = record
{ hier stehen die einzelnen Datenfelder }
end;
TImportDataRecordItem = record
  Item : PImportDataRecord;
end;
PImportDataRecordItem = ^TImportDataRecordItem;


// weiter unten im programm ...

procedure ...;
var
  pIdR : PImportDataRecordItem;
begin
  { ... }
  pIdR^.Item := nil;
  { ... }
end;
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
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#4

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 14:36
Korrigiert mich wenn ich mich irre... Aber da sehe ich auf Anhieb mehrere Fehler:

Delphi-Quellcode:
TImportDataRecord = record
{ hier stehen die einzelnen Datenfelder }
end;
TImportDataRecordItem = record
  Item : TImportDataRecord;
end;
PImportDataRecordItem = ^TImportDataRecordItem;


// weiter unten im programm ...

procedure ...;
var
  pIdR : PImportDataRecordItem;
begin
  { ... }
  pIdR.Item := nil;
  { ... }
end
1. pIdr is ein "Bush"-Pointer, er zeigt also an keinen definierten Ort im Speicher
2. Item ist kein Pointer sondern vom Type "record" bzw. TImportDataRecord. Wie soll da ein Pointer zugewiesen werden?

Oder habe ich was verpasst?

Hat das der "alte" Compiler wirklich so gefressen?

Gruß
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 15:17
danke für eure antworten. ich werde da mal etwas testen müssen

unter delphi 2007 war der code compilierbar, da bin ich mir (fast) sicher. je länger ich mir das problem allerdings anschaue, desto eher denke ich, dass bernhards lösung die gesuchte ist.

vielen dank jedenfalls schon mal!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 15:21
Zitat von s.h.a.r.k:
danke für eure antworten. ich werde da mal etwas testen müssen

unter delphi 2007 war der code compilierbar, da bin ich mir (fast) sicher. je länger ich mir das problem allerdings anschaue, desto eher denke ich, dass bernhards lösung die gesuchte ist.

vielen dank jedenfalls schon mal!
Also mich würde es ehrlich gesagt wundern wenn das jemals geklappt haben sollte...
Habs grad in Delphi7 probiert und da ging es auch nicht
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 15:42
ich wüsste aber nicht, dass ich an diesem code mal was geändert haben sollte

ich melde mich, wenn ich das problem gelöst habe... bin gerade selbst etwas verwirrt.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
309 Beiträge
 
Delphi 12 Athens
 
#8

Re: [D2010] Record darf nicht nil sein - E2010 Inkompatible

  Alt 26. Nov 2009, 17:09
Zitat von s.h.a.r.k:
ich wüsste aber nicht, dass ich an diesem code mal was geändert haben sollte
Frag einfach Dein Sourcecode-Management-System...
  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 01:49 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