cs_cricri_forever
Messages postés49Date d'inscriptionmercredi 28 septembre 2005StatutMembreDernière intervention31 mars 2006
-
2 mars 2006 à 03:59
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
4 mars 2006 à 17:26
Quelqu'un pourrait m'aider a expliquer ce code et si il a moyen de le simplifier encore...
procedure TVersion.ChangeVersionResult(Value: boolean);
begin FWithoutBuildVersion:= Value;
FVersion:=NoVersion;
FCaption:=Concat(FTextBefore,FVersion);
Invalidate;
end ;
function TVersion.NoVersion: shortstring;
{ --- Code écrit par Nono40 (http://nono40.developpez.com) --- }
{-}var
{-} S, temp: string;
{-} Size: DWord;
{-} Buffer: PChar;
{-} VersionPC: PChar;
{-} VersionL: DWord;
{-}begin
{-} Result: ='0.0.0.0'; // Valeur par défaut
{-} Buffer:= '';
{-} S := Application.ExeName;
{-}
{-} Size := GetFileVersionInfoSize(PChar(S), Size);
{-} if Size>0 then {-} try {-} {--- Réservation en mémoire d'une zone de la taille voulue ---}
{-} Buffer : = AllocMem(Size);
{-} {--- Copie dans le buffer des informations ---}
{-} GetFileVersionInfo(PChar(S), 0, Size, Buffer);
{-} {--- Recherche de l'information de version ---}
{-} if VerQueryValue(Buffer, PChar('\StringFileInfo\040C04E4\FileVersion'),
{-} Pointer(VersionPC), VersionL) then {-} Result:= VersionPC;
{-} finally
{-} FreeMem(Buffer, Size);
{-} end;
{ --- Code écrit par Nono40 (http://nono40.developpez.com) --- }
{ --- Suivant affichage demandé --- }
if FWithoutBuildVersion thenbegin temp: =Result;
while pos('.',Result)<>0 do Result:= copy(Result,pos('.',Result)+1,length(Result)-pos('.',Result));
Result:=copy(temp,0,length(temp)-length(Result)-1);
end ;
end;
procedure TVersion.Paint;
var tmpC:TColor;
begin inherited Paint;
with Canvas dobegin Font: =Self.Font;
Brush.Color:= Self.Color;
{ --- Positionnement du texte --- }
FXOff:=(Width-TextWidth(FCaption)) div 2;
FYOff:=(Height-TextHeight(FCaption)) div 2;
Width:=TextWidth(FCaption)+(2*FXOff);
Height:=TextHeight(FCaption)+(2*FYOff);
{ --- Encadré --- }
if (FBorderStyle<>bsNone) then Rectangle(ClientRect);
{ --- Ecriture du numéro de version --- }
if FShadow thenbegin Brush.Style: =bsClear;
tmpC:= Font.Color;
Font.Color:=FShadowColor;
TextOut(FXOff+FShadowW,FYOff+FShadowW,FCaption);
Font.Color:=tmpC;
end ;
TextOut(FXOff,FYOff,FCaption);
end;
end;
procedure TVersion.SetBorderStyle(Value: TBorderStyle);
begin FBorderStyle: =Value;
Invalidate;
end;
procedure TVersion.SetShadow(Value: boolean);
begin FShadow:= Value;
Invalidate;
end ;
procedure TVersion.SetShadowColor(Value: TColor);
begin FShadowColor: =Value;
Invalidate;
end;
procedure TVersion.SetShadowWidth(Value: byte);
begin if (Value<= 10) and (Value>0) then FShadowW: =Value
else FShadowW:= 2;
Invalidate;
end ;
procedure TVersion.SetTextBefore(Value: Shortstring);
begin FTextBefore: =Value;
FCaption:=Concat(FTextBefore,FVersion);
Invalidate;
end;
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 2 mars 2006 à 22:39
voili, il est prévu jusqu'à D6 mais personnellement, je l'utilise sous D7 et je n'ai aucun souci..
dans le source tu retrouveras le code que tu as publié..
je m'en suis d'ailleurs inspiré pour faire un prog de MAJ automatique d'une appli en détectant le changement de version et non l'heure..
http://www.torry.net/authorsmore.php?id=570
cantador
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 mars 2006 à 11:25
Le package "Delphi Free Stuff Package" contient beaucoup de composants
tu peux tout installer ou n'installer que "TdfsVersionInfoResource" mais pour çà il faut mieux extraire les bons fichiers du paquet afin de n'avoir que ce composant..
(pour simplifier et gagner de la place)
les autres je ne le connais pas je ne peux donc rien en dire..
Je t'envoie un mail privé afin que tu me donnes ton Email et je transmets aussitôt le petit zip avec quelques recommandations (car il est un peu ancien et il faut mieux le refaire au moment de l'install.. simple tout est prévu avec delphi..)