Gestion contacts mails

Soyez le premier à donner votre avis sur cette source.

Vue 6 258 fois - Téléchargée 960 fois

Description

Disposant de plusieurs boîtes mail sur des opérateurs différents, j'ai fait ce petit
utilitaire pour pouvoir disposer rapidement de groupes de mails (Amis, Famille, Club ...).
Avec ce système je n'entretiens qu'une seule liste de contacts pour toutes mes boîtes et une
seule liste de groupes de contacts : ça c'est pour le projet posté !

Mais le but de ce postage est principalement de montrer l'utilisation d'une unité spéciale
"SYSTUS" jointe au projet qui, en plus de quelques fonctions et procédures simples
pour se faciliter la vie, permet :

- la gestion ALIAS des différentes procédures/propriétés des objets (Buttons, Panels, List,
TlistString ...) avec les mêmes instructions pour tous les objects :
exemple pour ajouter une ligne à un Tmemo et à une TlistBox :
ADD(L1,z); au lieu de L1.Items.Add(z);
ADD(M1,Z); au lieu de M1.Lines.Add(z);

- la Gestion "GestH" qui permet d'utiliser un String comme une LIST

- la Gestion de TstringList utilisée comme une liste de Listes (Tableau à 2 dimensions)

pour ces 2 Gestions, les "cases" peuvent être replies directement avec des String,
integer, Date :
z := 'chaine';
n := 5;
h := 'a;b;c;d';
...
putH(h,1,z); modifie h : 'a;chaine;c;d'
putH(h,1,n); modifie h : 'a;5;c;d'

si T1 (TstringList) contient :
ligne 0 : 'a,b,c,d'
ligne 1 : '1;2;3;4'
ligne 2 : 'w;5;r;6'

HPUT(T1,1,2,z); ligne 1,colonne 2, valeur z (les lignes et colonnes coomencent à 0) :
ligne 0 : 'a,b,c,d'
ligne 1 : '1;2;chaine;4'
ligne 2 : 'w;5;r;6'

- la Gestion des blocages des commandes :
ceci permet de bloquer toutes les actions sur les objets (boutons ..) à l'exeption de la
commande en cours : panel avec bouton Valider et Annuler qui débloque le système.
voir explication dans l'unité SYSTUS

- La gestion d'un DEBUG qui permet de suivre dans un fichier les différents paramètres, bien
utile lors d'une erreur dans une boucle : il suffit de placer un DEBUG dans la boucle pour
voir à quel moment ça coince ( un peu comme TRACE )
(ça je ne sais pas si c'est vraiment utile (à part pour moi !)

Source / Exemple :


Voir ZIP joint

Conclusion :


Bien sur tout celà ne vaut que ce que celà vaut !!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
14
Bonjour Yves
C'est normal, car c'est un bouton en couleur dont les fichiers d'installation sont joints au zip :
ButtonWithColor.dcu
ButtonWithColor.pas
ButtonWithColor.res
Il faut les installer avant de compiler
cordialement
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

Bonjour,

Le message
" bValiderCONTACT n'a pas de composant correspondant..."

s'affiche à la compilations !

Salutations
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
Salut,

je suis d'accord avec toi, mais tu dois alors prévoir une procédure pour chaque composant que tu utilises, imagine un super composant complexe trouvé sur le net qui possède une liste en propriété, avec une procédure générale, pas de problème. Tu pourrais d'ailleurs l'ajouter à ton unité et t'en servir en cas de besoin.

Luc.
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
14
Bonjour BECKERICH, merci de d'inrerresser à ce source.
En fait pour ADD particulièrement, dans ton système il faudrait écrire :

ADD(L1.items,'toto') pour un TlistBox
ADD(M1.lines,'toto') pour un Tmemo

dans mon cas c'est beaucoup plus simple, sans réfléchir si c'est un items ou un lines :
ADD(L1,'toto')
ADD(M1,'toto')
cordialement
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
Bonjour Mister Dubois,

je regarde ton source SYSTUS à l'instant et ce qui me saute aux yeux :

procedure ADD(var O:TlistBox; z:string); begin O.Items.Add(z) end;
procedure ADD(var O:Tmemo; z:string); begin O.lines.add(z) end;
procedure ADD(var O:TcomboBox; z:string); begin O.items.add(z) end;
procedure ADD(var O:TstringList; z:string); begin O.add(z) end;

pourquoi ne pas faire une unique procédure

procedure ADD(O: TStrings; z: string); begin O.Add(z); end;

que tu appelles selon le composant

Add(Combo1.Items, 'toto') ou Add(Memo1.Lines, 'titi')...

je pense pareil pour CHG, ...

VIS(O: TWinControl); ... j'ai pas vérifié si la propriété Visible et la méthode BringToFront était accessibles.

et y regardant de plus près, il y en a certainement d'autres.

Ca peut diminuer le nombre de procédures. Tu as aussi peut-être de bonnes raisons de ne pas faire comme cela.

Bon travail.

Luc.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.