DIGISPEC : NUMÉRISATION D'ÉLECTROPHORÈSES (SPECTRES ÉLECTROPHORÉTIQUES)

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 21 févr. 2007 à 09:09
 Utilisateur anonyme - 28 août 2007 à 19:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41564-digispec-numerisation-d-electrophoreses-spectres-electrophoretiques

Utilisateur anonyme
28 août 2007 à 19:05
Merci Globus56!
J'utilise Delphi7 pro,
je teste ça ce soir et te dis quoi,
encore merci,
PhilLu
Globus56 Messages postés 7 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 27 août 2007
27 août 2007 à 23:25
Bonsoir,

Je compile avec Delphi5, les erreurs signalées viennent sans doute de modifications faites par Borland dans les versions suivantes... OleAuto est une unité fournie en standard avec Delphi5, si tu as une autre version de Delphi... soit elle n'existait pas dans les versions antérieures, soit elle a changé de nom dans les versions suivantes... Il faudrait donc reprendre la doc de votre version de Delphi pour voir, mais j'ai bien écrit "il faudrait" car en fait je n'ai jamais pris le tmeps de mettre au point la liaison OLE destinée à envoyer les données directement dane Excel (nécessité de se taper la doc Microsoft, pas vraiment accessible), vous pouvez donc supprimer le code correspondant, soit
- l'item du menu "Exporter dans Excel"
- la procédure correspondante: "TForm1.Exporter1Click" qui de toutes façons ne marche pas.
Pour la seconde erreur, là je ne vois vraiment pas car TAction est un type énuméré déclaré dans l'interface de l'unité principale... si maintenant on n'a plus le droit de déclarer des types en Delphi, où va le monde? Bon, évidemment, le type est utilisé pour déclarer une variable globale ce qui n'est pas joli-joli, mais c'est quand même permis! Pour avancer, il faudrait savoir à quel endroit du code se trouve l'erreur (normalement, le compilateur affiche la ligne fautive) et essayer de comprendre là où ça coince. Attention, la variable globale s'appelle Action_ vérifiez que le "_" se trouve bien partout sauf dans la ligne "procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);" où justement Action (sans "_") est d'un type descendant de TBasicAction.

Merci de vos messages et n'hésitez pas à y revenir si ça ne marche toujours pas. Bon courage pour la programmation Delphi.

F.Borie (Globus56)
Utilisateur anonyme
27 août 2007 à 18:33
... ensuite la compil me retourne l'erreur:
Incompatible types: TBasicAction and TAction
???
Merci pour votre aide!
A+
Phil.
Utilisateur anonyme
27 août 2007 à 18:19
Bonjour,
j'essaie de compiler digispec, mais je reçois le code d'erreur :
File not found: OleAuto.dcu
qui peux m'aider?
A+
PhilLu.
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
22 févr. 2007 à 11:44
c'est les programmes originaux qui sont rare ... alors la moindre des choses c'est d'aller saluer l'auteur :)

sincerement pour les constantes, je ne les utilises meme plus, sauf quand il faut definir des parametres.

les constantes typées affectable, c'est carrement obsolete de les utiliser ... ça sert a rien sauf a faire galerer le compilo.
Globus56 Messages postés 7 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 27 août 2007
22 févr. 2007 à 10:45
Merci f0xi pour ces remarques constructives.
C'est vrai qu'il manque une phase de relecture et d'optimisation de mon code... une fois qu'il faisait ce dont j'avais besoin, je l'ai laissé en l'état.
J'aurai au moins appris quelques "ficelles" comme l'initialisation des variables (au fait, je crois qu'on le faisait déjà en Turbo Pascal en utilisant les constantes typées).
Pareil pour le tyte Real: une vielle habitude...
Les encouragements, ça fait toujours plaisir, mais ça devient si rare!
G56
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
21 févr. 2007 à 09:20
ah et ça aussi :

procedure TForm1.Option1Click(Sender: TObject);
const
STI : array[boolean] of byte = (0,1);
ITS : array[boolean] of char = '.,';
begin
Option.RadioGroup1.Itemindex :STI[Sep ','];
Option.showModal;
Sep :ITS[Option.RadioGroup1.Itemindex 1];
end;


a la fin du fichier tu peu enlever ça et faire :
begin
Sep:=','; Action :=Aucune; Donnees:=False;
end.


var
Form1 : TForm1;
FC : Text;
Action : TAction = Aucune;
Debut,
Fin : TPoint;

implementation

Var Serie : Byte;
NomFichier : String;
Sep : char = ',';
Donnees : Boolean = False;


et oui, on peu initialiser des variables directement dans la declaration, a partir du moment ou ce sont des variables Globales (cad : en dehors d'une methode < variable locale)
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
21 févr. 2007 à 09:09
je regarderais ça en details plus tard, car ça m'as l'air interressant,
par contre tu peu tout de suite modifier ça :

Function SansExt(const Nom:String):String;
Begin
result := Copy(Nom, 1, Length(Nom) - Length(ExtractFileExt(Nom)));
end;

et ça :

function RealChaine(const V : single) : string;
var FS : TFormatSettings;
begin
FS.DecimalSeparator := Sep;
result := format('%.2f', [V], FS);
end;

et aussi pour simplifier et accelerer le calcul de densité :

function GetDensity(const Color : integer) : single;
var CC : integer;
begin
CC := Not Color;
result := (byte(CC) + byte(CC shr 8) + byte(CC shr 16)) / 7.65;
end;

prefere l'utilisation du type Single ou Extended plutot que le type Real :

PasX, PasY, Densite : Single; (le type real est obsolete)
Rejoignez-nous