forum.rallyesim.fr http://forum.rallyesim.fr/ |
|
ProfilManager http://forum.rallyesim.fr/viewtopic.php?f=563&t=16101 |
Page 3 sur 5 |
Auteur: | BlunT [ Ven 24 Mai 2013 21:11 ] |
Sujet du message: | Re: ProfilManager |
Dernier message de la page précédente : Bah je sais pas si MULLIGATAWNY englobe aussi les plugin |
Auteur: | Papy Jim [ Ven 24 Mai 2013 23:02 ] |
Sujet du message: | Re: ProfilManager |
non, pas du tout, les plugins utilisent des fichiers INI |
Auteur: | BlunT [ Dim 26 Mai 2013 09:25 ] |
Sujet du message: | Re: ProfilManager |
Ven 24 Mai 2013 17:31 ici Papy Jim a écrit: byval = par valeur, tu dois utiliser ce sélecteur sinon il existe byref = par référence, ne pas utiliser, c'est compliqué. pour le msgbox: dans un module, tu crées une variable publique, Public OKCancel as byte, après il faut créer un nouvelle fenêtre avec des boutons (OK et Cancel), tu appelles cette fenêtre en mode exclusif à la place de msgbox en la plaçant où tu veux, quand tu cliques sur OK tu renvoies OKCancel=1 pour OK et OKCancel=2 pour le bouton Cancel et tu fermes la fenêtre: unload me. tu récupères la valeur dans ta fenêtre principale. ce type de système est présent dans RSCenter qui remplace les msgbox, l'avantage, c'est la position au choix ainsi que la taille, la police, la couleur adaptée. etc... Salut J'ai galéré mais finalement réussi a faire un OKCancel avec une autre Form, c'est quand même bien plus joli et agréable a utiliser Par contre je comprend pas pourquoi on a mis la variable Public OKCancel en module, c'est pour que Form2 puisse la modifier c'est ca? Je viens de lire un peu sur les module, certains y mettent carrement du code....quand est ce qu'il est préférable d'utiliser un module ou pas? |
Auteur: | Papy Jim [ Dim 26 Mai 2013 20:59 ] |
Sujet du message: | Re: ProfilManager |
le module est fait pour utiliser le même code pour plusieurs fenêtres et également cela permet ne pas avoir pleins de lignes dans le code de la fenêtre. la variable publique permet d'être récupérée par n'importe quelle fenêtre du projet. donc, à partir de la fenêtre principale, tu lances ta fenêtre en excusif (en VB6: mafenetre.Show 1, Me, ça bloque le code de la fenêtre appelante) tu cliques sur OK puis tu récupères la valeur de la variable, en VB6: if OKCancel=1 then ...ton code... else ...ton code... end if |
Auteur: | BlunT [ Jeu 30 Mai 2013 00:00 ] |
Sujet du message: | Re: ProfilManager |
Salut Sous VB2010, j'ai pas réussi a bloquer le code en utilisant mafenetre.Show Mais ca marche avec mafenetre.ShowDialog Du coup, avec tout ce que j'ai appris grace a toi et Flat, le code a bien changer mais surtout j'ai compris comment il fallait procéder avec VB, du moins un peu plus et pour ca -Ajout de fenêtre centrée pour les messages Ok Cancel -Ajout d'un Label pour indiquer quel profil est chargé, mémorisé dans un fichier .ini -Test de présence des 2 fichiers mulligatawny.acm et .rbr au lieu de juste le .acm (des fois je me retrouvai avec un seul fichier copié , mais je cliquai partout comme un malade donc.... -Tout ou presque est mis en méthode: LOADMULLI et BACKUPMULLI, qui utilisent ces 3 autres méthodes DELETEPROFIL , SAVEPROFIL , EXISTSPROFIL todo: un ptit msg de 2s quand le SAVE est fini un dossier img pour pouvoir changer les images des boutons, pas indispensable mais j'aimerai savoir le faire Et après fini je pense |
Auteur: | fifou [ Jeu 30 Mai 2013 00:27 ] |
Sujet du message: | Re: ProfilManager |
Content que tu t'amuse |
Auteur: | BlunT [ Jeu 30 Mai 2013 07:05 ] |
Sujet du message: | Re: ProfilManager |
Ouai, pendant que c'est simple |
Auteur: | Papy Jim [ Jeu 30 Mai 2013 18:19 ] |
Sujet du message: | Re: ProfilManager |
Jeu 30 Mai 2013 06:05 ici BlunT a écrit: Ouai, pendant que c'est simple pour les images boutons, tu mets une image à la place du bouton, tu le nommes avec le même nom et c'est bon, je pense avec vb.net |
Auteur: | BlunT [ Jeu 30 Mai 2013 21:20 ] |
Sujet du message: | Re: ProfilManager |
J'ai pas compris Jim, Actuellement j'ai mis une image sur un bouton, sous vb2010 c'est dans les propriete du bouton, mais cette image est en ressource, ca marche tres bien, mais si je veux changer l'image je doit recompiler Ce que je voudrai c'est avoir un dossier img, et le bouton prend son image dedans... Mais a ta connaissance, on peut copier une image contenue dans le .exe vers un dossier? |
Auteur: | Papy Jim [ Jeu 30 Mai 2013 22:31 ] |
Sujet du message: | Re: ProfilManager |
moi, je connais ça dans un composant ImageList qui est une banque d'images. il suffit d'ajouter les images dans ce composant puis les appeler à partir du code, ce qui peut permettre de faire changer l'image au passage de la souris, etc... tu peux aussi ajouter une image dans le composant Img et la transférer au moment opportun. |
Auteur: | BlunT [ Sam 8 Juin 2013 18:22 ] |
Sujet du message: | Re: ProfilManager |
Pas trop compris l'utilisation de imagelist, je verrai ca plus tard... Mais j'ai trouver une solution toute simple: My.Resources.mon_image.Save(rbrpath & "\MulliManager\img\btn1.png") 'au 1er lancement du prog seulement et a chaque lancement du prog Button1.Image = Image.FromFile(rbrpath & "\MulliManager\img\btn1.png") Je pense en avoir fini avec ce prog Je remet le code complet au cas ou, et si vous voulez j'en fait don a rallyesim Code: Imports System.IO Imports System.IO.File Module ouinon Public OKCancel As Byte = 1 Public exist1 As Byte = 1 End Module Public Class Form1 'ma variable globale Public Shared rbrpath As String = Application.StartupPath Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Procedure d'initialisation de MulliManager, 'verifie la presence de richard burns rally.exe 'cree le dossier MulliManager et ses sous dossiers 'sauvegarde le profil MULLIGATANWY dans le dossier OriginalProfil ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'verifie la presence de rbr.exe dans le dossier courant If System.IO.File.Exists("richardburnsrally_SSE.exe") = False Then MsgBox("Launch the application in the folder richard burns rally") Close() Else 'verifie si le dossier ProfilManager existe If Directory.Exists("MulliManager") = False Then '1er demarrage --> INSTALLATION ''cree le dossier ProfilManager et ses sous dossiers Directory.CreateDirectory("MulliManager") Directory.CreateDirectory("MulliManager\OriginalProfil") Directory.CreateDirectory("MulliManager\Profil1") Directory.CreateDirectory("MulliManager\Profil2") Directory.CreateDirectory("MulliManager\Profil3") Directory.CreateDirectory("MulliManager\img") ' ''Création d'un flux d'écriture Dim ini As New StreamWriter(rbrpath & "\MulliManager\MulliMgr.ini") ''écriture et fermeture ini.WriteLine("original profile") ini.Close() 'copie des images bouton vers dossier img My.Resources.BTNvolantPalette96x96.Save(rbrpath & "\MulliManager\img\btn1.png") My.Resources.BTNvolantManche96x96.Save(rbrpath & "\MulliManager\img\btn2.png") My.Resources.BTNvolantBoiteH96x96.Save(rbrpath & "\MulliManager\img\btn3.png") 'sauvegarde dans originalprofil If Exists(rbrpath & "\SavedGames\pfMULLIGATAWNY.acm") Then File.Copy(".\SavedGames\pfMULLIGATAWNY.acm", ".\MulliManager\OriginalProfil\pfMULLIGATAWNY.acm") End If If Exists(rbrpath & "\SavedGames\pfMULLIGATAWNY.rbr") Then File.Copy(".\SavedGames\pfMULLIGATAWNY.rbr", ".\MulliManager\OriginalProfil\pfMULLIGATAWNY.rbr") End If End If End If 'Demarrage courant ''Affichage du label Currently Dim currentprofil As String currentprofil = File.ReadAllText(rbrpath & "\MulliManager\MulliMgr.ini") Label5.Text = currentprofil 'gestion affichage label6 Backup Successful Label6.Visible = False Timer1.Interval = 2000 ' ce sont des milisecondes Timer1.Enabled = False 'chargement des img des bouton LOAD Button1.Image = Image.FromFile(rbrpath & "\MulliManager\img\btn1.png") Button2.Image = Image.FromFile(rbrpath & "\MulliManager\img\btn2.png") Button3.Image = Image.FromFile(rbrpath & "\MulliManager\img\btn3.png") End Sub 'mes méthodes LOADMULLI et BACKUPMULLI, DELETEPROFIL , SAVEPROFIL , EXISTSPROFIL 'LOADMULLI Private Sub LOADMULLI(ByVal prof As String) 'detecte si un profil est present EXISTSPROFIL(prof) If exist1 = 0 Then Form3.ShowDialog() 'You have to backup a profile before Else 'charge le profil File.Delete(".\SavedGames\pfMULLIGATAWNY.acm") File.Delete(".\SavedGames\pfMULLIGATAWNY.rbr") File.Copy(".\MulliManager\" & prof & "\pfMULLIGATAWNY.acm", ".\SavedGames\pfMULLIGATAWNY.acm") File.Copy(".\MulliManager\" & prof & "\pfMULLIGATAWNY.rbr", ".\SavedGames\pfMULLIGATAWNY.rbr") 'inscrit le profil actif dans MulliMgr.ini Dim ini As New StreamWriter(rbrpath & "\MulliManager\MulliMgr.ini") ini.WriteLine(prof) ini.Close() 'maj du label Currently Label5.Text = File.ReadAllText(rbrpath & "\MulliManager\MulliMgr.ini") End If End Sub 'BACKUPMULLI Private Sub BACKUPMULLI(ByVal prof As String) 'detecte la presence d'un profil existant et fait une sauvegarde dans le profil selectionné EXISTSPROFIL(prof) If exist1 = 0 Then SAVEPROFIL(prof) Label6.Visible = True Timer1.Enabled = True Else Form2.ShowDialog() 'Overwrite existing profil? If OKCancel = 1 Then DELETEPROFIL(prof) SAVEPROFIL(prof) Label6.Visible = True Timer1.Enabled = True ElseIf OKCancel = 2 Then 'do something else End If End If End Sub 'EXISTSPROFIL Private Sub EXISTSPROFIL(ByVal prof As String) 'verifie que les 2 fichiers sont present dans les dossiers Profil 1 2 et 3 Dim var1 As Byte Dim var2 As Byte If Exists(rbrpath & "\MulliManager\" & prof & "\pfMULLIGATAWNY.acm") = True Then var1 = 1 Else var1 = 0 End If If Exists(rbrpath & "\MulliManager\" & prof & "\pfMULLIGATAWNY.rbr") = True Then var2 = 1 Else var2 = 0 End If exist1 = (var1 + var2) ' present 2 ,absent 0 ,fichier manquant 1 End Sub 'DELETEPROFIL Private Sub DELETEPROFIL(ByVal prof As String) File.Delete(".\MulliManager\" & prof & "\pfMULLIGATAWNY.acm") File.Delete(".\MulliManager\" & prof & "\pfMULLIGATAWNY.rbr") End Sub 'SAVEPROFIL Private Sub SAVEPROFIL(ByVal prof As String) If Exists(rbrpath & "\SavedGames\pfMULLIGATAWNY.acm") Then File.Copy(".\SavedGames\pfMULLIGATAWNY.acm", ".\MulliManager\" & prof & "\pfMULLIGATAWNY.acm") End If If Exists(rbrpath & "\SavedGames\pfMULLIGATAWNY.rbr") Then File.Copy(".\SavedGames\pfMULLIGATAWNY.rbr", ".\MulliManager\" & prof & "\pfMULLIGATAWNY.rbr") End If End Sub 'ATTENTE DE L'UTILISATEUR ' 'BOUTON SAVE Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Call BACKUPMULLI("Profil1") End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Call BACKUPMULLI("Profil2") End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Call BACKUPMULLI("Profil3") End Sub 'BOUTON LOAD Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call LOADMULLI("Profil1") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Call LOADMULLI("Profil2") End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Call LOADMULLI("Profil3") End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Call LOADMULLI("OriginalProfil") End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label6.Visible = False Timer1.Enabled = False End Sub End Class -- Sam 8 Juin 2013 18:20 -- Salut Je recree pas de nouveau sujet pour si peu, je suis comme beaucoup touché par la création automatique de dossier MyPhysics dans le dossier rbr Comme je suis un gros flemmard, j'ai fait un petit utilitaire qui les détecte et les supprime Si ça intéresse... |
Auteur: | fifou [ Sam 8 Juin 2013 19:01 ] |
Sujet du message: | Re: ProfilManager |
Fais gaffe, tu vas être accro à la même drogue que moi |
Auteur: | BlunT [ Sam 8 Juin 2013 19:55 ] |
Sujet du message: | Re: ProfilManager |
Pas grave, elle est gratuite celle la |
Auteur: | fifou [ Sam 27 Juil 2013 19:40 ] |
Sujet du message: | Re: ProfilManager |
T'aurais pas des envie de développement par hasard ? Parce que j'ai du mal à trouver la motivation.............. |
Auteur: | PHIL63 [ Sam 27 Juil 2013 20:38 ] |
Sujet du message: | Re: ProfilManager |
Je sais bien que j'arrive après la bataille mais bon @BlunT en début de code je vois : Private Sub Form1_Load c'est bien une sub qui se lance automatiquement à la création de la fiche ? Si oui alors il y a un truc que je ne comprends pas Dedans on trouve ça : Code: 'detecte la presence de MULLIGATAWNY et fait une sauvegarde dans OriginalProfil If Exists(value & "\SavedGames\pfMULLIGATAWNY.acm") Then System.IO.File.Copy(".\SavedGames\pfMULLIGATAWNY.acm", ".\ProfilManager\OriginalProfil\pfMULLIGATAWNY.acm") End If If Exists(value & "\SavedGames\pfMULLIGATAWNY.rbr") Then System.IO.File.Copy(".\SavedGames\pfMULLIGATAWNY.rbr", ".\ProfilManager\OriginalProfil\pfMULLIGATAWNY.rbr") End If et là... ben je pose ma question Que se passe-t-il si le coup d'avant j'ai appliqué un profil palette par exemple... il est écrasé puisque tu ne vérifies pas si un profil existe déjà dans le dossier OriginalProfil ... ... et donc le coup suivant le profil original est celui avec les palettes. Avant de copier le profil dans le dossier OriginalProfil tu dois vérifier si il n'y en a pas déjà un qui a été sauvegardé lors d'un précédent lancement Ou alors il y a un truc que j'ai pas compris dans l'utilisation mais ça c'est normal, je pilote pas |
Auteur: | BlunT [ Sam 27 Juil 2013 20:58 ] |
Sujet du message: | Re: ProfilManager |
No souci Phil, je suis pas a l'abri d'une erreur, merci d'y avoir jeter un oeil Pour repondre a ta question, le prog verifie d'abord la presence de richardbrunsrallySSE.exe, s'il ne trouve pas il se lance pas S'il le trouve il verifie la presence du dossier MulliManager, s'il ne trouve pas il le cree ainsi que la sauvegarde dans Original profile Si le dossier MulliManager existe deja, le prog se lance simplement sans rien faire Code: 'verifie la presence de rbr.exe dans le dossier courant If System.IO.File.Exists("richardburnsrally_SSE.exe") = False Then MsgBox("Launch the application in the folder richard burns rally") Close() Else 'verifie si le dossier ProfilManager existe If Directory.Exists("MulliManager") = False Then '1er demarrage --> INSTALLATION @fifou, en ce moment avec ce soleil je passe beaucoup moins de temps devant le pc...comme chaque été Et je n'ai plus toucher a VB depuis ce prog Mais je n'ai rien d'un developpeur fifou, juste un ptit bidouilleur...avec tout les bouts de codes et infos qui trainent sur le net, je joue au LEGO c'est tout |
Page 3 sur 5 | Heures au format UTC + 1 heure [ Heure d’été ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |