cs_systmd
Messages postés41Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention29 août 2012
-
1 sept. 2006 à 02:02
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
1 sept. 2006 à 16:50
Bonjour,
J'aimerais savoir si quelqu'un sait comment résoudre ce probléme:
Ne fonctionne pas : SendMessage(Edit2.Handle,StrToInt64Def(Trim(Edit1.Caption),0),1, 0);
Fonctionne : SendMessage(Edit2.Handle,EM_SETREADONLY,1, 0);
si je fait label1.caption:=IntToStr(EM_SETREADONLY); celà me donne 207
si je remplace EM_SETREADONLY pas le texte de mon edit
en faisant label1.caption:=StrToInt64Def(Trim(Edit1.Caption); ça donne 0
Emandhal
Messages postés194Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention10 octobre 20063 1 sept. 2006 à 08:19
Petite correction...
Function TryStrToCardinal(Const S: String; out Value: Cardinal): Boolean;
Var
tmpInt: Int64;
Begin
Result := False;
If TryStrToInt64(S, tmpInt) Then
If not ((tmpInt<Low(Cardinal)) or (tmpInt>High(Cardinal))) Then
begin
Value := tmpInt;
Result := True;
Exit;
end;
End;
Chez moi ca fonctionne nickel, si ca ne fonctionne pas chez toi c'est peut-etre parce que ta chaine n'est pas totalement un suite de chiffres...
Tout problème a sa solution... Mais en général, celle que l'on trouve n'est jamais la bonne...
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 1 sept. 2006 à 13:44
ça ne m'explique toujours pas pourquoi tu veux utilisé les messages ...
Et si tu sais que : " SendMessage(Edit1.Handle,EM_SETREADONLY,1, 0); "
C'est pour mettre Edit1 en lecture seul ...
Tu devrais savoir que le deuxième paramètre de SendMessage est le message à envoyé
et donc que forcément ceci " SendMessage(Edit2.Handle,StrToInt64Def(Trim(Edit1.Caption),0),1, 0); " ne pourra jamais fonctionner
Ensuite tu dis :
Edit2.Text := IntToStr (StrToInt64Def(Edit1.Text, 0)); -->donne 0 et non pas 207
Mais quel est la valeur de Edit1.Text ...
si Edit1.Text : = S207 le résultat sera 0
si Edit1.Text := 207 le résultat sera 207
si Edit1.Text := 207W le résultat sera 0
si Edit1.Text := 20P7 le résultat sera 0
Et quand tu dis pas la peine de me parler de Edit1.ReadOnly := True;
Je suppose donc que l'édit en question ne se trouve pas dans la même application
Et pour finir je pense qu'une petite visite sur la page du règlement de CodeS SourceS ne peut pas te faire de mal.
on ne sais toujours pas ce que tu veux faire (ce qui est très important pour tout ceux qui voudront te répondre) et entre nous les membres ne sont pas encore des voyants.
Emandhal
Messages postés194Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention10 octobre 20063 1 sept. 2006 à 08:10
Function StrToCardinal(Const S: String): Cardinal;
Begin
If not TryStrToCardinal(S, Result) Then
Raise EConvertError.Create(Format('''%s'' n''est pas une valeur entière correcte', [S]));
End;
Function StrToCardinalDef(Const S: String; Default: Cardinal): Cardinal;
Begin
If not TryStrToCardinal(S, Result) Then Result := Default;
End;
Function TryStrToCardinal(Const S: String; out Value: Cardinal): Boolean;
Var
tmpInt: Int64;
Begin
Result := False;
If TryStrToInt64(S, tmpInt) Then
If (tmpInt<Low(Cardinal)) or (tmpInt>High(Cardinal)) Then Exit
else begin
Value := tmpInt;
Result := True;
end;
End;
Tout problème a sa solution... Mais en général, celle que l'on trouve n'est jamais la bonne...
cs_systmd
Messages postés41Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention29 août 2012 1 sept. 2006 à 12:28
@CIREC
Cette ligne SendMessage(Edit1.Handle,EM_SETREADONLY,1, 0);
c'est pour rendre Edit1 en lecture seul .
Pas la peine de me parler de Edit1.readonly:=true, c'est pas ce que je cherche.
Edit2.Text := IntToStr(StrToInt64Def(Edit1.Text, 0)); -->donne 0 et non pas 207