AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler mit Combobox und DelimitedText

Ein Thema von Rainer Wolff · begonnen am 14. Mai 2018 · letzter Beitrag vom 18. Mai 2018
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehler mit Combobox und DelimitedText

  Alt 14. Mai 2018, 21:32
Als Hinweis/Warnung:

Ich bin bei der Übernahme eines XE-Projekts auf Tokyo mal wieder auf die Schnauze gefallen. In einem Formular wird eine DBCombobox als Nachschlageliste aus einem Ini-File mit einem Semikolon-separierten String gefüllt (Es handelt sich um verschiedene Default-Längenmaße, die über die Ini variabel belegt werden können, so was wie
Laengen = 450,0;550,5;680,2
).
Der String wird im FormCreate gesetzt, zusammen mit dem Setzen des Delimiters auf Semikolon. Funktioniert unter XE wunderbar (auch wenn ich das etwas anders lösen würde).
Unter Tokyo waren plötzlich meine Datenbankfelder leer, bei genauerer Betrachtung hat Delphi den Laengenstring falsch aufgesplittet (Komma als Trennzeichen).
Die Items waren im Designer bereits auf Werte gesetzt.

Abhilfe brachte, im Designer die Items-Liste zu löschen und nur aus der Ini zu initialisieren.

In den Tokyo-Sourcen ist ersichtlich, dass die Liste beim Neuzeichnen nochmal irgendwie zwischengespeichert wird, und der Delimiter wieder auf seinen Standardwert gesetzt wird, bevor die Ini-Werte gelesen werden. Daher dann das falsche Splitting.

Ich werde wohl noch versuchen, das in die Quality Central zu posten, aber musste den Hinweis auch hier mal loswerden.
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
243 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fehler mit Combobox und DelimitedText

  Alt 15. Mai 2018, 07:54
Hallo,

parse die Liste aus der Ini doch selbst und füge die Elemente einzeln hinzu.
Ich würde allerdings ein ClientDataset nehmen und auf eine DBLookupCombo wechseln.
Es scheint sich ja um ein Float-Field zu handeln - dann hätte man auch kein Problem mit Dezimaltrennzeichen z.B. im Englischen.
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Fehler mit Combobox und DelimitedText

  Alt 15. Mai 2018, 20:01
Hallo,

parse die Liste aus der Ini doch selbst und füge die Elemente einzeln hinzu.
Ich hab das Problem ja schon umfummelt (umgangen wär schon übertrieben)
Ich würde allerdings ein ClientDataset nehmen und auf eine DBLookupCombo wechseln.
Nicht auf meinem Mist gewachsen, ich habs geerbt, ich würds wahrscheinlich auch in die DB stopfen, schon wegen Backup
Es scheint sich ja um ein Float-Field zu handeln - dann hätte man auch kein Problem mit Dezimaltrennzeichen z.B. im Englischen.
quick and dirty halt, und auch nur ein Einzelprogramm
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fehler mit Combobox und DelimitedText

  Alt 16. Mai 2018, 09:25
Sprachabhängige Daten aus Dateien zu laden war noch niemals eine gute Idee.
Diese INI auf einem englichen System, bzw. in einem englischsprachigen Benutzerkonto. (anderer Benutzer oder ein Nuter hat seine Sprache umgestellt)

Zitat:
Der String wird im FormCreate gesetzt
Je nach Einstellung ist das auch nicht immer die gleiche Stelle (Delphi-Referenz durchsuchenTForm.OldCreateOrder) und gerade beim Upgrade der Delphi-Version kann sich sowas schnell mal ändern.


PS: LookupComboBox ... innen die "richtigen" Werte und angezeigt die sprachabhängige Version, in welcher es auch mal nicht gleich katastrophal endet, wenn es dort ein paar Konvertierungsproblemchen gibt.
$2B or not $2B

Geändert von himitsu (16. Mai 2018 um 09:28 Uhr)
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
317 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fehler mit Combobox und DelimitedText

  Alt 18. Mai 2018, 14:00
Ich habe gute Erfahrungen gemacht, wenn ich StrictDelimiter auf true setze.
  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 05:31 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