NEO OSOK_TEAM
Messages postés11Date d'inscriptionvendredi 5 janvier 2007StatutMembreDernière intervention10 novembre 2012
-
9 nov. 2012 à 14:17
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
11 nov. 2012 à 18:22
Bonjour a tous,
Voila j'ai un boutton qui me permet d'appelle une fonction situe dans une autre Unit. Lorsque je compile il me met UserName non identifié sur la page de l Unit1.
function UserName (): string;
var
Utilisateur : Array[0..255] Of Char;
Taille : Cardinal;
begin
Taille := SizeOf(Utilisateur);
If GetUserName(@Utilisateur,Taille) then
Result := strpas(Utilisateur)
else
Result :='';
end;
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 9 nov. 2012 à 18:12
Salut Cantador,
Pas obligé... si tu mets le path de ton unit2 dans les bibliothèques de delphi.
J'ai fait ça pour une unité ou j'ai mis plein de procédures récurrentes, après, je la rajoute juste dans la liste des uses et c'est tout bon (en tous cas, je n'ai jamais rencontré de problèmes là dessus)
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 9 nov. 2012 à 14:28
Salut,
Dans ton unit2, déclare ta fonction, et dans unit1, appelle simplement avec "UserName()" et non "Unit2.UserName()"
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls;
function UserName (): string;
implementation
function UserName (): string;
var
Utilisateur : Array[0..255] Of Char;
Taille : Cardinal;
begin
Taille := SizeOf(Utilisateur);
If GetUserName(@Utilisateur,Taille) then
Result := strpas(Utilisateur)
else
Result :='';
end;
end.
Simon
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 9 nov. 2012 à 22:13
si tu mets le path de ton unit2 dans les bibliothèques de delphi.
La bonne méthode consiste à créer toutes ses procédures et fonctions dans une unité et l'ajouter en tant que de besoin dans son ou ses projets.
la bibliothèque ?
Humhhhh, ça marche, mais c'est source à ennuis..
car après il faut gérer les noms de biblio et puis
elles se chargent à chaque ouverture même si tu n'en a pas besoin.
et j'oublie certainement d'autres inconvénients...
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 10 nov. 2012 à 08:52
Je ne vois pas ce qu'il y a à gérer de plus.
Dans l'arborescence de mon espace de dev, j'ai un dossier "lib", qui contient plusieurs unités de fonctions par thème (delphi, firebird, ...), et que j'ai ajouté (1 fois pour toutes) dans les chemins de bibliothèques. Ces pauvres unités (en ko, bien sûr ) sont peut être chargées à chaque démarrage par delphi, mais vu le côté pratique de la chose (ajouter un "uses" au lieu d'ouvrir une boîte de dialogue pour aller chercher un fichier dont tu n'as en fait besoin qu'en lecture pour les besoins de ton programme), j'accepte tout à fait de perdre 2 ms de ressources de mon Pc à l'ouverture de delphi... Comme je l'ai dit il s'agit uniquement de méthodes et fonctions récurrentes que je suis susceptible d'utiliser dans tous mes projets. Bien entendu, quand j'ai des fonctions spécifiques à un projet, j'utilise la méthode d'ajout d'unité à un projet.
NEO OSOK_TEAM
Messages postés11Date d'inscriptionvendredi 5 janvier 2007StatutMembreDernière intervention10 novembre 2012 10 nov. 2012 à 09:16
Je pense qu il veut dire que selon le programme il peu être lourd.
Car des programmes complexe charge beaucoup de chose a la base.
Si tu veux de la rapidité ca peu devenir une gene.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 10 nov. 2012 à 09:31
Mais je suis entièrement d'accord avec lui (et toi ). Je dis juste que quand on peut se faciliter la vie, il ne faut pas s'en priver, surtout avec la puissance des machines actuelles. On est plus sous ms-dos où chaque octet de mémoire comptait (attention, je ne dis pas de ne pas gérer la mémoire proprement dans nos programmes...).
N'oublie pas de cliquer sur "réponse acceptée" si ton problème est résolu.
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 201917 10 nov. 2012 à 09:45
Salut,
Si l'unité à appeler se trouve dans le même répertoire que l'unité qui y fait appel, il suffit d'y faire référence dans les "uses" de la seconde.
Pas nécessaire d'ajouter quoi que ce soit dans les "uses" du fichier "project".
Même si Delphi le fait automatiquement au moment de l'enregistrement du projet.
On peut le vérifier en supprimant cette référence dans le fichier "project", à mon avis inutile puisque redondante.