ok, bin je pensais pas que c'était aussi simple
merci à tous
ok, bin je pensais pas que c'était aussi simple
merci à tous
Je reviens à la charge, mais en fait le copymemory ne fonctionne pas, access violation à chaque coup (même avec un sendmessage etc).
du coup j'essaye par ce code :
SendMessage (FindWindow (nil, 'XXX'), PM_NEW_VALUE, PInteger (@NewValue.Value)^, 0);
avec NewValue.Value bien en Single. compilation ok, le code s'execute sans planter.
par contre quand je veux le récupérer via Single (Msg.LParam); dans le programme qui récupère le message PM_NEW_VALUE, ça ne compile pas, invalid type cast.
désolé d'être un boulet mais delphi n'est pas mon langage de prédilection
et c'est un tort !
alors Integer et Single occupent le même espace mémoire, c'est pourquoi on peut stocker l'un dans l'autre.
pour t'éviter la gymnastique des pointeurs tu peux faire les choses de façon plus simple.
tu peux utiliser aussi un type complexe (union en C) dont la déclaration est un peu tordue mais qui donne un résultat très lisible:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var i: Integer; s: Single; begin s := 12.5; // la valeur que tu veux envoyer Move(s, i, SizeOf(i)); // et hop ! c'est un entier SendMessage(..., i); // de l'autre côté Move(Msg.lParam, s, SizeOf(s)): // et hop ! c'est un Single end;
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
17
18
19
20 type Convert = record case boolean of True : (AsInt: Integer); False: (AsFloat: Single); end; var i: Integer; s: Single; begin s := 12.5; SendMessage(... Convert(s).AsInt); // s := Convert(Msg.lParam).AsFloat; end;
J'ai utilisé la technique de Move, ça fonctionne
merci, j'ai appris beaucoup de choses
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