cs_Christophe67
Messages postés80Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention15 juin 2012
-
1 mai 2010 à 08:32
khirodelphi
Messages postés1Date d'inscriptionsamedi 14 août 2010StatutMembreDernière intervention 6 mars 2011
-
6 mars 2011 à 11:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
khirodelphi
Messages postés1Date d'inscriptionsamedi 14 août 2010StatutMembreDernière intervention 6 mars 2011 6 mars 2011 à 11:54
waw merci mon frer
zwail1
Messages postés17Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 3 décembre 2010 4 mai 2010 à 20:34
moi je lui donne un dix (10) car il le mérite avec ce grand travail
yannba
Messages postés133Date d'inscriptionmercredi 4 janvier 2006StatutMembreDernière intervention 7 septembre 2010 4 mai 2010 à 14:43
Vu le nombre de fois qu'il a été vu et telechargé pas encore noté ???
Allez je te mets 9, pourquoi ?
Dernierement, un post a été ouvert pour exploiter une base de données ... Pour un débutant qui prend la peine 10 secondes de regarder ton programme, il se fait déjà une idée car il a le merite d'etre simple et en plus tu as commenté chaque ligne !!
Pourquoi, 9 alors. Peut-etre un datamodule aurait-été bien, tu creée deux fois la meme chose.
Et pour mon interet personnel car je viens de me rendre compte que j'avais jamais utilisé (bien que je connaissais cette fonction) ADOx et pour dire vrai, je ne m'y étais jamais interressé car je n'avais pas pris la peine de regarder comment ca marchait. Tu m'as évité une recherche. Merci
cs_Christophe67
Messages postés80Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention15 juin 2012 3 mai 2010 à 15:00
Salut JulioDelphi,
J'en penses que j'ai fais au plus simple en suivant le cahier des charges.
- Un maximum de 20 postes comme la plupart des salles ASJR
- Pas de programme client serveur, la facturation étant faite sur un poste hors réseau local
- Un aperçu rapide du statut des 20 postes (symbolisé par la couleur des TShape)
- Pas de chronos multiples
- Gestion des pauses non facturées pour les fumeurs ou pause bio
- Historique d'utilisation par client ( BDD maitre détail en version non publique)
- Facturation à la minute au delà de la première heure d'utilisation
- Publipostage électronique par email de la facturation client (version non publique)
- Impression de la facture avec en tête de la société, infos client et facturation détaillée (version non publique)
- Application et BDD facilement portables sur clé USB pour sauvegarde et utilisation lors de LAN partys.
Donc le choix du TPageControl est intentionnel car il me permet lors des changements des tabsheet d'initialiser mes composants avec FindComponent une fois pour toutes jusqu'au prochain changement. Après hésitation, j'ai aussi volontairement rejeté toute utilisation d'un .INI que j'aurai utilisé pour sauvegarder l'état des postes lorsqu'on quitte l'application, mon ami ne l'a pas souhaité car c'est un bon gamer mais en dehors de cela ... donc simplification maximale.
Pour conclure, ce programme n'est pas LE programme de gestion d'une salle de jeux en réseau mais une application simple pour remplacer son système de gestion programmé sous Access (20 écrans, 20 compteurs ...) et il ne souhaitait pas utiliser TN-Network, pas assez simple à son goût.
J'ai juste souhaité partager une partie de mon travail en proposant cette version publique.
Cordialement.
Christophe
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 3 mai 2010 à 10:33
Hello
pourquoi coder en dur 20 postes ?
j'ai 30 Pcs je fais comment ? et 100pcs ? un .ini serait pas mal pour paramétrer ce nombre non ?
De ce fait, les composant ne sont pas à dupliquer :/ au pire tu aurais du les créer dynamiquement afin de pouvoir justement choisir le nombre de postes mais à regarder d'un peu plus pret ... tu as utilisé un TPageControl au lieu d'un TTabControl :O
La différence est que le pagecontrol crée vraiment des pages différentes à chaque fois alors que le tabcontrol la meme page pour tous ses onglets, toi, c'est exactement ce que tu fais en dupliquant tes compos : toutes tes pages sont identiques !
Utilises donc un TTabControl et dans le OnChange des onglets tu charges infos de ce pc dans les bons champs !
Ensuiten tu peux avoir 10000 pcs, le seul code à modifier sera la création dynamique des 10000 onglets :D
Qu'en penses tu ?
papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 202115 3 mai 2010 à 08:35
salut
OK avec D7
pour le tri j'ai supprimé l 'unité "tri" et remplacé par
procedure Tf_Main.ClientsTitleClick(Column: TColumn);
begin
if Clients.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(Clients.DataSource.DataSet) do
begin
if (Pos(Column.Field.FieldName, Sort) = 1)
and (Pos(' DESC', Sort)= 0) then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end;
end;
ça marche bien et c'est vallable pour n'importe quelle colonne
cette proc n'est pas de moi :) bien sur
cs_lafarge
Messages postés7Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention29 décembre 2008 1 mai 2010 à 23:27
Bonjour à tous.
Utilisant la version Delphi 7, j'ai, je l'avoue, un comportement surprenant de Delphi avec votre Application. J'ai suivi, les explications fournies, celles de retirer les 4 premières lignes de code dans la Méthode onCreate de Main.pas, ainsi que les deux procédures inhérentes. J'ai désactivé GIFImg, car il n'y a pas le *.Dcu , idem pour TrayIcon. Je le désactive par {}, et en compilant, <TrayIcon> se duplique obstensiblement à chaque fois, générant une erreur => 'Fichier non trouvé: TrayIcon'. Donc, je décide de le supprimer de la partie déclarative Interface, et fait une sauvegarde, mais voilà que TrayIcon réapparait dans la partie citée ci-dessus!!. Pardonnez mon ignorance, comment faut-il faire ?
cs_Christophe67
Messages postés80Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention15 juin 2012 1 mai 2010 à 08:32
J'ai oublié de préciser :
Le code source est compatible pour delphi 2006 et plus car il utilise le composant TTrayIcon.
Pour les versions inférieures, retirez les 2 procédures utilisant le TTrayIcon ainsi que les 4 premières lignes d'initialisation dans la procédure FormCreate.
6 mars 2011 à 11:54
4 mai 2010 à 20:34
4 mai 2010 à 14:43
Allez je te mets 9, pourquoi ?
Dernierement, un post a été ouvert pour exploiter une base de données ... Pour un débutant qui prend la peine 10 secondes de regarder ton programme, il se fait déjà une idée car il a le merite d'etre simple et en plus tu as commenté chaque ligne !!
Pourquoi, 9 alors. Peut-etre un datamodule aurait-été bien, tu creée deux fois la meme chose.
Et pour mon interet personnel car je viens de me rendre compte que j'avais jamais utilisé (bien que je connaissais cette fonction) ADOx et pour dire vrai, je ne m'y étais jamais interressé car je n'avais pas pris la peine de regarder comment ca marchait. Tu m'as évité une recherche. Merci
3 mai 2010 à 15:00
J'en penses que j'ai fais au plus simple en suivant le cahier des charges.
- Un maximum de 20 postes comme la plupart des salles ASJR
- Pas de programme client serveur, la facturation étant faite sur un poste hors réseau local
- Un aperçu rapide du statut des 20 postes (symbolisé par la couleur des TShape)
- Pas de chronos multiples
- Gestion des pauses non facturées pour les fumeurs ou pause bio
- Historique d'utilisation par client ( BDD maitre détail en version non publique)
- Facturation à la minute au delà de la première heure d'utilisation
- Publipostage électronique par email de la facturation client (version non publique)
- Impression de la facture avec en tête de la société, infos client et facturation détaillée (version non publique)
- Application et BDD facilement portables sur clé USB pour sauvegarde et utilisation lors de LAN partys.
Donc le choix du TPageControl est intentionnel car il me permet lors des changements des tabsheet d'initialiser mes composants avec FindComponent une fois pour toutes jusqu'au prochain changement. Après hésitation, j'ai aussi volontairement rejeté toute utilisation d'un .INI que j'aurai utilisé pour sauvegarder l'état des postes lorsqu'on quitte l'application, mon ami ne l'a pas souhaité car c'est un bon gamer mais en dehors de cela ... donc simplification maximale.
Pour conclure, ce programme n'est pas LE programme de gestion d'une salle de jeux en réseau mais une application simple pour remplacer son système de gestion programmé sous Access (20 écrans, 20 compteurs ...) et il ne souhaitait pas utiliser TN-Network, pas assez simple à son goût.
J'ai juste souhaité partager une partie de mon travail en proposant cette version publique.
Cordialement.
Christophe
3 mai 2010 à 10:33
pourquoi coder en dur 20 postes ?
j'ai 30 Pcs je fais comment ? et 100pcs ? un .ini serait pas mal pour paramétrer ce nombre non ?
De ce fait, les composant ne sont pas à dupliquer :/ au pire tu aurais du les créer dynamiquement afin de pouvoir justement choisir le nombre de postes mais à regarder d'un peu plus pret ... tu as utilisé un TPageControl au lieu d'un TTabControl :O
La différence est que le pagecontrol crée vraiment des pages différentes à chaque fois alors que le tabcontrol la meme page pour tous ses onglets, toi, c'est exactement ce que tu fais en dupliquant tes compos : toutes tes pages sont identiques !
Utilises donc un TTabControl et dans le OnChange des onglets tu charges infos de ce pc dans les bons champs !
Ensuiten tu peux avoir 10000 pcs, le seul code à modifier sera la création dynamique des 10000 onglets :D
Qu'en penses tu ?
3 mai 2010 à 08:35
OK avec D7
pour le tri j'ai supprimé l 'unité "tri" et remplacé par
procedure Tf_Main.ClientsTitleClick(Column: TColumn);
begin
if Clients.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(Clients.DataSource.DataSet) do
begin
if (Pos(Column.Field.FieldName, Sort) = 1)
and (Pos(' DESC', Sort)= 0) then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end;
end;
ça marche bien et c'est vallable pour n'importe quelle colonne
cette proc n'est pas de moi :) bien sur
1 mai 2010 à 23:27
Utilisant la version Delphi 7, j'ai, je l'avoue, un comportement surprenant de Delphi avec votre Application. J'ai suivi, les explications fournies, celles de retirer les 4 premières lignes de code dans la Méthode onCreate de Main.pas, ainsi que les deux procédures inhérentes. J'ai désactivé GIFImg, car il n'y a pas le *.Dcu , idem pour TrayIcon. Je le désactive par {}, et en compilant, <TrayIcon> se duplique obstensiblement à chaque fois, générant une erreur => 'Fichier non trouvé: TrayIcon'. Donc, je décide de le supprimer de la partie déclarative Interface, et fait une sauvegarde, mais voilà que TrayIcon réapparait dans la partie citée ci-dessus!!. Pardonnez mon ignorance, comment faut-il faire ?
1 mai 2010 à 08:32
Le code source est compatible pour delphi 2006 et plus car il utilise le composant TTrayIcon.
Pour les versions inférieures, retirez les 2 procédures utilisant le TTrayIcon ainsi que les 4 premières lignes d'initialisation dans la procédure FormCreate.
Cordialement.
Christophe