Composant

cs_cricri_forever Messages postés 49 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 31 mars 2006 - 2 mars 2006 à 03:59
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 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 ;

constructor TVersion.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FTextBefore: ='V ';
FVersion:= NoVersion;
FCaption:=Concat(FTextBefore,FVersion);
FBorderStyle:=bsNone;
FWithoutBuildVersion:=False;
Width:=65;
Height:=15;
FShadow:=false;
FShadowW:=2;
FShadowColor:=clWhite;
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 then begin
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 do begin
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 then begin
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;

end.

8 réponses

DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
2 mars 2006 à 09:41
Salut,

pourquoi ne pas demander au créateur ? (càd nono40) :

son adresse :
[mailto:forum@redaction-developpez.com forum@redaction-developpez.com]

DrJerome
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 mars 2006 à 22:04
Si intéressé, j'ai un compo (freeware) qui fait tout ça..

cantador
0
cs_cricri_forever Messages postés 49 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 31 mars 2006
2 mars 2006 à 22:10
vazy fait tourner svp
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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
0

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

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 mars 2006 à 22:40
gulp le nom vite : TdfsVersionInfoResource

cantador
0
cs_cricri_forever Messages postés 49 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 31 mars 2006
2 mars 2006 à 23:05
et comment j'installe tout sa
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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..)

mais il est marche nickel chrome !

A bientôt

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 mars 2006 à 17:26
oh hé du bateau ?

cantador
0
Rejoignez-nous