Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Array of WCHAR übergeben. (https://www.delphipraxis.net/201019-array-wchar-uebergeben.html)

EWeiss 16. Jun 2019 17:22

Array of WCHAR übergeben.
 
Sorry habe heute wieder was an der Klatsche..
Ich erstelle 2 gleiche Arrays und möchte das eine dem anderen übergeben will irgendwie nicht.

Delphi-Quellcode:
x : Array [0..63] of WCHAR;
y : Array [0..63] of WCHAR;
jetzt soll x = y werden.
Also einfach x := Y funktioniert aber nicht.

Inkompatible typen obwohl eigentlich gleich.

gruss

zeras 16. Jun 2019 17:26

AW: Array of WCHAR übergeben.
 
Versuche es doch einmal, das Array als Typ zu deklarieren und dann bei den Variablen den Typ angeben. Das sollte gehen.

Delphi-Quellcode:
type
  ar = Array [0..63] of WCHAR;

var
 x,y : ar;

EWeiss 16. Jun 2019 17:32

AW: Array of WCHAR übergeben.
 
Zitat:

Zitat von zeras (Beitrag 1434758)
Versuche es doch einmal, das Array als Typ zu deklarieren und dann bei den Variablen den Typ angeben. Das sollte gehen.

Delphi-Quellcode:
type
  ar = Array [0..63] of WCHAR;

var
 x,y : ar;

Danke werde es mal testen..

PS:
Funktioniert warum muss man da über Type gehen ?
Wenn ich einen String mit einem anderen austausche habe ich das Problem doch auch nicht.

gruss

Zacherl 16. Jun 2019 17:37

AW: Array of WCHAR übergeben.
 
Statische Arrays konnte man doch noch nie einfach zuweisen, oder?

EWeiss 16. Jun 2019 17:40

AW: Array of WCHAR übergeben.
 
Zitat:

Zitat von Zacherl (Beitrag 1434760)
Statische Arrays konnte man doch noch nie einfach zuweisen, oder?

Es ist aber vom gleichen typ ;) Das ist was mir unverständlich ist.

string = string, Integer = Integer.

Array vom gleichen Typ nicht gleich Array?.. hmmm
Funktioniert bin aber auf PWideChar umgestiegen.

gruss

Andreas13 16. Jun 2019 18:41

AW: Array of WCHAR übergeben.
 
Zitat:

Zitat von EWeiss (Beitrag 1434759)
[DELPHI]
type
ar = Array [0..63] of WCHAR;

PS:
Funktioniert warum muss man da über Type gehen ?

Wegen der strengen Typenprüfung von Delphi sind sie nur dann "wirklich" identisch.

Gruß
Andreas

EWeiss 16. Jun 2019 18:58

AW: Array of WCHAR übergeben.
 
Zitat:

Zitat von Andreas13 (Beitrag 1434763)
Zitat:

Zitat von EWeiss (Beitrag 1434759)
[DELPHI]
type
ar = Array [0..63] of WCHAR;

PS:
Funktioniert warum muss man da über Type gehen ?

Wegen der strengen Typenprüfung von Delphi sind sie nur dann "wirklich" identisch.

Gruß
Andreas

Ok.. Danke ;)
Am ende wollte ich nichts anderes als einen ToolTip ;)

gruss

EWeiss 16. Jun 2019 22:40

AW: Array of WCHAR übergeben.
 
Zitat:

Zitat von Zacherl (Beitrag 1434760)
Statische Arrays konnte man doch noch nie einfach zuweisen, oder?

Muss ich mir merken das kommt bestimmt wieder.. :lol:

gruss

Andreas13 17. Jun 2019 08:37

AW: Array of WCHAR übergeben.
 
[QUOTE=EWeiss;1434773]
Zitat:

Zitat von Zacherl (Beitrag 1434760)
Statische Arrays konnte man doch noch nie einfach zuweisen, oder?

Zitat:

Muss ich mir merken das kommt bestimmt wieder.. :lol:
Statische Arrays KANN man direkt zuweisen: A:= B;
Nur bei DYNAMISCHEN Arrays (= Pointer) muss man den Inhalt per Copy(..) übertragen, es sei denn Du willst lediglich dessen Adresse zuweisen.

Gruß
Andreas

EWeiss 17. Jun 2019 08:47

AW: Array of WCHAR übergeben.
 
[QUOTE=Andreas13;1434787]
Zitat:

Zitat von EWeiss (Beitrag 1434773)
Zitat:

Zitat von Zacherl (Beitrag 1434760)
Statische Arrays konnte man doch noch nie einfach zuweisen, oder?

Zitat:

Muss ich mir merken das kommt bestimmt wieder.. :lol:
Statische Arrays KANN man direkt zuweisen: A:= B;
Nur bei DYNAMISCHEN Arrays (= Pointer) muss man den Inhalt per Copy(..) übertragen, es sei denn Du willst lediglich dessen Adresse zuweisen.

Gruß
Andreas

Gut zu wissen ;) Danke.

gruss

jaenicke 17. Jun 2019 09:28

AW: Array of WCHAR übergeben.
 
Noch ein Wort zur Erklärung:
Delphi erstellt einen neuen internen Typ sobald es eine Typdeklaration findet. Benutzt man keinen fertigen Typ wie im vorliegenden Fall, passiert genau das bei der Variablendeklaration. Dadurch haben dann zwei Variablen unterschiedliche Typen obwohl die Deklaration gleich aussieht.


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