AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Unit liefert unter D2010 andere Ergebnisse als vorher
Thema durchsuchen
Ansicht
Themen-Optionen

Unit liefert unter D2010 andere Ergebnisse als vorher

Ein Thema von FBrust · begonnen am 1. Mär 2010 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 18:00
Hallo,

in einem Programm werden im Rahmen der Konfiguration die Namen der installierten Handheld-Geräte (hier Palms) ermittelt und in eine Combobox gestellt. Dazu habe ich bisher die Unit "TPalmUserData" verwendet, die unter Delphi 7 einwandfrei funktioniert hat.

Seit das Programm mit Delphi 2010 kompiliert wird, kommen nur noch unlesbare Strings raus (s. Screenshot).


Hat vielleicht jemand einen Tip, woran das liegen könnte? Die Unit liegt mir im Quelltext vor, arbeitet aber viel mit Pointern und da bin ich zugegebene nicht sooo firm drin


Gruß
Frank
Miniaturansicht angehängter Grafiken
combobox_palmnamen_637.jpg  
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 18:13
Wird ja vielleicht was von String auf AnsiString zugeweisen o.ä?`

Weil dort kann ein Problem unter D2010 geben, da ja String voll Unicodefähig ist und AnsiString eben nur ANSI anzeigt. Wenn du dann String auf AnsiString zuweißt, kann da schon mal was komisches bei rauskommen.

Ansonsten Poste doch mal dein Code
Lars
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#3

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 18:20
Hi!

Eine schnelle und nicht so schöne Lösung könnte sein, jegliche Vorkommen von "string" in deiner Unit durch "AnsiString" zu ersetzen.
Sauber wäre es vermutlich, die Funktion, die die Gerätenamen ausließt, anzupassen. Die müsstest du dann aber eventuell mal herzeigen

HTH
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 18:46
Hallo,

die Unit ist ca. 10 Jahre alt, hat aber wie gesagt, bisher funktioniert, ich häng die Unit mal an.


Gruß
Frank
Angehängte Dateien
Dateityp: pas palmuserdata_184.pas (7,3 KB, 10x aufgerufen)
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 18:57
Im Record musst du das "array[0..x] of Char" als "array[0..x] of AnsiChar" umdeklarieren. Denn Char ist nun 2 Byte groß womit die Datenstruktur nicht mehr zur Datei passt. Mit AnsiChar hat man das Verhalten von Delphi 1 bis 2007 an dieser Stelle wieder.
Die überarbeitete Version der Unit findest du im Anhang.
Angehängte Dateien
Dateityp: pas palmuserdata_104.pas (7,4 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 19:50
Hallo jbg,

funktioniert super, vielen Dank


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unit liefert unter D2010 andere Ergebnisse als vorher

  Alt 1. Mär 2010, 20:24
Und genau deswegen kann ich es nur immer wieder sagen:

Bei externen Daten (Datenübertagung oder Speicherung) nur statische Typen verwenden, also kein String, Char, Integer.

Stattdessen AnsiString, WideString, UnicodeString, AnsiChar, WideChar, LongInt usw. und am Besten auch nur packed Records verwenden oder für eine definierte Ausrichtung suchen.


Und eine Bescheibung ala "bisher hat es immer funktioniert" sagt garnichts aus ... vorallem nicht dann, wenn etwas Grundsätzliches, wie der Compiler oder die CL getauscht wird.

Auch wenn Delphi relativ abwärtskompatibel ist, muß dennoch nicht alles Verwendete immer laufen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 04:52 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