DOCK CIRCULAIRE AVEC EFFET , AVEC TRAITEMENT IMAGE ET TRANSPARENCE

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 - 7 sept. 2008 à 12:20
cs_EzecKiel Messages postés 2 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 20 octobre 2009 - 20 oct. 2009 à 07:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47878-dock-circulaire-avec-effet-avec-traitement-image-et-transparence

cs_EzecKiel Messages postés 2 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 20 octobre 2009
20 oct. 2009 à 07:49
Bonjour, est-ce qu'il y a moyen de faire fonctionner ça dans un container (panel par exemple)
d'avance merci !
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
24 janv. 2009 à 00:54
De nouveau une correction et modif pour le Split (optionnel)
En effet il y'a quelque temps j'avais trouvé une anomalie (voir message ci-dessus)
Maintenant je dois utiliser que du C# en priorité, et plus du VB donc j'ai revu le code de ce fabuleux source et eux quelques problèmes avec des valeurs contenues dans le Conf des virgules au lieu de . comme séparateur décimal ce qui empêchait le fonctionnement du dock.
Il faudrait pour que cela soit parfaitement fonctionnel de tenir compte des paramètres régionaux signe séparateur monétaire.

Ma correction provisoire pour faire fonctionner le dock (qui devrait être TopMost)
Class Parametres

public static bool getDouble(String filename, String section, String item, ref Double value, Boolean logErreur)
{
Boolean ret = true;
String sValue = "";
if (getString(filename, section, item, ref sValue, logErreur))
{
Double dblVal;
sValue = sValue.Replace(",", ".").ToString();//Car dans le fichier de Conf il y'avait des virgule ?
// faudrait tenir compte du signe séparateur en fonction du pays code region ?
if (Double.TryParse(sValue, NumberStyles.Float, null, out dblVal))// Pourquoi integer alors qu'on veut un double !
{
value = Double.Parse(sValue);
}
else
{...}


Dans Class DockletFactory

pourquoi pas cela ?

public Boolean add(String line)
{
Boolean ret = false;
char[] delimiterChars = {'|'};

String[] lines = line.Split(delimiterChars, StringSplitOptions.None);
Docklet dock;
{...}

De plus utilisation de la référence visualbasic, pourquoi pas des regex ou Variable.Quelquechose ?

Bonne contination.
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
23 janv. 2009 à 20:16
*Marche lentement dans le territoire C# ...*

Salut !
Ton code - je ne l'ai pas testé, je suis en Delphi - à l'air interessant, surtout qu'il vient de me donner une idée.
Vous savez, cette sorte de grosse barre qui apparaît lorsque la souris touche le haut de l'écran, et qui offre de multiples options (ouvrir internet, l'anti-virus, et tout le tremblement) ? (je crois que ça existe sous Mac et Vista). Eh bien c'est parti pour la réalisation en Delphi.
Merci encore pour l'idée (surtout que 80% de mon temps sur l'ordi est consacré à la recherche d'une idée lol).

:)

Cordialement, Bacterius !
kajiku Messages postés 2 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 9 janvier 2009
9 janv. 2009 à 15:04
Programme utile, bien fait, simple, facilement compréhensible et modifiable, personnellement j'ai ajouté le passage à True/False du TopMost sur le clic dans le systray qui permet comme celà d'accéder facilement au dock !
Merci ;)
cheragasalhi Messages postés 31 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 17 juin 2009
29 nov. 2008 à 12:08
félicitation c'est vraiment super
NetWedge Messages postés 12 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 8 octobre 2008
8 oct. 2008 à 16:41
Merci sidewalker pour ce sympathique commentaire.
quant à claudetom, merci de ta remarque, effectivement j'ai pus constater moi aussi ce (petit) souci que j'ai corrigé de la même façon mais je n'ai pas mis à jour car le zip est trop volumineux. J'ai eu un peu de mal à choisir quels fichiers supprimés :) . Donc je ne fait pas de MAJ, tes commentaires et solutions devraient suffires je pense.
sidewalker Messages postés 20 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 11 juin 2009
8 oct. 2008 à 16:38
J'ajoute que pour une personne qui démarre en C#.NET ce code est une aubaine pour apprendre. :)
sidewalker Messages postés 20 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 11 juin 2009
8 oct. 2008 à 16:31
Salut,
je tenais juste à te féliciter pour ce programme qui est fort bien écrit. Assez simple à en comprendre la structure, car elle est claire.

