Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   komisches verhalten auf verschiedenen PCs mit TStringlist (https://www.delphipraxis.net/132521-komisches-verhalten-auf-verschiedenen-pcs-mit-tstringlist.html)

SimStar001 14. Apr 2009 15:38


komisches verhalten auf verschiedenen PCs mit TStringlist
 
Hallo, ich habe jetzt ein merkwürdiges Verhalten auf verschiedenen Rechnern festgestellt.

Folgender Sachverhalt:
im OnCreate Ereignis der Hautform, lasse ich eine Stringliste erstellen, auf die von allen anderen Formen zugegriffen werden kann.
Diese beinhaltet verschiedene Dialoge für verschiedene Sprachen.

Ich lade dann jeweils im OnShow oder OnPaint ergeinis mir die entsprechenden dialoge oder Beschriftungen aus der Liste.

Dies klappt auf meinem Rechner wunderbar, und auf einem PC von nem Kumpel überhaupt nicht, er bekommt dann immer ne Fehlermeldung, dass der Listenindex überschritten sei! Ich konnte auch schon feststellen, dass es sich um die beschriebene Liste handelt.

Nun die Frage woran kann das liegen!?

Bernhard Geyer 14. Apr 2009 15:43

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Ohne etwas bischen Quellcode kann man nur sagen: Da wirst du halt etwas falsch implementiert haben. Greifst du evtl. teilweise auf irgendwelche globalen Variablen zu die nicht initalisiert oder u.U. erst später initialisiert werden?

Sven M. 14. Apr 2009 15:44

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Hast du die Möglichkeit, auf dem anderen Rechner die IDE zu installieren? Dann würde ich mal versuchen mit dem Debugger durchzugehen...

Bernhard Geyer 14. Apr 2009 15:45

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Zitat:

Zitat von Sven M.
Hast du die Möglichkeit, auf dem anderen Rechner die IDE zu installieren? Dann würde ich mal versuchen mit dem Debugger durchzugehen...

Bei D7 reicht der Remote Debugger.

p80286 14. Apr 2009 15:47

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Hallo SimStar001,

nach Deiner Beschreibung ist die Strinlist leer bzw. nicht mit so vielen Lines gefüllt wie das Programm es erwartet.
Liest Du die Inhalte aus einer Datei?

Wenn ja, kann das Programm überhaupt auf die Datei zugreifen?

Gruß
K-H

SimStar001 14. Apr 2009 15:51

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
die Liste ist so deklariert:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
   [...]
   public
   Dialogs : Tstringlist;

erstellt wird diese dann im OnCreate Ereignis der Form1

Delphi-Quellcode:
 Dialogs := TStringlist.create;
die daten werden dann im OnCreate Ereignis einer anderen Form geladen

Delphi-Quellcode:
Form1.dialogs.laodfromfile(xyz.txt);
klappt bei mir alles wie geschmiert, auch der Zugriff:

Delphi-Quellcode:
//z.B. Formxyz.Butto1.caption := Form1.dialogs.strings[55];

Zitat:

Sven M. hat folgendes geschrieben:
Hast du die Möglichkeit, auf dem anderen Rechner die IDE zu installieren? Dann würde ich mal versuchen mit dem Debugger durchzugehen...

Bei D7 reicht der Remote Debugger.
Wo finde ich den?


Zitat:

Hallo SimStar001,

nach Deiner Beschreibung ist die Strinlist leer bzw. nicht mit so vielen Lines gefüllt wie das Programm es erwartet.
Liest Du die Inhalte aus einer Datei?

Wenn ja, kann das Programm überhaupt auf die Datei zugreifen?

Gruß
K-H

Ja das programm kann darauf zugreifen, bestimmte dialoge werden ja anscheinend auch geladen! das ist ja das was mich so stutzig macht.

Bernhard Geyer 14. Apr 2009 15:53

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Zitat:

Zitat von SimStar001
Die daten werden dann im OnCreate Ereignis einer anderen Form geladen

Delphi-Quellcode:
Form1.dialogs.laodfromfile(xyz.txt);

Lädst du die Datei ohne Pfadangabe? Dann wird das aktuell Verzeichnis der Anwendung genommen das nur zufälligerweise das Verzeichnis ist in der die Datei liegt. Du benötigst auch die komplette Pfadangabe (z.B. mit ExtractFilePath(Application.ExeName)).

SimStar001 14. Apr 2009 15:55

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
ne sorry, natürlich gebe ich den kompletten pfad mittels
Delphi-Quellcode:
extractfilpath(paramstr(0)) + '\Data\Programm\' + Filename);
an

Klaus01 14. Apr 2009 15:56

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
.. benutzt Dein Kumpel andere Sprachoptionen?
Sind die (Sprach)Dateien alle gleich groß (Zeilenzahl)?

Grüße
Klaus

SimStar001 14. Apr 2009 15:58

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
die zu ladende Dateien sind alle gleich groß. heißt, es sthet in jeder zeile das selbe in der jeweiligen Sprache. Seine Betriebssystemsprache ist Englisch!

Klaus01 14. Apr 2009 16:06

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Wie bekommt er denn seine Dateien?
Einzeln per FTP? Wird auf dem Übertragungsweg eventuell
der Zeilenumbruch verändert ( von windows auf Linux/Unix)?

windows (0D0A) --> ascii Transfer --> LinuxServer (0D) --> binär Transfer --> windows (0D)
(Nur eine Vermutung).

Grüße
Klaus

SimStar001 14. Apr 2009 16:09

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
nene, die dateien sind ja alle bei ihm auf der festplatte installiert wurden. Per Installer von der Homepage.

Habe mir auch mal seine Installierten Dateien schicken lassen und dann bei mir ausprobiert, und da läuft es wieder einwandfrei!
Das wundert mich einfach nur!!!

p80286 14. Apr 2009 16:24

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Zitat:

Zitat von SimStar001
Ich lade dann jeweils im OnShow oder OnPaint ergeinis mir die entsprechenden dialoge oder Beschriftungen aus der Liste.

Dies klappt auf meinem Rechner wunderbar, und auf einem PC von nem Kumpel überhaupt nicht, er bekommt dann immer ne Fehlermeldung, dass der Listenindex überschritten sei! Ich konnte auch schon feststellen, dass es sich um die beschriebene Liste handelt.

also nochmal zurück, wenn die entsprechende(n) Datei(en) auf beiden Rechnern gleich sind/ist und auf dem einen Recher ein Fehler auftritt auf dem anderen nicht, dan sind sie nicht gleich oder der Fehler sitzt vor dem Rechner.

Könnte es sein, das Dein Kumpel eine Funktion/Form aufruft, das Du eigentlich nie benutzt?
Zitat:

.. er bekommt dann immer ne Fehlermeldung..
wann kommt die Fehlermeldung?
Zitat:

Diese beinhaltet verschiedene Dialoge für verschiedene Sprachen.
Und benutzt Ihr jeweils die gleiche Spracheinstellung?

Gruß
K-H

Blup 15. Apr 2009 08:28

Re: komisches verhalten auf verschiedenen PCs mit TStringlis
 
Vermutung:
Auf dem Rechner deines Kumpels ist Vista als Betriebssystem installiert.
Die Daten werden aus einem Unterverzeichnis von Programme geladen.
Vista hatt noch eine ältere Version der Datei gespeichert und bei Programmstart wird diese geladen.

Prüfe nach dem Laden der Datei mal die Anzahl der Zeilen in der Stringliste.
Eventuell könnte man auch eine Zeile mit Versionsnummer einbauen, die mit der Programmversion übereinstimmen muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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