Utilitaire pour organiser vos sources,fichiers..etc
Source:
Utilitaire pour organiser vos sources,fichiers..etc
Source:
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)
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
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 function ExLink(const LinkName,Arg:string): Boolean;
Si tu as la palette SynEdit active cette ligne dans UInit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if FindInst() then Application.Terminate() else
j'attends tes remarques
Code : Sélectionner tout - Visualiser dans une fenêtre à part Reg(xCodeView,TCodeView);
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;
?
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
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;
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!
appel le Randomize dans la partie initialization du programme.
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;
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.
au contraire je fais des efforts pour ne pas l'oubliern'écrit pas -> function UnTruc(): boolean; ou Application.Restore();
écrit -> function UnTruc: boolean; ou Application.Restore;
il y a plusieurs methodes qui je ai implémenter mais jamais utiliser
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