Autor |
Beitrag |
Peter18
      
Beiträge: 489
Erhaltene Danke: 2
Delphi4
|
Verfasst: Mo 17.10.11 18:18
Ein freundliches Hallo an alle,
heute bin ich auf eine seltsame Fehlermeldung gestoßen, vielleicht hat ja jemand eine Erklärung dafür:
Ich verwende ein variables Array vom Type Record um Daten zu speichern. Die Daten sind unterschiedlicher Art, so dass der Record Typen wie String, Integer u.s.w. enthält. Das Array wird verlängert, wenn weitere Daten zu speichern sind. Hat so weit auch funktioniert!
Dann habe ich die Type-Deklaration in eine extra Unit gesteckt. Die bearbeitenden Routinen kamen in eine weitere Unit. Die Variable wird nach wie vor in der Haupt-Unit deklariert und den Bearbeitungsroutinen übergeben. Die Haupt-Unit und die mit den Bearbeitungsroutinen haben die Typdeklaration mit Uses erhalten. Der Typ wird in der Parameterliste nicht beanstandet. Dennoch kommt die Fehlermeldung "Inkompatible Typen", wenn ich "SetLength" in den Bearbeitungsroutinen aufrufe. Rufe ich jedoch "SetLength" in der Haupt-Unit vor dem Aufruf der Bearbeitungsroutine auf, kommt keine Fehlermeldung!
Hoffe jemand kann das erklären.
Danke euch allen und Grüße aus dem Norden
Peter
Zuletzt bearbeitet von Peter18 am Di 18.10.11 11:22, insgesamt 1-mal bearbeitet
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 17.10.11 18:50
Heißt die Variable gegf. ungünstig ...
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.10.11 19:55
|
|
Peter18 
      
Beiträge: 489
Erhaltene Danke: 2
Delphi4
|
Verfasst: Di 18.10.11 11:18
Hallo bummi,
danke für Deine Antwort. Ich glaube nicht das "LinkLst" und "T_Link" zu Problemen führen sollten.
Hallo jaenicke,
Dank auch Dir. Sicher bin ich auf die Idee gekommen, aber 3 Units wollte ich Euch ersparen. Ich glaube mit Deiner Annahme liegst Du richtig. Ich kann es aber erst übermorgen testen, weil ich Termine habe. Werde dann berichten.
Hast Du eine Erklärung, warum die Deklartion so aussehen muß? Ist "TTestArray = array of TTest;" nicht auch als "type" zu deklarieren?
Grüße von der Nordsee
Peter
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 18.10.11 11:26
|
|
Peter18 
      
Beiträge: 489
Erhaltene Danke: 2
Delphi4
|
Verfasst: Do 20.10.11 13:30
Hallo jaenicke,
nochmals danke für Deine Antwort. Du hast recht und ich gelobe Besserung, dachte nur, da ich es sowiso beschreiben mußte könnte ich es mir auch sparen. Dafür hattest Du dann den Aufwand, auch dafür danke.
Dank auch für Deine Erklärung, C und VB sind da ja nicht so spitzfindig. Hab in diesem Sinne wieder ein neues Problem mit Pointern, dafür mache ich aber einen neuen Thred auf, wenn ich nichts finde.
Grüße von der Nordsee
Peter
|
|
|