IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Delphi Discussion :

Utilitaire pour organiser vos sources


Sujet :

Contribuez Delphi

  1. #1
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut Utilitaire pour organiser vos sources
    Utilitaire pour organiser vos sources,fichiers..etc
    Source:
    Fichiers attachés Fichiers attachés
    • Type de fichier : rar po.rar (234,2 Ko, 107 affichages)

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    mmm, etrange... je vois pas trop à quoi ça sert ... c'est juste une demo ?


    1) pour l'exe, un petit passage dans UPX pour en reduire la taille
    http://upx.sourceforge.net/
    Permet jusqu'a 60, 70% de gain.

    2) Evite la couleur "clLime" au possible, surtout sur fond "clSilver" ou "clGray" !
    un conseil :
    fond blanc ou legerement gris ($e0e0e0)
    mots clef en purple ($800080 ou clPurple)
    identifiant en turquoise ou bleu marine (clTeal, clNavy)
    symboles en orange foncé ($0080FF)
    nombres entiers, flottant et hexa en clFuschia
    commentaire en clGreen italic

    4) Essaye de mieux bosser le design des interfaces, pas de gros boutons, pas d'onglets obèses, éviter les contrastes de couleurs trop monotone ou trop flashie (y'a rien de pire qu'un danseur de tektonik à un enterrement).
    Pense également à l'interactivité, doit être agréable, fluide, intuitive et harmonieuse.
    Inspire toi de logiciels identiques, et adapte les meilleures choses (adapte, pas copie).

    5) n'oublie pas de détailler correctement ton programme pour qu'on sache de quoi il s'agit réellement.
    "organiser vos source" ... heu oui ... mais de qu'elle façon ?

    6) pas de code source ?


    edit:

    je me suis permis de completer un peu tes listes (voir pj)
    Fichiers attachés Fichiers attachés

  3. #3
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Mais c'est une contribution...

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par Montor Voir le message
    Mais c'est une contribution...
    c'est sur oui, mais ... elle est déroutante ... j'avoue ne pas savoir à quoi j'ai affaire quand j'exécute le programme ... ni quoi en faire ...

  5. #5
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    peut-etre que tu n'as pas remarque que c'est un editeur html pour creer votre propre help
    le bouton parser permet de recuperer le nom ,type agrument d'une methode simplement en entrant sa declaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function ExLink(const LinkName,Arg:string): Boolean;
    les sources sont sur la premiere poste de l'application j'ai désactivé ces lignes dans Universal.dpr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if FindInst()  then
        Application.Terminate()
      else
    Si tu as la palette SynEdit active cette ligne dans UInit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Reg(xCodeView,TCodeView);
    j'attends tes remarques

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    HE BEN! moi qui me plaignez de pas avoir le source, je suis servis !

    bel effort déjà, ça me parait bien complet.

    bon première "remarque" :

    n'écrit pas -> function UnTruc(): boolean; ou Application.Restore();
    écrit -> function UnTruc: boolean; ou Application.Restore;

    c'est pas du C, pas d'arguments, pas de parenthèses.



    Main.pas :

    on peut ecrire DeliMille comme cela, mesurer les perf (QPC) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function DeliMille(AValue:integer):string;
    begin
      result := format('%.0n',[AValue+0.0]);
    end;

    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TBibMainForm.BRacExecute(Sender: TObject);
        function IdxStr(AB:TBibRowType;Idx,AExt:integer):string;
        begin
            result:=Format('%.2x%.5d',[AExt,Idx]);
        end;
    begin
     if ActiveNodeBrower() and (FActiveBr.Selected.BibID <>-1) then
     with FActiveBr.Selected  do
        ExLink(BibTitle,IdxStr(Itemtype,BibID,BibNodeType));
    end;
    la fonction IdxStr n'est pas vraiment utile, ItemType n'est pas utilisé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TBibMainForm.FormShow(Sender: TObject);
    begin
      if ParamCount >= 1 then
       if Length(ParamStr(1)) >= 3 then
         CmdStrHandler(ParamStr(1));
    end;


    UFiles.pas :

    attention, il faut des try finally :

    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
     
    function TFilesCheck.Check:boolean;
    begin
      FList.BeginUpdate;
      FGarbage.BeginUpdate;
      try
        Clear; // doit être appeler aprés BeginUpdate
        // même si TStrings.Clear appel aussi BeginUpdate.
     
        SearchFile( AttachDir('*'+NEWBLOB_EXT), faAnyFile-faDirectory, Files);
        SearchFile( AttachDir('*'+UPDATE_EXT), faAnyFile-faDirectory, Files);
     
        result := (FList.Count=0) and  (FGarbage.Count=0);
      finally 
        FList.EndUpdate;
        FGarbage.EndUpdate;
      end;
    end;

    taille en Int64 pas integer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Fsize(const AFilename:string): int64;
    var
      SRec : TSearchRec;
    begin
      result := 0;
      if FindFirst(AFilename, faAnyFile, SRec) = 0 then
      begin
        result := SRec.Size;
        FindClose(SRec);
      end;
    end;

    ton générateur de nom de fichier ressemble beaucoup au miens!

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    function IncludeExtentionDot(const aExtention: string): string;
    begin
      result := aExtention;
      if aExtention[1] <> '.' then
        result := '.' + aExtention;
    end;
     
    function Transforma(const numbA, numbB: LongWord): string;
    const
      HTCA : array[0..$F] of char = 'AbCeDfGhIjKlMnOp';
      HTCB : array[0..$F] of char = 'aBcDdFgHiJkLmNoP';
    begin
      result :=
                HTCA[numbA and $F]          + HTCB[(numbB shr 28) and $F] +
                HTCA[(numbA shr 4) and $F]  + HTCB[(numbB shr 24) and $F] +
                HTCA[(numbA shr 8) and $F]  + HTCB[(numbB shr 20) and $F] +
                HTCA[(numbA shr 12) and $F] + HTCB[(numbB shr 16) and $F] +
                HTCA[(numbA shr 16) and $F] + HTCB[(numbB shr 12) and $F] +
                HTCA[(numbA shr 20) and $F] + HTCB[(numbB shr 8) and $F]  +
                HTCA[(numbA shr 24) and $F] + HTCB[(numbB shr 4) and $F]  +
                HTCA[(numbA shr 28) and $F] + HTCB[numbB and $F];
    end;
     
    function FileNameGenerator(const aPath, aExt: string): string;
    var NA, NB : LongWord;
        P : integer;
        vP, vE : string;
    begin
      vP := IncludeTrailingPathDelimiter(aPath);
      vE := IncludeExtentionDot(aExt);
     
      NA := random($FF) * random($FF) * random($FF) * random($FF);
      NB := random($FF) * random($FF) * random($FF) * random($FF);
      P := 0;
      repeat
        case NA and $1 of
          0 : NA := NA xor (NB shl 1);
          1 : NA := not (NA xor (NB shl 1));
        end;
        case NB and $1 of
          0 : NB := NB xor (NA shl 1);
          1 : NB := not (NB xor (NA shl 1));
        end;
     
        P := (P+1) mod 8;
        if P = 0 then
        begin
          NA := random($FF) * random($FF) * random($FF) * random($FF);
          NB := random($FF) * random($FF) * random($FF) * random($FF);
        end;
     
        result := vP + Transforma(not NA, not NB) + vE;
      until not FileExists(result);
    end;
    appel le Randomize dans la partie initialization du programme.



    on peut faire plus court :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function GetBlobInfo(const Filename:string):TBlobInfo;
    begin
      FillChar(result, BLOB_HEADER, 0);
      with TFileStream.Create(Filename,fmOpenRead) do
      try
        Read(result,BLOB_HEADER);
      finally
        Free;
      end;
    end;


    houuuu c'est quoi ce vieux Ord(UpCase(Char)) qui prend 6 instructions!
    un and $1F suffit à faire passer AZ ou az -> 1..26 ! hihihi (astuce de gnou)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function asm_DriveIndex(const Drv: AnsiChar): byte;
    asm
      and al, $1F;
    end;
     
    function DriveIndex(const drv: AnsiChar): byte;
    begin
      result := byte(drv) and $1F;
    end;

    5H00 du mat, je regarderai la suite plus tard.

  7. #7
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    n'écrit pas -> function UnTruc(): boolean; ou Application.Restore();
    écrit -> function UnTruc: boolean; ou Application.Restore;
    au contraire je fais des efforts pour ne pas l'oublier
    il y a plusieurs methodes qui je ai implémenter mais jamais utiliser

Discussions similaires

  1. Quel outil utilisez vous pour concevoir vos bases de données
    Par Matthieu Brucher dans le forum Outils
    Réponses: 93
    Dernier message: 01/08/2014, 15h20
  2. Partagez vos Sources/Macros/Utilitaires SAS
    Par fafabzh6 dans le forum Contribuez
    Réponses: 1
    Dernier message: 15/05/2012, 18h40
  3. Outil pour aider à la localisation de vos sources
    Par Delbeke dans le forum Vos contributions VB6
    Réponses: 10
    Dernier message: 30/09/2006, 20h36
  4. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo