Rave 8 sur delphi 2009

gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010 - 28 mai 2010 à 09:32
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010 - 17 juin 2010 à 11:53
Bonjour,

J'ai recompilé une application qui fonctionnait correctement en delphi 7 et rave 7.6 be avec delphi 2009 enterprise et rave 8. Pas de souci pour la compil mais mon tableau imprimé ( avec TTablePrinter ) rajoute des carrés, remplace des lettres par d'autres ou par des carrés.

Qui peut m'aider?

Bien à vous,

G. PLETINCKX

8 réponses

cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
1 juin 2010 à 19:12
Salut,
Le problème vient d'une des différences entre les 2 versions de delphi.
Delphi 7 gèrent par défaut des caractères ANSI.
Delphi 2009 gèrent par défaut des caractères Unicode.
@+yanb
0
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010
2 juin 2010 à 09:10
Oui j'ai cru comprendre cela. Mais je fais comment pour régler mon problème?

Bien à vous,

G. PLETINCKX
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
2 juin 2010 à 10:44
Salut,
il faut refaire le code pour delphi 2009.
Par exemple mettre certaines variables ou constantes String en AnsiString, PChar en PAnsiChar etc...
Const
{$IFDEF UNICODE}//Si Unicode Delphi2009
S : AnsiString;
T : PAnsiChar;
{$ELSE}//Si ANSI Delphi7
S : String;
T : PChar;
{$ENDIF UNICODE}

En résumé bon courage.
@+yanb
0
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010
2 juin 2010 à 10:53
Merci.


G. PLETINCKX
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010
2 juin 2010 à 14:03
Je dois mettre ce code à quel endroit dans mon programme? J'ai essayé en-dessous de var mais je reçois des erreurs: = attendu et ; trouvé.

Bien à vous,

G. PLETINCKX
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
3 juin 2010 à 09:18
Salut,
l'exemple est là pour te montrer comment pouvoir compiler sans affecter le fonctionnement de l'application entre les versions de delphi.
Var
{$IFDEF UNICODE}//Si Unicode Delphi2009
S : AnsiString;
T : PAnsiChar;
{$ELSE}//Si ANSI Delphi7
S : String;
T : PChar;
{$ENDIF UNICODE}

C'est à toi de voir les variables ,constantes, code, function, procedure à passer en ANSI ou Unicode.
@+yanb
0
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010
3 juin 2010 à 11:57
Désolé de paraître idiot, mais donc je dois procéder pour toutes mes variables de type string. Si une variable s'appelle alpha je dois la caler dans le petit script?

Gros boulot!

Bien à vous,


G. PLETINCKX
0
gpletinckx Messages postés 40 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 3 août 2010
17 juin 2010 à 11:53
Bonjour,

J'ai testé cette solution. Il semble ne pas y avoir d'erreur mais le programme plante sur la ligne:

procedure TFGrele.TPGrele1ANNEERowSetup(TableColumn: TTableColumn);
begin
TableColumn.MemoBuf.Text := (Table1[0, Index]) ;
end;

Je dois adapter la ligne car table1 est la variable entrée dans le code var et je suppose que ça bloque avec MemoBuf.Text.

Comment adapter cette ligne?

Bien à vous,

G. PLETINCKX
0
Rejoignez-nous