je viens d'installé delphi 2010
je compile mon application crée avec delphi7 avec delphi 2010
des tas d'erreurs alors qu'avec delphi 7 non
par exemple StrToint il me dit type incompatible
je viens d'installé delphi 2010
je compile mon application crée avec delphi7 avec delphi 2010
des tas d'erreurs alors qu'avec delphi 7 non
par exemple StrToint il me dit type incompatible
Ben il faut mettre les lignes en faute et les messages d'erreurs sinon...
Sachant que la plupart des erreurs viennent du changement de format des string passées en Unicode, une base : http://edn.embarcadero.com/article/38980
N'y aurait-il pas eu passage à l'Unicode entre les 2 ? A revoir tous les problèmes de compatibilité AnsiChar/WideChar, AnsiString/WideString, etc.
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
le document et en anglais je comprend pas bien
y a pas un autre en français
le problème principal que tu vas rencontré est que le type "string" est devenu par défaut une "UnicodeString", l'ancien type string est l'AnsiString voir la RawByteString si elle contient des données binaires et non du texte. Idem pour PChar devenu PWideChar au lieu de PAnsiChar
Sachant cela, tu dois soit adapter ton code pour passer en Unicode en changer le type de tes variables pour forcer l'ANSI...mais ils s'avère généralement plus simple de basculer en Unicode, ce qui implique une attention particulière à tout ce qui est entrées/sorties vers des Socket, des fichiers, ... si l'application D7 a stocké une chaîne dans un fichier, c'est forcément de l'ANSI et il faut la lire comme tel.
je suis un peut confuse est ce que la version 2010 et bonne
justement la première erreur et quand je stocké une chaîne dans un fichier
il ce pointe sur StrToint dans la 2eme line et me dit type incompatible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Append(NW_SIDS); {Opens the file for editing} Writeln(NW_SIDS,MainProgram.name+':'+inttostr(MainProgram.SID_pid)+':'+inttostr(MainProgram.tp_id) +':'+inttostr(MainProgram.PMT_pid)+':'+MainForm.CA_SYSTEMS.Cells[1,Active_ROW]+':'+MainForm.CA_SYSTEMS.Cells[0,Active_ROW]+':'+MainForm.CA_SYSTEMS.Cells[3,Active_ROW]+':;'); Closefile(NW_SIDS); {Closes file NW_SIDS}
salut,
quel est le type de PMT_ID ?
"L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
"Celui qui n'évolue pas disparaît." [Charles Darwin]
“Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]
Béhh , il faut basculer vers l'UNICODE surtout dans l'insertion dans un fichier tel est ton cas ..
Et si tu essaies une conversion de cette façon :
Tu garanties que la chaîne insérée est de type AnsiString ... si ça fonctionnes, termine le boulot pour le reste des insertions ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AnsiString(IntToStr(MainProgram.PMT_pid))
"L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
"Celui qui n'évolue pas disparaît." [Charles Darwin]
“Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]
après plusieurs teste j'ai corrigé l'erreur été avant pas après le curseur
dans MainProgram.name
j'ai fait comme ça remplacé tout les MainProgram.name par AnsiString(MainProgram.name) et plus d'erreur
et la déclaration de MainProgram et comme ca
et dans var
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TProgramm82 = record Name: array[00..29] of char;
maintenant j'ai le problème suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2var MainProgram : TProgramm82;
il affiche des petite carreaux a la place du nom
Code : Sélectionner tout - Visualiser dans une fenêtre à part MainForm.CA_Channel.Cells[1,1]:=MainProgram.Name;
même chose avec AnsiString(MainProgram.name)
Salut , béh , j'estime que c'est une StringGrid: même chose, le composant stockant des strings doit être redéfini .. pas facile la migration !
"L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
"Celui qui n'évolue pas disparaît." [Charles Darwin]
“Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]
comme expliqué plus haut tu dois faire la conversion ANSI/UNICODE en lecture et en écriture de tes fichiers
exemple
sauf si tu désires convertir le fichier en Unicode évidemment, mais tu as probablement besoin de relire des fichiers qui ont été créés en ANSI avec Delphi 7
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 var str: AnsiString; begin str := MainProgram.Name; // conversion Unicode vers Ansi WriteLn(NW_SIDS, Str, ....); end; // en lecture var str: AnsiString; begin ReadLn(NW_SIDS, Str, ....); MainProgram.Name := Str; // conversion Ansi vers Unicode end;
oui mais pour la StringGrid ça ne marche pas
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager