AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Erläuterung was "native unicode string" ist?

Ein Thema von torud · begonnen am 7. Jul 2011 · letzter Beitrag vom 14. Jul 2011
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.962 Beiträge
 
Delphi 12 Athens
 
#1

AW: Erläuterung was "native unicode string" ist?

  Alt 7. Jul 2011, 11:40
Dann übergebe ich die Liste an eine selbst geschriebene Komponente, die die Daten dann an ein ComObjekt (GSTK5Lib_TLB) übergibt.
Dann ist genau das der entscheidende Code. Wie sehen die Deklaration und der Code an genau dieser Stelle aus (in der Objekt-TLB-Unit und dein Aufruf)?

Wenn du dort einen Haltepunkt setzt: Sind die Daten dort noch korrekt?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Erläuterung was "native unicode string" ist?

  Alt 7. Jul 2011, 13:45
ich checks mal und melde mich dann wieder.
danke erstmal soweit.
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Erläuterung was "native unicode string" ist?

  Alt 8. Jul 2011, 12:20
Also ich habs jetzt mal überprüft.

Der Aufruf in der TLB_Unit sieht so aus:
procedure set_(const address: WideString; const attrName: WideString; value: OleVariant); safecall; Sprich ich übergebe den Namen des Objektes, dann den Typ (text) und dann den Inhalt des Objektes.

Der Aufruf dieser Procedure in meiner Komponente läuft so ab:
Delphi-Quellcode:
      //AUSSCHNITT
      //hier werden die texte aus der TWideStringlist einzeln übergeben
      for i := 0 to TextString.Count - 1 do
        loc_AkiTitle.set_(TextString.Names[i],'Text',TextString.Values[TextString.Names[i]]);

      //hier werden die logos aus der TWideStringlist einzeln übergeben
      for i := 0 to LogoString.Count - 1 do
        loc_AkiTitle.set_(LogoString.Names[i],'FileName',LogoString.Values[LogoString.Names[i]]);

      //hier werden zusätzliche Eigenschaften aus einer TWideStringlist einzeln übergeben
      for i := 0 to PropList.Count - 1 do
        loc_AkiTitle.set_(PropList.Items[i].str_Name,PropList.Items[i].str_Type,PropList.Items[i].str_Value);
TextString, LogoString sind vom Typ her TWideStringlist

Also sollte das doch so passen.
Oder?

Obwohl, ich sehe gerade, dass der eigentliche Inhalt vom Typ her value: OleVariant ist. Kann hier die Ursache für das Problem liegen?
Inhalte, die ich aus Edits hole, kommen ausschließlich von TTntEdits.
Die TWideStringlist habe ich mir fertig von der JCL geborgt.

Ich hoffe, dass das eventuell etwas hilft, mir bei meinem Problem zu helfen?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.962 Beiträge
 
Delphi 12 Athens
 
#4

AW: Erläuterung was "native unicode string" ist?

  Alt 8. Jul 2011, 14:17
Hmm, testweise könntest du TextString.Values[TextString.Names[i]] usw. einmal in WideString Variablen zwischenspeichern bevor du es übergibst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Erläuterung was "native unicode string" ist?

  Alt 9. Jul 2011, 08:30
Nur, um kurz mal sicher zu gehen.

Du meinst, ich soll mir die 2 übermittelten Werte jeweils in einer WideString-Variablen zwischenspeichern und dann der TLB-Funktion übergeben?

Wäre dabei was anders?
Oder soll ich mir das dann loggen?
Was ist der Hintergrund Deines Vorschlags?
Danke
Tom
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#6

AW: Erläuterung was "native unicode string" ist?

  Alt 9. Jul 2011, 08:47
So nebenbei würde ich auch 'ValueFromIndex' verwenden. Tut zwar nix zur Sache, ist aber schneller und übersichtlicher.
Delphi-Quellcode:
for i := 0 to TextString.Count - 1 do
   loc_AkiTitle.set_(TextString.Names[i],'Text',TextString.ValueFromIndex[i]);
Das Bild hängt schief.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Erläuterung was "native unicode string" ist?

  Alt 11. Jul 2011, 10:05
So nebenbei würde ich auch 'ValueFromIndex' verwenden. Tut zwar nix zur Sache, ist aber schneller und übersichtlicher.
Delphi-Quellcode:
for i := 0 to TextString.Count - 1 do
   loc_AkiTitle.set_(TextString.Names[i],'Text',TextString.ValueFromIndex[i]);
TextString.ValueFromIndex[i] gibt es nicht in einer TWideStringlist;
aber trotzdem danke für den Optimierungsversuch.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

AW: Erläuterung was "native unicode string" ist?

  Alt 9. Jul 2011, 08:50
Nur, um kurz mal sicher zu gehen.

Du meinst, ich soll mir die 2 übermittelten Werte jeweils in einer WideString-Variablen zwischenspeichern und dann der TLB-Funktion übergeben?

Wäre dabei was anders?
Oder soll ich mir das dann loggen?
Was ist der Hintergrund Deines Vorschlags?
Wenn ich Sebastian richtig verstanden habe, will er damit erreichen, wie Dein übergebener Wert im Widestring aussieht. Du setzt an der Stelle wieder einen Haltepunkt und dann schaust Du Dir die temporären Werte an, ob Sie gleich sind mit der Quelle oder nicht.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.962 Beiträge
 
Delphi 12 Athens
 
#9

AW: Erläuterung was "native unicode string" ist?

  Alt 9. Jul 2011, 11:11
Nicht nur deshalb. Dadurch wird sichergestellt, dass ein neuer WideString als direkte WideString Variable an den OleVariant Wert übergeben wird.

Eigentlich sollte das keinen Unterschied machen. Aber man weiß ja nie...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz