Je suis d'accord également, l'ordre de déclaration des paramètres doit se faire du plus "logique"/"important" au facultatif.
si on regarde quelques fonctions designée par Borland :
TryStrToInt( string , var int) boolean
il serait idiot, même si pas faux de faire :
TryStrToInt(var int, string) boolean
ou
TryStrToInt(var boolean, string) int
C'est encore plus important quand on overload, on se rend bien compte que les paramètres facultatif doivent être placés vers la fin (en prenant également en compte les types qui pourrait créer des erreur de sélecteur).
D'autant plus, qu'il faut privilégier les meilleurs registres pour les paramètres important, et laisser les paramétres moins important dans les registres "pourris".
un exemple vulgaire :
methode (A [eax], B [edx], C [esi], D [esi+0x]...): [eax]
A est forcement le paramètre le plus important. et beneficie du registre le plus rapide d’accès, le plus simple à utiliser.
c'est également vrai pour le choix d'utiliser PROCEDURE ou FUNCTION.
doit on faire :
procedure BSWAP(A: integer; out B: integer);
ou
function BSWAP(A: integer): integer;
l'exemple est un peu pourrie
mais dans la procedure on devra faire :
1 2 3 4 5
|
asm
mov eax, edx;
bswap edx;
end; |
alors que dans la fonction on fera tout simplement :
soit une instruction de moins, donc une rapidité accrue.
dans ta fonction, l'avantage est que tout de suite on mets l'objet TStringGrid visé puis la requette (qui peu être longue si on l'écrit en dur), donc qui ne laisserai plus apparaitre à l'écran, l'objet visé.
ToStringGrid(StringGrid1, 'SELECT * FROM maTable WHERE blabla=1 AND blibli=2 AND bloblo=4 GROUP BY id SORT BY blabla ASC LIMIT 0,1000;');
c'est quand même plus sympa.
Partager