Enfin bon, chapeau, 10/10.
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
5 oct. 2008 à 03:02
Bonjour,
Suite à ce qui est écrit ci-dessus,
J'ai du modifier la taille du buffer pour obtenir la ligne complete d'un Item(0) etc..
Par contre il y'a un problème suivant la Culture utilisé sur la machine,
En effet les valeurs numériques contenu dans le fichier Init ex(gammaFocus = 0,6) à du être modifié en
gammaFocus = 0.6, les valeurs -864,xxxx en 864 !
Après cela sa marche très bien mais certains points reste à revoir.
Très bon programme !!
Dans la class parametres :

public static bool getString(String filename, String section, String item, ref String value, Boolean logErreur)
{
Boolean ret = true;
StringBuilder buffer = new StringBuilder(512);//255
int strlen = GetPrivateProfileString(section, item, "", buffer, 512, filename);//255
.... }
NetWedge Messages postés 12 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 8 octobre 2008
7 sept. 2008 à 13:54
désolé, c 'est moi, j 'aurai du le savoir. Effectivement si tu n'as pas d'item c'est normal, sa prouve que mon code n'est pas fini :).
C'est simple, il suffit juste de mettre une seule ligne (correcte) dans le fichier ini :

Par exemple :
items(0) =application|Visual Studio|C:\Developpement\OrbitalDock History\OrbitalDock\OrbitalDock\bin\Debug\Images\1969-91244.png|C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe|C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\||0|-1
Cela devrait fonctionner maintenant.

Sinon tu mets une condition pour sauter le code qui provoque l'erreur.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
7 sept. 2008 à 13:29
ayant enlevé les lignes le soft démarre mais

dans
int item = (int)Math.Round((Maths.SubstractAngle(angleClick, angleDecalage % PI2)) / (PI2) * Factory.Count, 0) % Factory.Count;

supportcircle.cs ligne 663
exeption "tentative de division par zero"
NetWedge Messages postés 12 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 8 octobre 2008
7 sept. 2008 à 13:13
En ayant changer de config, de nom de session et de dossier, je n'ai pas cette erreur donc je pense qu'il s'agit d'une mauvaise ecriture dans le fichier <<nom de fichier .ini>> car cette erreur se produit lors de la lecture du fichier. la variable 'lines' est un tableau de chaine comprenant tous les éléments issu des valeurs 'items(?) = ' dans le fichier ini. A mon avis, l'une de ces valeurs ne doit pas être complete. Ce que tu peut faire, c'est supprimer toutes les lignes 'items(?)' dans le fichier et les recréer à partir de l'exécution du soft (si cela fonctionne évidament)
J'espère qu'on en viendra à bout ;)
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
7 sept. 2008 à 13:00
apres changement du path dans le fichier ini et cfg
l'instruction
FullPathStart = lines[4];
DockletApplication.cs ligne 43
provoque une exeption
"L'index se trouve en dehors des limites du tableau"
NetWedge Messages postés 12 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 8 octobre 2008
7 sept. 2008 à 12:29
Oui, en fait il s'agit de la gestion d'erreur du logiciel, il y a un fichier 'OrbitalDock\OrbitalDock\bin\Debug\logErreurs.txt' ou est stockée l'erreur et son explication.
Cette erreur est normale puisque la configuration est adapté à mon ordinateur,il faut configurer le fichier 'config.cfg' en mettant le nom de la session et le nom du fichier qui sera ouvert dans la section [Instance].
Exemple si ta session est Administrateur et ton fichier de config 'OrbitalDock\OrbitalDock\bin\Debug\Instances\Administrateur.ini' alors il faut inscrire 'Administrateur = Administrateur.ini'. (format <<Nom de session>> = <<Nom de fichier ini>>)
Voila, j'espère que mes explications sont assez claire.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
7 sept. 2008 à 12:20
message d'erreur au démarrage de l'application :
"
des erreurs se sont produites pendant l'execution du dock
"
Rejoignez-nous