| KGF.dll - demandes ou suggestions de modifications ou ajouts | |
|
+7papydall Oscaribout Marc Pedro Minibug pascal10000 Klaus 11 participants |
|
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: KGF.dll - demandes ou suggestions de modifications ou ajouts Jeu 25 Mai 2017 - 21:50 | |
| Cette nouvelle rubrique est dédiée aux Panoramiciens qui voudraient me suggérer des modifications ou des ajouts dans KGF.dll. | |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Ven 8 Déc 2017 - 16:21 | |
| bonsoir comme tu met au point le vu metre a kgf ce qui m'intéresserai comme fonction c'est de possedé et manipuler les grave et les aigus et qui soient manipulable avec des track_bar de panoramique comme tu l'as fais pour le volume et merci pour ces options fort intéréssant | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Ven 8 Déc 2017 - 16:57 | |
| Je note et je vais voir ça. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 13:33 | |
| Bonjour Klaus !
Concernant l'objet TREEVIEW serait il possible de modifier les couleurs du fond, du texte normal et sélectionné ?
Je travail actuellement sur une interface au couleurs personnalisées et c'est vrai que Treeview dénote un peu avec l'ensemble de mes couleurs. C'est vrai que se sont des détails mais qui parfois font la différence pour 'attirer' les utilisateurs.
Une autre idée : Ce qui pourrait être intéressant c'est de pouvoir gérer les couleurs de tous les objets de KGF à partir d'un seul ensemble de paramètres généraux (couleur fond, texte sélectionné, texte non sélectionné, etc). Il suffirait de déterminer les paramètres dès le départ et on aurait ensuite automatiquement les bonnes couleurs. Mais là ce n'est peut être pas possible !
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 13:37 | |
| Je vais étudier la question, Minibug. Pour TreeView, cela me semble possible sans trop de problème. Par contre, faire cela de façon générale, c'est plus complexe. Mais je vais regarder. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 16:29 | |
| Merci klaus ! Il n'y a pas d'urgence, prends ton temps... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 22:09 | |
| J'ai regardé un peu le problème des couleurs des objets. C'est plus ardu que ce que je pensais au premier abord.
Tout d'abord, pour l'objet TreeView: ce n'est pas moi qui le dessine - c'est juste un habillage autour de l'objet TreeView de Delphi (et de Windows). Je ne choisis donc pas les couleurs qui sont imposées par le schéma de couleurs en vigueur de Windows, et du style paramétré par l'utilisateur. Tour cela se fait par le panneau de configuration de Windows.
Il y a bien une API retournant la couleur système pour tel ou tel élément de Windows, et une autre pour la changer. Mais malheureusement, elles agissent sur la totalité su système et non seulement sur le programme en cours.
Il y a deux autres difficultés. Prenons par exemple la couleur COLOR_BTNFACE. Comme son nom l'indique, c'est la couleur de fond de la face d'un bouton. Oui, mais malheureusement pas seulement... c'est aussi la couleur d'un objet TImage (qui est à la base de l'objet PICTURE de Panoramic), ainsi que plusieurs autres éléments, comme par exemple le fond d'une form à laquelle on n'a pas affecté une autre couleur. Changer cela globalement pour tout Windows fournit des effets cocasses...
Et pour pimenter encore la sauce, certains contrôles (comme la ComboBox, mais il y en a d'autres) n'utilisent pas du tout ces couleurs standadisées Windows, et cette fonction de changement de couleur n'a donc aucun effet sur eux.
Seule solution: Créer une version "personnalisée" de chacun de ces contrôles, dévier l'évènement OnPaint et redessiner le contrôle soi-même... autant dire que c'est illusoire. Il faudrait un monument équivalent à KGFdll actuel pour implémenter tout cela. Oublie...
Tout ce que tu peux faire, c'est d'utiliser les moyens de Windows pour choisir un thème et un style qui te convient, en télécharger un à disposition sur le net (il y en a une multitude) ou installer un outil de création de style et ainsi créer ton propre style.
Je sais, ce n'est pas ce que tu espérais, mais je n'ai pas mieux à offrir. Désolé. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 22:26 | |
| @Mnibug: Si tu télécharges KGF.dll maintenant, tu y trouveras une nouvelle fonction NON DOCUMENTEE pour changer la couleur système de certains éléments. Format d'appel: - Code:
-
OldColor% = dll_call2("ChangeSysColor",code%,NewColor%) La variable code% choisit la couleur à remplacer, la variable NewColor% donne la nouvelle valeur à mettre en place, et OldColor% reçoit la valeur qui était installée, pour que tu puisses ma remettre en place. Voici les codes que j'ai pu obtenir: - Spoiler:
- Citation :
- COLOR_3DDKSHADOW = 21; // Dark shadow for three-dimensional display elements.
COLOR_3DFACE = 15; // Face color for three-dimensional display elements and for dialog box backgrounds. COLOR_3DHIGHLIGHT = 20; // Highlight color for three-dimensional display elements (for edges facing the light source.) COLOR_3DHILIGHT = 20; // Highlight color for three-dimensional display elements (for edges facing the light source.) COLOR_3DLIGHT = 22; // Light color for three-dimensional display elements (for edges facing the light source.) COLOR_3DSHADOW = 16; // Shadow color for three-dimensional display elements (for edges facing away from the light source). COLOR_ACTIVEBORDER = 10; // Active window border. COLOR_ACTIVECAPTION = 2; // Active window title bar. The associated foreground color is COLOR_CAPTIONTEXT. // Specifies the left side color in the color gradient of an active window's title bar if the gradient effect is enabled. COLOR_APPWORKSPACE = 12; // Background color of multiple document interface (MDI) applications. COLOR_BACKGROUND = 1; // Desktop. COLOR_BTNFACE = 15; // Face color for three-dimensional display elements and for dialog box backgrounds. The associated foreground color is COLOR_BTNTEXT. COLOR_BTNHIGHLIGHT = 20; // Highlight color for three-dimensional display elements (for edges facing the light source.) COLOR_BTNHILIGHT = 20; // Highlight color for three-dimensional display elements (for edges facing the light source.) COLOR_BTNSHADOW = 16; // Shadow color for three-dimensional display elements (for edges facing away from the light source). COLOR_BTNTEXT = 18; // Text on push buttons. The associated background color is COLOR_BTNFACE. COLOR_CAPTIONTEXT = 9; // Text in caption, size box, and scroll bar arrow box. The associated background color is COLOR_ACTIVECAPTION. COLOR_DESKTOP = 1; // Desktop. COLOR_GRADIENTACTIVECAPTION = 27; // Right side color in the color gradient of an active window's title bar. COLOR_ACTIVECAPTION specifies the left side color. Use SPI_GETGRADIENTCAPTIONS with the SystemParametersInfo function to determine whether the gradient effect is enabled. COLOR_GRADIENTINACTIVECAPTION = 28; // Right side color in the color gradient of an inactive window's title bar. COLOR_INACTIVECAPTION specifies the left side color. COLOR_GRAYTEXT = 17; // Grayed (disabled) text. This color is set to 0 if the current display driver does not support a solid gray color. COLOR_HIGHLIGHT = 13; // Item(s) selected in a control. The associated foreground color is COLOR_HIGHLIGHTTEXT. COLOR_HIGHLIGHTTEXT = 14; // Text of item(s) selected in a control. The associated background color is COLOR_HIGHLIGHT. COLOR_HOTLIGHT = 26; // Color for a hyperlink or hot-tracked item. The associated background color is COLOR_WINDOW. COLOR_INACTIVEBORDER = 11; // Inactive window border. COLOR_INACTIVECAPTION = 3; // Inactive window caption. The associated foreground color is COLOR_INACTIVECAPTIONTEXT. // Specifies the left side color in the color gradient of an inactive window's title bar if the gradient effect is enabled. COLOR_INACTIVECAPTIONTEXT = 19; // Color of text in an inactive caption. The associated background color is COLOR_INACTIVECAPTION. COLOR_INFOBK = 24; // Background color for tooltip controls. The associated foreground color is COLOR_INFOTEXT. COLOR_INFOTEXT = 23; // Text color for tooltip controls. The associated background color is COLOR_INFOBK. COLOR_MENU = 4; // Menu background. The associated foreground color is COLOR_MENUTEXT. COLOR_MENUHILIGHT = 29; // The color used to highlight menu items when the menu appears as a flat menu (see SystemParametersInfo). The highlighted menu item is outlined with COLOR_HIGHLIGHT. // Windows 2000: This value is not supported. COLOR_MENUBAR = 30; // The background color for the menu bar when menus appear as flat menus (see SystemParametersInfo). However, COLOR_MENU continues to specify the background color of the menu popup. // Windows 2000: This value is not supported. COLOR_MENUTEXT = 7; // Text in menus. The associated background color is COLOR_MENU. COLOR_SCROLLBAR = 0; // Scroll bar gray area. COLOR_WINDOW = 5; // Window background. The associated foreground colors are COLOR_WINDOWTEXT and COLOR_HOTLITE. COLOR_WINDOWFRAME = 6; // Window frame. COLOR_WINDOWTEXT = 8; // Text in windows. The associated background color is COLOR_WINDOW.
La colonne de gauche donne le nom symbolique, la valeur après le signe "=" est le code que tu dois passer en paramètre, et le commentaire explique (vaguement) à quoi sert cette couleur. Essaie le code 15, pour un premier essai... Je ne documenterai pas cette fonction dans KGF.dll - son usage me semble beaucoup trop problématique. surtout si tu perds la valeur OldColor% avant de l'avoir restituée... | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 22:32 | |
| Bonsoir Klaus ! je ne croyais pas avoir mis le doigt sur quelque chose d'aussi compliquer. Dans ce cas ne t'embêtes pas, laisses tombé ce n'est pas grave ! D'ailleurs, je travaille sur la réalisation en Panoramic d'un pseudo objet TREEVIEW. Ce sera l'occasion, encore une fois de prouver la puissance de notre langage ! Merci d'avoir pris le temps d'étudier mon idée. Edit : On s'est croisé Klaus ! Je regarde de suite...
Dernière édition par Minibug le Dim 10 Déc 2017 - 22:37, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 22:34 | |
| Oui, c'est la solution ! Comme pour mon objet scope que j'ai entièrement réalisé sans me baser sur un existant quelconque, et dont j'ai rendu paramétrables toutes les couleurs. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 23:35 | |
| Hum c'est quand même intéressant tout ça ! Je vient de tester sur un simple bouton et miracle le bouton change de couleur. Ça c'est déjà surprenant puisque dans Panoramic on ne peux pas le changer... Bon l'inconvénient c'est que le fond de la form change aussi... Mais on peut sûrement creuser et trouver d'autres solutions comme remplacer le fond par une image ! Je pense que tu devrais garder cette option, elle aura peut être son intérêt un jour qui sais... J'ai testé tous les codes de 0 a 40, bonjour le feu d'artifice. J'ai même réussi à changer la couleur de la police et le fond de l'éditeur Panoramic. Pour remettre tout en ordre j'ai sélectionné le fond du bureau de WINDOW 7 par défaut et là tout est rentré dans l'ordre dans les couleurs de bases de Windows. Par contre crois tu qu'il y est une fonction permettant cela ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 23:47 | |
| Il faut que je recherche ça... Mais as-tu essayé de restaurer la valeur chargée, de la manière suivante;=: - Code:
-
dim OldColor%, res% ' changer la couleur OldColor% = dll_call2("ChangeSysColor",15,255) : ' rouge, en principe... ... ' restaurer la couleur res% = dll_call2("ChangeSysColor",15,OldColor) : ' situation normale C'est pour cela que ma fonction retourne la valeur de la couleur installée précédemment. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 23:50 | |
| Oui j'ai testé comme ceci : - Code:
-
DIM n% , r% , v%, b% , col%(100)
DLL_ON "KGF.dll"
BUTTON 1 : CAPTION 1,"lolo"
FOR n%=1 TO 100 r%=0 : v%=255 : b%=0 : col%(n%) = dll_call2("ChangeSysColor",n%,((b%*256+v%)*256+r%)) NEXT n%
MESSAGE "terminé"
FOR n%=1 TO 100 r% = dll_call2("ChangeSysColor",n%,col%(n%)) NEXT n%
TERMINATE Et ça fonctionne parfaitement. tu as raison pourquoi réinventer la roue ?! Il suffit de prévoir une variable et l’initialiser au démarrage comme je l'ai fait. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Dim 10 Déc 2017 - 23:59 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 2:06 | |
| @Pascal10000: - Citation :
- ce qui m'intéresserai comme fonction
c'est de possedé et manipuler les grave et les aigus et qui soient manipulable avec des track_bar de panoramique comme tu l'as fais pour le volume après maintes recherches, je constate que la possibilité de régler les graves et les aigus dépend entièrement de la carte son et de son driver. Le PC de base, avec le driver Windows de base, ne peut pas le faire. Sur le mien, par exemple, je n'ai aucun moyen d'y parvenir. Il s'agit donc d'un problème spécifique que je ne peux pas résoudre dans le cas général de KGF.dll. Désolé. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 8:18 | |
| Bonjour Klaus
Je me permet de te faire remarquer que certains logiciels comme WINAMP permettent la correction au travers d'un équalizer. Pour se faire, ils utilisent des 'bandes de fréquences' pour modifier le son dans les fréquences graves ou aigus. Et cela quelque soit la carte son...
Après je n'en sais pas plus. Peut être que ça te donnera une autre piste, ou pas... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 9:12 | |
| Oui, mais ils traitent le son directement, dans son format iinterne, en analysant les fréquences. Tout ce que je peux faire en utilisant les APIs, comme pour le volume, ça va. Même si dans certains cas, ça reste complexe, le vrai travail est fait par le système. Par contre, là, il faudrait gérer le flux du son, analyser le spectre des fréquences en temps réel - cela dépasse ce que je peux faire ici. Comme pour WinAmp, cela serait une application complète à réaliser en C (pour la performance), ou une grosse DLL séparée. Il y a bien des DLLs auxiliaires qui le font (BASS.dll par exemple), mais j'ai toujours évité d'inclure d'autres DLLs à installer en même temps que KGF.dll. Trop intruisif dans le système cible, trop lourd à distribuer. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 9:39 | |
| Ok je comprends mieux. Eh bien on se contentera de ce que l'on a et c'est déjà pas mal du tout ! Et surtout c'est grâce à toi ! Encore merci. | |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 11:42 | |
| bjr klaus
ok tant pis mais faut pas baisser les bras
je ne sais pas! mais n'y aurait il pas une piste en utilisant l'api "waveOutGetPosition" , hWaveOut, &lpInfo, uSize) de winmm.dll, et pour les ondes ils se sert de "waveOutGetPitch" mais de quoi correspond les ondes au juste? apparemment c'est cette librairy qui control tout le système de la carte son
encore une ptite question ou en est tu pour le vue mettre? sera t'il exploitable?
allez bonne journée
| |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 11:46 | |
| dans mes recherche a propos de waveOutGetPitch voilas ce que jai trouvé
waveOutSetPitch [applications] réglage de la hauteur du dispositif de sortie de forme d'onde [arguments] hWaveOut / * dispositif de la poignée pour régler la hauteur * / DwPitch / * nouveau terrain * / [valeur de retour] succès 0
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 14:38 | |
| Merci pour l'info, Pascal10000. Je n'avais pas encore vu cette fonction.
En recherche sur le net, il n'y a pas grand chose sur elle. Bien sûr, un article sur MSDN décrivant la fonction et ses paramètres - bien. Mais son utilité ? Pas grand chose. Et MSDN dit bien que tous les périphériques ne le supportent pas et qu'il faut vérifier dans les capacités du périphérique pour savoir si ça marche sur un PC donné. Et c'est bien ce que j'avais pointé plus haut - ce ne sont pas des fonctions utilisables partout.
Mais je vais creuser l'affaire. | |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Lun 11 Déc 2017 - 15:49 | |
| c'est vrai que sur msdn il ne dise pas grand chose même sur les example qu'on peut trouver
en info il y a 192 fonction dans winmm si tu veut je peut poster toutes les fonction de winmm.dll avec ses déclarations | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Demande d'une nouvelle fonction dans kgf. Mar 12 Déc 2017 - 13:27 | |
| Bonjour. @Klaus. J'aurais besoin, pour des raisons de performance, d'une nouvelle fonction dans kgf.dll. Le but de cette fonction serait de déterminer l'existence de nombreuses sous-chaînes dans une chaîne donnée. Exemple.chaine$="Esa minúscula muestra de los innumerables soles del universo ni siquiera es representativa de los mundos que existen." L'objet combo contient ceci: - Code:
-
ni si quiera sé qué es lo que celebramos . ;locut; je ne sais même pas ce que l ' on est censé fêter ? ; locut; ni siquiera advirtieron a los matones anti - occupy central que habían suscitado el conflicto . ;locut; les malfrats anti - occupy central , qui avaient provoqué l ' affrontement n ' avaient , eux , même pas reçu d ' avertissement . ; locut;
La fonction prendrait chacune des lignes de la combo, et rechercherait la présence de la partie gauche de chaque sous-chaîne, dans la chaîne donnée (ici: ni si quiera sé qué es lo que celebramos), pour la 1ère ligne. Le séparateur de fin de sous-chaîne devra être fourni à la dll (ici: ;locut;), car il peut varier. Les sous-chaînes trouvées devront être enregistrées dans un autre objet combo. Est-ce faisable ? Merci de la suite.
Dernière édition par Pedro Alvarez le Mar 12 Déc 2017 - 13:37, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Mar 12 Déc 2017 - 13:36 | |
| Oui, c'est faisable. Je note cela dans la TODO list et vais regarder cela. | |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts Mar 12 Déc 2017 - 14:22 | |
| bonjour klaus pour le track_bar circulaire il faudrai qu'il soit personnalisable a l'aide de picture a souhait mes pictures que j'ai créé pour cette opération sont de 30X30 là je suis sur une belle creation je n'en dirai pas de plus lol | |
|
| |
Contenu sponsorisé
| Sujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts | |
| |
|
| |
| KGF.dll - demandes ou suggestions de modifications ou ajouts | |
|