AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi dynamische Arrays := Incompatible Type !? Wie kommt es ?
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische Arrays := Incompatible Type !? Wie kommt es ?

Ein Thema von JoelH · begonnen am 25. Jun 2003 · letzter Beitrag vom 27. Jun 2003
Antwort Antwort
JoelH
(Gast)

n/a Beiträge
 
#1

dynamische Arrays := Incompatible Type !? Wie kommt es ?

  Alt 25. Jun 2003, 13:14
Also ich hab 2 dynamische Array of Integer, einmal eins in einem eigenen Record Type drin und dann ein ganz normales.

Wenn ich jetzt aber mach

 userrechte.liste := akt_liste; Dann bemängelt der Compiler ein 'incompatible Types'

Warum ?
Liegt es an der Länge der Arrays aber ich dachte dynamische Arrays sind nur Zeiger auf Speicherbereiche und die Länge ist egal oder liegt es gar nicht an der Länge ?
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 25. Jun 2003, 13:16
Könntest Du mal die Variablendeklaration und ggf. die Typendefinitionen der Variablen posten. So ist es zwecklos was zu sagen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#3

hmm,

  Alt 25. Jun 2003, 14:03
Delphi-Quellcode:
type test = record
  id : integer;
 liste : array of integer;
end;

....



var
   user : test;
   akt_liste : array of integer;

.....


// im Programm dann irgendwann
  akt_liste := user.liste;
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: hmm,

  Alt 25. Jun 2003, 14:06
Es ist nur eine Änderung nötig. Du musst einen Typen für den Integer-Array deklarieren, der Rest geht dann ohne Probleme.
Code:
type
  [color=#ff0000]TIntegerArray = array of integer;[/color]

  test = record
    id : integer;
    liste : [color=#ff0000]TIntegerArray;[/color]
  end;

....



var
   user : test;
   akt_liste : [color=#ff0000]TIntegerArray;[/color]
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von BrainCode
BrainCode

Registriert seit: 18. Jan 2003
119 Beiträge
 
#5
  Alt 25. Jun 2003, 14:57
Wo ist denn da die Logik? Ich sehe keinen direkten Unterschied!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 25. Jun 2003, 15:15
array of Integer ist keine eindeutige Typendeklaration - ist so festgelegt. Wenn Du aber TInteger = array of Integer deklarierst, gilt dieser als ein definierter Typ.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 25. Jun 2003, 15:30
Moin Zusammen,

ich denke mal, dass das so festgelegt worden ist, um den Compiler zu vereinfachen. Wenn ein Typ nur aus einem Bezeichner besteht, ist dies leichter zu prüfen, als wenn er aus Bezeichnern zusammengesetzt ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8
  Alt 27. Jun 2003, 12:00
Chrstian: eher um uns Programmieren die Arbeit zu erleichtern. Unter PASCAL sind nur Datentypen zuweisbar die auch den gleichen Typ haben. Dies macht die Sprache Typsicher und der Programmierer kann erst garnicht Source coden der inkompatible Speicherbereich mit einander überschreibt.


Das Problem mit obiger Lösung ist halt das das "array of Integer" eine Typdeklaration ist, und KEIN deklarierter Typ. Damit wären alle Felder/Variablen die als "array of Integer" deklariert wurde nicht Typisiert.

Bevor mich einer drauf hinweisst, es gibt im Delphi Ausnahmen von der Regel.

Gruß Hagen
  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 03:42 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