begin process at 2010 02 10 13:55:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > TAGREEMENT

TAGREEMENT


 Information sur la source

Note :
Aucune note
Catégorie :Composants Classé sous :Accords, guitare, Composant, Record Niveau :Débutant Date de création :20/12/2007 Date de mise à jour :28/12/2007 22:56:49 Vu / téléchargé :5 380 / 168

Auteur : Francky23012301

Ecrire un message privé
Site perso
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
ben voici un source spécialement pour Nico :

TAgreement est un composant permettant de visualiser plus de 900 accords de guitare.

Pour les mordus de records : bon appétit ^^.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 décembre 2007 13:42:20 :
Modification proposée par Cirec : réalisée. le fait que l'accord ne change pas quand on clique sur le scrollbar est fait volontairement : ca permet de défiler sans voir tout les accords apparaitrent.
21 décembre 2007 09:45:21 :
Pour faire plaisir à tout le monde : listbox remplacée par un combobox et ajout des noms des cordes pour M'sieur Cirec ;). Modification proposée par f0xi : réalisée. Pour la notation francaise des accords : je suis pas sur qu'elle existe.
21 décembre 2007 09:47:19 :
Un ptit soucis dans la modif du screenshot
22 décembre 2007 09:29:09 :
Modif proposées par Cirec et Japee
28 décembre 2007 22:56:50 :
A force de modifier et modifier on en arrive à s'emmeler les pinceaux. Enfin bref la version précédente était pas la bonne : présence de beugs et absence d'options. Donc voila la bonne version finalisée selon les recommendations de Cirec et Japee. Merci à tous.

 Sources du même auteur

Source avec Zip Source avec une capture TSELECTBUTTON-TPOTENTIO-TTRACKBARVALUE
Source avec Zip Source avec une capture DELPHIUM_KARAOKÉ
Source avec Zip Source avec une capture SMTPCLIENT ET SMTPMESS : COMPOSANTS POUR ENVOYER DES MAILS ...
Source avec Zip BASE64_CONVERTOR
Source avec Zip Source avec une capture POWER SMTP SERVER

 Sources de la même categorie

Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip DYNAMIC LIBRARY LOADER CLASS: GAGNEZ DU TEMPS POUR CHARGER L... par f0xi
Source avec Zip Source avec une capture COMPOSANTS NDSOFT par diglas
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip COMPOSANT TTHRESCOLLECTION par ThWilliam

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip Source avec une capture UN JOLI BOUTON ! par Bacterius
Source avec Zip Source avec une capture DATETIMEPICKER : AJOUT DE FONCTIONS par simonpelloquin
Source avec Zip Source avec une capture COMPOS TCYCOMPONENTS V2.6 par MAURICIO

Commentaires et avis

Commentaire de cirec le 20/12/2007 13:20:24 administrateur CS

C'est bien ... et très intéressant (pour ceux qui gratouille )

Mais ... il y a un mais ;)

Remplace Les :
          Self.Repaint;
          Self.Refresh;
Par :
          Invalidate;

Il y a encore d'autres petites choses mais le plus important est :
quand on clique sur les flèches rien ne change il faut cliquer sur le texte de la ListBox pour que le changement soit visible ...

Et la notation international c'est bien mais les deux serait mieux
A --> La
etc

Belle initiative ... j'y avais pensé il y a longtemps déjà mais je ne l'ai jamais fait.
Bravo

Commentaire de japee le 21/12/2007 00:05:27 administrateur CS

Salut Francky,

Ouais, y'a quelques accords que je connaissais pas... ;-)

J'ai noté un comportement trrrèèès bizarre :
Après avoir cliqué dans la TListBox pour faire apparaître les accords, si on clique sur le panel, les accords sont modifiés plusieurs fois, le premier étant le seul correct.
Sinon, c'est pratique, en saisissant directement l'accord concerné dans la ListBox, on accède rapidement aux derniers de la liste (heureusement pour le sol).

Bon, c'est pas tout ça, quand est-ce qu'on se le tape, ce boeuf ?

Commentaire de cirec le 21/12/2007 01:27:41 administrateur CS

"Après avoir cliqué dans la TListBox pour faire apparaître les accords, si on clique sur le panel, les accords sont modifiés plusieurs fois, le premier étant le seul correct." ??

Moi il me semble avoir reconnu d'autres manières d'arriver à la même note !

Je ne les connais pas toutes mais j'en ai reconnu quelques-une ... Le Ré en particulier mais certaines d'entre elles je les connaissaient comme notes augmentées. D'ailleurs en parlant de cela il en manque encore des notes ...
puisque tu les retrouves tout le long du manche.

L'ajout du nom des cordes (Mi, La, Ré, Sol, Si, Mi) et les numéros des doigts
dans les cercle de positions serait un plus pour les débutants.
Ainsi que, j'y reviens, le nom des notes ;-)

Ah aussi je me demandais si un ComboBox ne serait pas mieux qu'une ListBox ...
Cela permettrait d'utiliser le clavier pour accéder au différentes notes. Exemple : pour acceder au Ré tu appuies juste sur "D"
Pour le reste il y a la DropDownList pour un accès rapide avec la souris ou les flèches du clavier sans pour autant afficher chaque note au passage !!!
Ce qui par la même règlerait le "problème" du clique obligatoire pour afficher la tablature.

Parce que là c'est même contraignant, pour une note en plein milieu il faut faire défiler au risque de passer à côté dans un premier temps.

Ok pour le b½uf !  ;-)

Commentaire de f0xi le 21/12/2007 01:53:45 administrateur CS

unit Agreements;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, StdCtrls, Graphics, dialogs;


Type
  TAgreement = record
    Name  : string;
    Param : Array[0..5] of shortint;
  end;

Const
  ListAgreement: Array [0..902] Of TAgreement=(
(Name :'AMaj';      Param:(0,0,2,2,2,0)),
(Name :'AMaj';      Param:(0,4,-1,2,5,0)),
(Name :'AMaj';      Param:(5,7,7,6,5,5)),
(Name :'AMaj';      Param:(-1,0,2,2,2,0)),
(Name :'AMaj';      Param:(-1,4,7,-1,-1,5)),
(Name :'A#5';       Param:(-1,0,3,2,2,1)),
(Name :'A#5';       Param:(-1,0,-1,2,2,1)),
(Name :'A/Ab';      Param:(-1,0,2,1,2,0)),
(Name :'A/B';       Param:(0,0,2,4,2,0)),
(Name :'A/B';       Param:(-1,0,7,6,0,0)),
(Name :'A/D';       Param:(-1,0,0,2,2,0)),
(Name :'A/D';       Param:(-1,-1,0,2,2,0)),
(Name :'A/D';       Param:(-1,-1,0,6,5,5)),
(Name :'A/D';       Param:(-1,-1,0,9,10,9)),
(Name :'A/G';       Param:(3,-1,2,2,2,0)),
(Name :'A/G';       Param:(-1,0,2,0,2,0)),
(Name :'A/G';       Param:(-1,0,2,2,2,3)),
(Name :'A/Gb';      Param:(0,0,2,2,2,2)),
(Name :'A/Gb';      Param:(0,-1,4,2,2,0)),
(Name :'A/Gb';      Param:(2,-1,2,2,2,0)),
(Name :'A/Gb';      Param:(-1,0,4,2,2,0)),
(Name :'A/Gb';      Param:(-1,-1,2,2,2,2)),
(Name :'A5';        Param:(5,7,7,-1,-1,5)),
(Name :'A5';        Param:(-1,0,2,2,-1,0)),
(Name :'A5';        Param:(5,7,7,-1,-1,0)),
(Name :'A6';        Param:(0,0,2,2,2,2)),
(Name :'A6';        Param:(0,-1,4,2,2,0)),
(Name :'A6';        Param:(2,-1,2,2,2,0)),
(Name :'A6';        Param:(-1,0,4,2,2,0)),
(Name :'A6';        Param:(-1,-1,2,2,2,2)),
(Name :'A6/7';      Param:(0,0,2,0,2,2)),
(Name :'A6/7sus4';  Param:(5,5,4,0,3,0)),
(Name :'A6/7sus4';  Param:(-1,0,2,0,3,2)),
(Name :'A7';        Param:(3,-1,2,2,2,0)),
(Name :'A7';        Param:(-1,0,2,0,2,0)),
(Name :'A7';        Param:(-1,0,2,2,2,3)),
(Name :'A7(#5)';    Param:(1,0,3,0,2,1)),
(Name :'A7/add11';  Param:(-1,0,0,0,2,0)),
(Name :'A7sus4';    Param:(-1,0,2,0,3,0)),
(Name :'A7sus4';    Param:(-1,0,2,0,3,3)),
(Name :'A7sus4';    Param:(-1,0,2,2,3,3)),
(Name :'A7sus4';    Param:(5,-1,0,0,3,0)),
(Name :'A7sus4';    Param:(-1,0,0,0,-1,0)),
(Name :'Aadd9';     Param:(0,0,2,4,2,0)),
(Name :'Aadd9';     Param:(-1,0,7,6,0,0)),
(Name :'Aaug/D';    Param:(-1,-1,0,2,2,1)),
(Name :'Aaug/G';    Param:(1,0,3,0,2,1)),
(Name :'Ab';        Param:(4,6,6,5,4,4)),
(Name :'Ab#5';      Param:(-1,3,2,1,1,0)),
(Name :'Ab/A';      Param:(-1,-1,1,2,1,4)),
(Name :'Ab/F';      Param:(-1,8,10,8,9,8)),
(Name :'Ab/F';      Param:(-1,-1,1,1,1,1)),
(Name :'Ab/Gb';     Param:(-1,-1,1,1,1,2)),
(Name :'Ab/Gb';     Param:(-1,-1,4,5,4,4)),
(Name :'Ab5';       Param:(4,6,6,-1,-1,4)),
(Name :'Ab6';       Param:(-1,8,10,8,9,8)),
(Name :'Ab6';       Param:(-1,-1,1,1,1,1)),
(Name :'Ab7';       Param:(-1,-1,1,1,1,2)),
(Name :'Ab7';       Param:(-1,-1,4,5,4,4)),
(Name :'Abdim/E';   Param:(0,2,0,1,0,0)),
(Name :'Abdim/E';   Param:(0,2,2,1,3,0)),
(Name :'Abdim/E';   Param:(-1,2,0,1,3,0)),
(Name :'Abdim/E';   Param:(-1,-1,0,1,0,0)),
(Name :'Abdim/Eb';  Param:(-1,-1,0,4,4,4)),
(Name :'Abdim/F';   Param:(-1,2,0,1,0,1)),
(Name :'Abdim/F';   Param:(-1,-1,0,1,0,1)),
(Name :'Abdim/F';   Param:(-1,-1,3,4,3,4)),
(Name :'Abdim7';    Param:(-1,2,0,1,0,1)),
(Name :'Abdim7';    Param:(-1,-1,0,1,0,1)),
(Name :'Abdim7';    Param:(-1,-1,3,4,3,4)),
(Name :'Abm';       Param:(-1,-1,6,4,4,4)),
(Name :'Abm/D';     Param:(-1,-1,0,4,4,4)),
(Name :'Abm/E';     Param:(0,2,1,1,0,0)),
(Name :'Abm/E';     Param:(0,-1,6,4,4,0)),
(Name :'Abm/E';     Param:(-1,-1,1,1,0,0)),
(Name :'Abm/Gb';    Param:(-1,-1,4,4,4,4)),
(Name :'Abm7';      Param:(-1,-1,4,4,4,4)),
(Name :'Absus4';    Param:(-1,-1,6,6,4,4)),
(Name :'Absus2/F';  Param:(-1,1,3,1,4,1)),
(Name :'Adim/Ab';   Param:(-1,-1,1,2,1,4)),
(Name :'Adim/E';    Param:(0,3,-1,2,4,0)),
(Name :'Adim/F';    Param:(-1,-1,1,2,1,1)),
(Name :'Adim/F';    Param:(-1,-1,3,5,4,5)),
(Name :'Adim/G';    Param:(-1,-1,1,2,1,3)),
(Name :'Adim/Gb';   Param:(-1,-1,1,2,1,2)),
(Name :'Adim7';     Param:(-1,-1,1,2,1,2)),
(Name :'Am';        Param:(-1,0,2,2,1,0)),
(Name :'Am';        Param:(-1,0,7,5,5,5)),
(Name :'Am';        Param:(-1,3,2,2,1,0)),
(Name :'Am';        Param:(8,12,-1,-1,-1,0)),
(Name :'Am/B';      Param:(0,0,7,5,0,0)),
(Name :'Am/B';      Param:(-1,3,2,2,0,0)),
(Name :'Am/D';      Param:(-1,-1,0,2,1,0)),
(Name :'Am/D';      Param:(-1,-1,0,5,5,5)),
(Name :'Am/Eb';     Param:(0,3,-1,2,4,0)),
(Name :'Am/F';      Param:(0,0,3,2,1,0)),
(Name :'Am/F';      Param:(1,3,3,2,1,0)),
(Name :'Am/F';      Param:(1,-1,2,2,1,0)),
(Name :'Am/F';      Param:(-1,-1,2,2,1,1)),
(Name :'Am/F';      Param:(-1,-1,3,2,1,0)),
(Name :'Am/G';      Param:(0,0,2,0,1,3)),
(Name :'Am/G';      Param:(-1,0,2,0,1,0)),
(Name :'Am/G';      Param:(-1,0,2,2,1,3)),
(Name :'Am/G';      Param:(-1,0,5,5,5,8)),
(Name :'Am/Gb';     Param:(-1,0,2,2,1,2)),
(Name :'Am/Gb';     Param:(-1,-1,2,2,1,2)),
(Name :'Am6';       Param:(-1,0,2,2,1,2)),
(Name :'Am6';       Param:(-1,-1,2,2,1,2)),
(Name :'Am7';       Param:(0,0,2,0,1,3)),
(Name :'Am7';       Param:(-1,0,2,0,1,0)),
(Name :'Am7';       Param:(-1,0,2,2,1,3)),
(Name :'Am7';       Param:(-1,0,5,5,5,8)),
(Name :'Am7(b5)';   Param:(-1,-1,1,2,1,3)),
(Name :'Am7/add11'; Param:(-1,5,7,5,8,0)),
(Name :'Amaj7';     Param:(-1,0,2,1,2,0)),
(Name :'Amin/maj9'; Param:(-1,0,6,5,5,7)),
(Name :'Asus4';     Param:(0,0,2,2,3,0)),
(Name :'Asus4';     Param:(-1,0,2,2,3,0)),
(Name :'Asus4';     Param:(5,5,7,7,-1,0)),
(Name :'Asus4';     Param:(-1,0,0,2,3,0)),
(Name :'Asus2';     Param:(0,0,2,2,0,0)),
(Name :'Asus2';     Param:(0,0,2,4,0,0)),
(Name :'Asus2';     Param:(0,2,2,2,0,0)),
(Name :'Asus2';     Param:(-1,0,2,2,0,0)),
(Name :'Asus2';     Param:(-1,-1,2,2,0,0)),
(Name :'Asus2/Ab';  Param:(-1,0,2,1,0,0)),
(Name :'Asus2/C';   Param:(0,0,7,5,0,0)),
(Name :'Asus2/C';   Param:(-1,3,2,2,0,0)),
(Name :'Asus2/D';   Param:(0,2,0,2,0,0)),
(Name :'Asus2/D';   Param:(-1,2,0,2,3,0)),
(Name :'Asus2/Db';  Param:(0,0,2,4,2,0)),
(Name :'Asus2/Db';  Param:(-1,0,7,6,0,0)),
(Name :'Asus2/Eb';  Param:(-1,2,1,2,0,0)),
(Name :'Asus2/F';   Param:(0,0,3,2,0,0)),
(Name :'Asus2/G';   Param:(3,-1,2,2,0,0)),
(Name :'Asus2/G';   Param:(-1,0,2,0,0,0)),
(Name :'Asus2/G';   Param:(-1,0,5,4,5,0)),
(Name :'Asus2/Gb';  Param:(-1,0,4,4,0,0)),
(Name :'Asus2/Gb';  Param:(-1,2,4,2,5,2)),
(Name :'Asus4/Ab';  Param:(4,-1,0,2,3,0)),
(Name :'Asus4/B';   Param:(0,2,0,2,0,0)),
(Name :'Asus4/Bb';  Param:(0,1,-1,2,3,0)),
(Name :'Asus4/C';   Param:(-1,-1,0,2,1,0)),
(Name :'Asus4/C';   Param:(-1,-1,0,5,5,5)),
(Name :'Asus4/Db';  Param:(-1,0,0,2,2,0)),
(Name :'Asus4/Db';  Param:(-1,-1,0,2,2,0)),
(Name :'Asus4/Db';  Param:(-1,-1,0,6,5,5)),
(Name :'Asus4/Db';  Param:(-1,-1,0,9,10,9)),
(Name :'Asus4/F';   Param:(-1,-1,7,7,6,0)),
(Name :'Asus4/G';   Param:(-1,0,2,0,3,0)),
(Name :'Asus4/G';   Param:(-1,0,2,0,3,3)),
(Name :'Asus4/G';   Param:(-1,0,2,2,3,3)),
(Name :'Asus4/G';   Param:(-1,0,0,0,-1,0)),
(Name :'Asus4/Gb';  Param:(0,0,0,2,3,2)),
(Name :'Asus4/Gb';  Param:(0,0,4,2,3,0)),
(Name :'Asus4/Gb';  Param:(2,-1,0,2,3,0)),
(Name :'Asus4/Gb';  Param:(-1,0,2,2,3,2)),
(Name :'Asus4/Gb';  Param:(-1,-1,2,2,3,2)),
(Name :'Asus4/Gb';  Param:(-1,5,4,2,3,0)),
(Name :'Asus4/Gb';  Param:(-1,9,7,7,-1,0)),
(Name :'B';         Param:(-1,2,4,4,4,2)),
(Name :'B#5';       Param:(3,2,1,0,0,3)),
(Name :'B#5';       Param:(3,-1,1,0,0,3)),
(Name :'B/A';       Param:(2,-1,1,2,0,2)),
(Name :'B/A';       Param:(-1,0,1,2,0,2)),
(Name :'B/A';       Param:(-1,2,1,2,0,2)),
(Name :'B/A';       Param:(-1,2,4,2,4,2)),
(Name :'B/Ab';      Param:(-1,-1,4,4,4,4)),
(Name :'B/E';       Param:(-1,2,2,4,4,2)),
(Name :'B/E';       Param:(-1,-1,4,4,4,0)),
(Name :'B5';        Param:(7,9,9,-1,-1,2)),
(Name :'B5';        Param:(-1,2,4,4,-1,2)),
(Name :'B6';        Param:(-1,-1,4,4,4,4)),
(Name :'B7';        Param:(2,-1,1,2,0,2)),
(Name :'B7';        Param:(-1,0,1,2,0,2)),
(Name :'B7';        Param:(-1,2,1,2,0,2)),
(Name :'B7';        Param:(-1,2,4,2,4,2)),
(Name :'B7/add11';  Param:(0,0,4,4,4,0)),
(Name :'B7/add11';  Param:(0,2,1,2,0,2)),
(Name :'B7sus4';    Param:(-1,0,4,4,0,0)),
(Name :'B7sus4';    Param:(-1,2,4,2,5,2)),
(Name :'Baug/E';    Param:(3,-1,1,0,0,0)),
(Name :'Baug/E';    Param:(-1,-1,1,0,0,0)),
(Name :'Bb';        Param:(1,1,3,3,3,1)),
(Name :'Bb';        Param:(-1,1,3,3,3,1)),
(Name :'Bb';        Param:(-1,-1,0,3,3,1)),
(Name :'Bb#5';      Param:(-1,-1,0,3,3,2)),
(Name :'Bbb5';      Param:(-1,-1,0,3,-1,0)),
(Name :'Bb/A';      Param:(1,1,3,2,3,1)),
(Name :'Bb/Ab';     Param:(-1,1,3,1,3,1)),
(Name :'Bb/Ab';     Param:(-1,-1,3,3,3,4)),
(Name :'Bb/Db';     Param:(-1,-1,0,6,6,6)),
(Name :'Bb/E';      Param:(-1,1,3,3,3,0)),
(Name :'Bb/G';      Param:(3,5,3,3,3,3)),
(Name :'Bb/G';      Param:(-1,-1,3,3,3,3)),
(Name :'Bb5';       Param:(6,8,8,-1,-1,6)),
(Name :'Bb5';       Param:(-1,1,3,3,-1,6)),
(Name :'Bb6';       Param:(3,5,3,3,3,3)),
(Name :'Bb6';       Param:(-1,-1,3,3,3,3)),
(Name :'Bb6/add9';  Param:(-1,3,3,3,3,3)),
(Name :'Bb7';       Param:(-1,1,3,1,3,1)),
(Name :'Bb7';       Param:(-1,-1,3,3,3,4)),
(Name :'Bb7sus4';   Param:(-1,1,3,1,4,1)),
(Name :'Bbadd#11';  Param:(-1,1,3,3,3,0)),
(Name :'Bbaug/E';   Param:(2,-1,4,3,3,0)),
(Name :'Bbdim/C';   Param:(-1,3,-1,3,2,0)),
(Name :'Bbdim/D';   Param:(-1,-1,0,3,2,0)),
(Name :'Bbdim/G';   Param:(-1,1,2,0,2,0)),
(Name :'Bbdim/G';   Param:(-1,-1,2,3,2,3)),
(Name :'Bbdim/Gb';  Param:(2,4,2,3,2,2)),
(Name :'Bbdim/Gb';  Param:(-1,-1,4,3,2,0)),
(Name :'Bbdim7';    Param:(-1,1,2,0,2,0)),
(Name :'Bbdim7';    Param:(-1,-1,2,3,2,3)),
(Name :'Bbm';       Param:(1,1,3,3,2,1)),
(Name :'Bbm/Ab';    Param:(-1,1,3,1,2,1)),
(Name :'Bbm/D';     Param:(-1,-1,0,6,6,6)),
(Name :'Bbm/Gb';    Param:(-1,-1,3,3,2,2)),
(Name :'Bbm7';      Param:(-1,1,3,1,2,1)),
(Name :'Bbmaj7';    Param:(1,1,3,2,3,1)),
(Name :'Bbmaj9';    Param:(-1,3,3,3,3,5)),
(Name :'Bbsus2';    Param:(-1,-1,3,3,1,1)),
(Name :'Bbsus2/G';  Param:(-1,3,5,3,6,3)),
(Name :'Bbsus4/Ab'; Param:(-1,1,3,1,4,1)),
(Name :'Bdim/A';    Param:(1,2,3,2,3,1)),
(Name :'Bdim/A';    Param:(-1,2,0,2,0,1)),
(Name :'Bdim/A';    Param:(-1,-1,0,2,0,1)),
(Name :'Bdim/Ab';   Param:(-1,2,0,1,0,1)),
(Name :'Bdim/Ab';   Param:(-1,-1,0,1,0,1)),
(Name :'Bdim/Ab';   Param:(-1,-1,3,4,3,4)),
(Name :'Bdim/G';    Param:(1,-1,0,0,0,3)),
(Name :'Bdim/G';    Param:(3,2,0,0,0,1)),
(Name :'Bdim/G';    Param:(-1,-1,0,0,0,1)),
(Name :'Bdim7';     Param:(-1,2,0,1,0,1)),
(Name :'Bdim7';     Param:(-1,-1,0,1,0,1)),
(Name :'Bdim7';     Param:(-1,-1,3,4,3,4)),
(Name :'Bm';        Param:(2,2,4,4,3,2)),
(Name :'Bm';        Param:(-1,2,4,4,3,2)),
(Name :'Bm';        Param:(-1,-1,0,4,3,2)),
(Name :'Bm/A';      Param:(-1,0,4,4,3,2)),
(Name :'Bm/A';      Param:(-1,2,0,2,0,2)),
(Name :'Bm/A';      Param:(-1,2,0,2,3,2)),
(Name :'Bm/A';      Param:(-1,2,4,2,3,2)),
(Name :'Bm/A';      Param:(-1,-1,0,2,0,2)),
(Name :'Bm/G';      Param:(2,2,0,0,0,3)),
(Name :'Bm/G';      Param:(2,2,0,0,3,3)),
(Name :'Bm/G';      Param:(3,2,0,0,0,2)),
(Name :'Bm/G';      Param:(-1,-1,4,4,3,3)),
(Name :'Bm7';       Param:(-1,0,4,4,3,2)),
(Name :'Bm7';       Param:(-1,2,0,2,0,2)),
(Name :'Bm7';       Param:(-1,2,0,2,3,2)),
(Name :'Bm7';       Param:(-1,2,4,2,3,2)),
(Name :'Bm7';       Param:(-1,-1,0,2,0,2)),
(Name :'Bm7(b5)';   Param:(1,2,3,2,3,1)),
(Name :'Bm7(b5)';   Param:(-1,2,0,2,0,1)),
(Name :'Bm7(b5)';   Param:(-1,-1,0,2,0,1)),
(Name :'Bm7/add11'; Param:(0,0,2,4,3,2)),
(Name :'Bm7/add11'; Param:(0,2,0,2,0,2)),
(Name :'Bmaj7/#11'; Param:(-1,2,3,3,4,2)),
(Name :'Bsus';      Param:(7,9,9,-1,-1,0)),
(Name :'Bsus';      Param:(-1,2,4,4,-1,0)),
(Name :'Bsus2';     Param:(-1,4,4,4,-1,2)),
(Name :'Bsus2';     Param:(-1,-1,4,4,2,2)),
(Name :'Bsus2/E';   Param:(-1,4,4,4,-1,0)),
(Name :'Bsus4/A';   Param:(-1,0,4,4,0,0)),
(Name :'Bsus4/A';   Param:(-1,2,4,2,5,2)),
(Name :'Bsus4/Ab';  Param:(0,2,2,1,0,2)),
(Name :'Bsus4/Ab';  Param:(0,-1,4,1,0,0)),
(Name :'Bsus4/Ab';  Param:(2,2,2,1,0,0)),
(Name :'Bsus4/Db';  Param:(-1,4,4,4,-1,0)),
(Name :'Bsus4/Eb';  Param:(-1,2,2,4,4,2)),
(Name :'Bsus4/Eb';  Param:(-1,-1,4,4,4,0)),
(Name :'Bsus4/G';   Param:(0,2,2,0,0,2)),
(Name :'Bsus4/G';   Param:(0,2,4,0,0,0)),
(Name :'Bsus4/G';   Param:(0,-1,4,0,0,0)),
(Name :'Bsus4/G';   Param:(2,2,2,0,0,0)),
(Name :'C';         Param:(0,3,2,0,1,0)),
(Name :'C';         Param:(0,3,5,5,5,3)),
(Name :'C';         Param:(3,3,2,0,1,0)),
(Name :'C';         Param:(3,-1,2,0,1,0)),
(Name :'C';         Param:(-1,3,2,0,1,0)),
(Name :'C';         Param:(-1,3,5,5,5,0)),
(Name :'C#5';       Param:(-1,3,2,1,1,0)),
(Name :'Cb5';       Param:(-1,-1,4,5,-1,0)),
(Name :'C/A';       Param:(0,0,2,0,1,3)),
(Name :'C/A';       Param:(-1,0,2,0,1,0)),
(Name :'C/A';       Param:(-1,0,2,2,1,3)),
(Name :'C/A';       Param:(-1,0,5,5,5,8)),
(Name :'C/B';       Param:(0,3,2,0,0,0)),
(Name :'C/B';       Param:(-1,2,2,0,1,0)),
(Name :'C/B';       Param:(-1,3,5,4,5,3)),
(Name :'C/Bb';      Param:(-1,3,5,3,5,3)),
(Name :'C/D';       Param:(3,-1,0,0,1,0)),
(Name :'C/D';       Param:(-1,3,0,0,1,0)),
(Name :'C/D';       Param:(-1,3,2,0,3,0)),
(Name :'C/D';       Param:(-1,3,2,0,3,3)),
(Name :'C/D';       Param:(-1,-1,0,0,1,0)),
(Name :'C/D';       Param:(-1,-1,0,5,5,3)),
(Name :'C/D';       Param:(-1,10,12,12,13,0)),
(Name :'C/D';       Param:(-1,5,5,5,-1,0)),
(Name :'C/F';       Param:(-1,3,3,0,1,0)),
(Name :'C/F';       Param:(-1,-1,3,0,1,0)),
(Name :'C5';        Param:(-1,3,5,5,-1,3)),
(Name :'C6';        Param:(0,0,2,0,1,3)),
(Name :'C6';        Param:(-1,0,2,0,1,0)),
(Name :'C6';        Param:(-1,0,2,2,1,3)),
(Name :'C6';        Param:(-1,0,5,5,5,8)),
(Name :'C6/add9';   Param:(-1,5,7,5,8,0)),
(Name :'C7';        Param:(-1,3,5,3,5,3)),
(Name :'C7sus4';    Param:(-1,3,5,3,6,3)),
(Name :'C9(b5)';    Param:(0,3,-1,3,3,2)),
(Name :'Cadd9';     Param:(3,-1,0,0,1,0)),
(Name :'Cadd9';     Param:(-1,3,0,0,1,0)),
(Name :'Cadd9';     Param:(-1,3,2,0,3,0)),
(Name :'Cadd9';     Param:(-1,3,2,0,3,3)),
(Name :'Cadd9';     Param:(-1,-1,0,0,1,0)),
(Name :'Cadd9';     Param:(-1,-1,0,5,5,3)),
(Name :'Cadd9';     Param:(-1,10,12,12,13,0)),
(Name :'Cadd9';     Param:(-1,3,2,0,3,0)),
(Name :'Cadd9';     Param:(-1,5,5,5,-1,0)),
(Name :'Cdim/A';    Param:(-1,-1,1,2,1,2)),
(Name :'Cdim/Ab';   Param:(-1,-1,1,1,1,2)),
(Name :'Cdim/Ab';   Param:(-1,-1,4,5,4,4)),
(Name :'Cdim/D';    Param:(-1,5,4,5,4,2)),
(Name :'Cdim7';     Param:(-1,-1,1,2,1,2)),
(Name :'Cm';        Param:(-1,3,5,5,4,3)),
(Name :'Cm';        Param:(-1,-1,5,5,4,3)),
(Name :'Cm/A';      Param:(-1,-1,1,2,1,3)),
(Name :'Cm/Bb';     Param:(-1,3,5,3,4,3)),
(Name :'Cm6';       Param:(-1,-1,1,2,1,3)),
(Name :'Cm7';       Param:(-1,3,5,3,4,3)),
(Name :'Cmaj7';     Param:(0,3,2,0,0,0)),
(Name :'Cmaj7';     Param:(-1,2,2,0,1,0)),
(Name :'Cmaj7';     Param:(-1,3,5,4,5,3)),
(Name :'Cmaj9';     Param:(-1,3,0,0,0,0)),
(Name :'Csus';      Param:(-1,3,3,0,1,1)),
(Name :'Csus';      Param:(-1,-1,3,0,1,1)),
(Name :'Csus2';     Param:(-1,10,12,12,13,3)),
(Name :'Csus2';     Param:(-1,5,5,5,-1,3)),
(Name :'Csus2';     Param:(-1,3,0,0,3,3)),
(Name :'Csus2';     Param:(-1,3,5,5,3,3)),
(Name :'Csus2/A';   Param:(-1,5,7,5,8,3)),
(Name :'Csus2/A';   Param:(-1,-1,0,2,1,3)),
(Name :'Csus2/B';   Param:(3,3,0,0,0,3)),
(Name :'Csus2/B';   Param:(-1,3,0,0,0,3)),
(Name :'Csus2/E';   Param:(3,-1,0,0,1,0)),
(Name :'Csus2/E';   Param:(-1,3,0,0,1,0)),
(Name :'Csus2/E';   Param:(-1,3,2,0,3,0)),
(Name :'Csus2/E';   Param:(-1,3,2,0,3,3)),
(Name :'Csus2/E';   Param:(-1,-1,0,0,1,0)),
(Name :'Csus2/E';   Param:(-1,-1,0,5,5,3)),
(Name :'Csus2/E';   Param:(-1,10,12,12,13,0)),
(Name :'Csus2/E';   Param:(-1,5,5,5,-1,0)),
(Name :'Csus2/F';   Param:(3,3,0,0,1,1)),
(Name :'Csus4/A';   Param:(3,-1,3,2,1,1)),
(Name :'Csus4/A';   Param:(-1,-1,3,2,1,3)),
(Name :'Csus4/B';   Param:(-1,3,3,0,0,3)),
(Name :'Csus4/Bb';  Param:(-1,3,5,3,6,3)),
(Name :'Csus4/D';   Param:(3,3,0,0,1,1)),
(Name :'Csus4/E';   Param:(-1,3,3,0,1,0)),
(Name :'Csus4/E';   Param:(-1,-1,3,0,1,0)),
(Name :'D';         Param:(-1,5,4,2,3,2)),
(Name :'D';         Param:(-1,9,7,7,-1,2)),
(Name :'D';         Param:(2,0,0,2,3,2)),
(Name :'D';         Param:(-1,0,0,2,3,2)),
(Name :'D';         Param:(-1,0,4,2,3,2)),
(Name :'D';         Param:(-1,-1,0,2,3,2)),
(Name :'D';         Param:(-1,-1,0,7,7,5)),
(Name :'D#5';       Param:(-1,-1,0,3,3,2)),
(Name :'D/B';       Param:(-1,0,4,4,3,2)),
(Name :'D/B';       Param:(-1,2,0,2,0,2)),
(Name :'D/B';       Param:(-1,2,0,2,3,2)),
(Name :'D/B';       Param:(-1,2,4,2,3,2)),
(Name :'D/B';       Param:(-1,-1,0,2,0,2)),
(Name :'D/C';       Param:(-1,5,7,5,7,2)),
(Name :'D/C';       Param:(-1,0,0,2,1,2)),
(Name :'D/C';       Param:(-1,3,-1,2,3,2)),
(Name :'D/C';       Param:(-1,5,7,5,7,5)),
(Name :'D/Db';      Param:(-1,-1,0,14,14,14)),
(Name :'D/Db';      Param:(-1,-1,0,2,2,2)),
(Name :'D/E';       Param:(0,0,0,2,3,2)),
(Name :'D/E';       Param:(0,0,4,2,3,0)),
(Name :'D/E';       Param:(2,-1,0,2,3,0)),
(Name :'D/E';       Param:(-1,0,2,2,3,2)),
(Name :'D/E';       Param:(-1,-1,2,2,3,2)),
(Name :'D/E';       Param:(-1,5,4,2,3,0)),
(Name :'D/E';       Param:(-1,9,7,7,-1,0)),
(Name :'D/G';       Param:(5,-1,4,0,3,5)),
(Name :'D/G';       Param:(3,-1,0,2,3,2)),
(Name :'D5';        Param:(5,5,7,7,-1,5)),
(Name :'D5';        Param:(-1,0,0,2,3,5)),
(Name :'D6';        Param:(-1,0,4,4,3,2)),
(Name :'D6';        Param:(-1,2,0,2,0,2)),
(Name :'D6';        Param:(-1,2,0,2,3,2)),
(Name :'D6';        Param:(-1,2,4,2,3,2)),
(Name :'D6';        Param:(-1,-1,0,2,0,2)),
(Name :'D6/add9';   Param:(0,0,2,4,3,2)),
(Name :'D6/add9';   Param:(0,2,0,2,0,2)),
(Name :'D7';        Param:(-1,5,7,5,7,2)),
(Name :'D7';        Param:(-1,0,0,2,1,2)),
(Name :'D7';        Param:(-1,3,-1,2,3,2)),
(Name :'D7';        Param:(-1,5,7,5,7,5)),
(Name :'D7sus4';    Param:(-1,5,7,5,8,3)),
(Name :'D7sus4';    Param:(-1,-1,0,2,1,3)),
(Name :'D9';        Param:(0,0,0,2,1,2)),
(Name :'D9';        Param:(2,-1,0,2,1,0)),
(Name :'D9';        Param:(-1,5,7,5,7,0)),
(Name :'D9(#5)';    Param:(0,3,-1,3,3,2)),
(Name :'Dadd9';     Param:(0,0,0,2,3,2)),
(Name :'Dadd9';     Param:(0,0,4,2,3,0)),
(Name :'Dadd9';     Param:(2,-1,0,2,3,0)),
(Name :'Dadd9';     Param:(-1,0,2,2,3,2)),
(Name :'Dadd9';     Param:(-1,-1,2,2,3,2)),
(Name :'Dadd9';     Param:(-1,5,4,2,3,0)),
(Name :'Dadd9';     Param:(-1,9,7,7,-1,0)),
(Name :'Daug/E';    Param:(2,-1,4,3,3,0)),
(Name :'Db';        Param:(4,4,6,6,6,4)),
(Name :'Db';        Param:(-1,4,3,1,2,1)),
(Name :'Db';        Param:(-1,4,6,6,6,4)),
(Name :'Db';        Param:(-1,-1,3,1,2,1)),
(Name :'Db';        Param:(-1,-1,6,6,6,4)),
(Name :'Db#5';      Param:(-1,0,3,2,2,1)),
(Name :'Db#5';      Param:(-1,0,-1,2,2,1)),
(Name :'Dbb5';      Param:(-1,-1,3,0,2,1)),
(Name :'Db/B';      Param:(-1,4,3,4,0,4)),
(Name :'Db/Bb';     Param:(-1,1,3,1,2,1)),
(Name :'Db/C';      Param:(-1,3,3,1,2,1)),
(Name :'Db/C';      Param:(-1,4,6,5,6,4)),
(Name :'Db5';       Param:(-1,4,6,6,-1,4)),
(Name :'Db6';       Param:(-1,1,3,1,2,1)),
(Name :'Db7';       Param:(-1,4,3,4,0,4)),
(Name :'Dbaug/D';   Param:(-1,-1,0,2,2,1)),
(Name :'Dbaug/G';   Param:(1,0,3,0,2,1)),
(Name :'Dbdim/A';   Param:(3,-1,2,2,2,0)),
(Name :'Dbdim/A';   Param:(-1,0,2,0,2,0)),
(Name :'Dbdim/A';   Param:(-1,0,2,2,2,3)),
(Name :'Dbdim/B';   Param:(0,2,2,0,2,0)),
(Name :'Dbdim/Bb';  Param:(-1,1,2,0,2,0)),
(Name :'Dbdim/Bb';  Param:(-1,-1,2,3,2,3)),
(Name :'Dbdim/D';   Param:(3,-1,0,0,2,0)),
(Name :'Dbdim/D';   Param:(-1,-1,0,0,2,0)),
(Name :'Dbdim7';    Param:(-1,1,2,0,2,0)),
(Name :'Dbdim7';    Param:(-1,-1,2,3,2,3)),
(Name :'Dbm';       Param:(-1,4,6,6,5,4)),
(Name :'Dbm';       Param:(-1,-1,2,1,2,0)),
(Name :'Dbm';       Param:(-1,4,6,6,-1,0)),
(Name :'Dbm/A';     Param:(-1,0,2,1,2,0)),
(Name :'Dbm/B';     Param:(0,2,2,1,2,0)),
(Name :'Dbm/B';     Param:(-1,4,6,4,5,4)),
(Name :'Dbm7';      Param:(0,2,2,1,2,0)),
(Name :'Dbm7';      Param:(-1,4,6,4,5,4)),
(Name :'Dbm7(b5)';  Param:(0,2,2,0,2,0)),
(Name :'Dbmaj7';    Param:(-1,3,3,1,2,1)),
(Name :'Dbmaj7';    Param:(-1,4,6,5,6,4)),
(Name :'Dbsus2';    Param:(-1,-1,6,6,4,4)),
(Name :'Dbsus4/Bb'; Param:(-1,-1,4,3,2,4)),
(Name :'Ddim/B';    Param:(-1,2,0,1,0,1)),
(Name :'Ddim/B';    Param:(-1,-1,0,1,0,1)),
(Name :'Ddim/B';    Param:(-1,-1,3,4,3,4)),
(Name :'Ddim/Bb';   Param:(-1,1,3,1,3,1)),
(Name :'Ddim/Bb';   Param:(-1,-1,3,3,3,4)),
(Name :'Ddim/C';    Param:(-1,-1,0,1,1,1)),
(Name :'Ddim7';     Param:(-1,2,0,1,0,1)),
(Name :'Ddim7';     Param:(-1,-1,0,1,0,1)),
(Name :'Ddim7';     Param:(-1,-1,3,4,3,4)),
(Name :'Dm';        Param:(-1,0,0,2,3,1)),
(Name :'Dm/B';      Param:(1,2,3,2,3,1)),
(Name :'Dm/B';      Param:(-1,2,0,2,0,1)),
(Name :'Dm/B';      Param:(-1,-1,0,2,0,1)),
(Name :'Dm/Bb';     Param:(1,1,3,2,3,1)),
(Name :'Dm/C';      Param:(-1,5,7,5,6,5)),
(Name :'Dm/C';      Param:(-1,-1,0,2,1,1)),
(Name :'Dm/C';      Param:(-1,-1,0,5,6,5)),
(Name :'Dm/Db';     Param:(-1,-1,0,2,2,1)),
(Name :'Dm/E';      Param:(-1,-1,7,7,6,0)),
(Name :'Dm6';       Param:(1,2,3,2,3,1)),
(Name :'Dm6';       Param:(-1,2,0,2,0,1)),
(Name :'Dm6';       Param:(-1,-1,0,2,0,1)),
(Name :'Dm7';       Param:(-1,5,7,5,6,5)),
(Name :'Dm7';       Param:(-1,-1,0,2,1,1)),
(Name :'Dm7';       Param:(-1,-1,0,5,6,5)),
(Name :'Dm7(b5)';   Param:(-1,-1,0,1,1,1)),
(Name :'Dm7/add11'; Param:(3,-1,0,2,1,1)),
(Name :'Dmaj7';     Param:(-1,-1,0,14,14,14)),
(Name :'Dmaj7';     Param:(-1,-1,0,2,2,2)),
(Name :'Dmin/maj7'; Param:(-1,-1,0,2,2,1)),
(Name :'Dsus';      Param:(5,-1,0,0,3,5)),
(Name :'Dsus';      Param:(3,0,0,0,3,3)),
(Name :'Dsus';      Param:(-1,0,0,0,3,3)),
(Name :'Dsus';      Param:(-1,-1,0,2,3,3)),
(Name :'Dsus2';     Param:(5,5,7,7,-1,0)),
(Name :'Dsus2';     Param:(-1,0,0,2,3,0)),
(Name :'Dsus2';     Param:(0,0,2,2,3,0)),
(Name :'Dsus2';     Param:(-1,0,2,2,3,0)),
(Name :'Dsus2';     Param:(-1,-1,0,2,3,0)),
(Name :'Dsus2/Ab';  Param:(4,-1,0,2,3,0)),
(Name :'Dsus2/B';   Param:(0,2,0,2,0,0)),
(Name :'Dsus2/B';   Param:(-1,2,0,2,3,0)),
(Name :'Dsus2/Bb';  Param:(0,1,-1,2,3,0)),
(Name :'Dsus2/C';   Param:(-1,-1,0,2,1,0)),
(Name :'Dsus2/C';   Param:(-1,-1,0,5,5,5)),
(Name :'Dsus2/Db';  Param:(-1,0,0,2,2,0)),
(Name :'Dsus2/Db';  Param:(-1,-1,0,2,2,0)),
(Name :'Dsus2/Db';  Param:(-1,-1,0,6,5,5)),
(Name :'Dsus2/Db';  Param:(-1,-1,0,9,10,9)),
(Name :'Dsus2/F';   Param:(-1,-1,7,7,6,0)),
(Name :'Dsus2/G';   Param:(-1,0,2,0,3,0)),
(Name :'Dsus2/G';   Param:(-1,0,2,0,3,3)),
(Name :'Dsus2/G';   Param:(-1,0,2,2,3,3)),
(Name :'Dsus2/G';   Param:(5,-1,0,0,3,0)),
(Name :'Dsus2/G';   Param:(-1,0,0,0,-1,0)),
(Name :'Dsus2/Gb';  Param:(0,0,0,2,3,2)),
(Name :'Dsus2/Gb';  Param:(0,0,4,2,3,0)),
(Name :'Dsus2/Gb';  Param:(2,-1,0,2,3,0)),
(Name :'Dsus2/Gb';  Param:(-1,0,2,2,3,2)),
(Name :'Dsus2/Gb';  Param:(-1,-1,2,2,3,2)),
(Name :'Dsus2/Gb';  Param:(-1,5,4,2,3,0)),
(Name :'Dsus2/Gb';  Param:(-1,9,7,7,-1,0)),
(Name :'Dsus4/B';   Param:(3,0,0,0,0,3)),
(Name :'Dsus4/B';   Param:(3,2,0,2,0,3)),
(Name :'Dsus4/C';   Param:(-1,5,7,5,8,3)),
(Name :'Dsus4/C';   Param:(-1,-1,0,2,1,3)),
(Name :'Dsus4/E';   Param:(-1,0,2,0,3,0)),
(Name :'Dsus4/E';   Param:(-1,0,2,0,3,3)),
(Name :'Dsus4/E';   Param:(-1,0,2,2,3,3)),
(Name :'Dsus4/E';   Param:(5,-1,0,0,3,0)),
(Name :'Dsus4/E';   Param:(-1,0,0,0,-1,0)),
(Name :'Dsus4/Gb';  Param:(5,-1,4,0,3,5)),
(Name :'Dsus4/Gb';  Param:(3,-1,0,2,3,2)),
(Name :'E';Param:(0,2,2,1,0,0)),
(Name :'E';Param:(-1,7,6,4,5,0)),
(Name :'E#5';Param:(-1,3,2,1,1,0)),
(Name :'E/A';Param:(-1,0,2,1,0,0)),
(Name :'E/D';Param:(0,2,0,1,0,0)),
(Name :'E/D';Param:(0,2,2,1,3,0)),
(Name :'E/D';Param:(-1,2,0,1,3,0)),
(Name :'E/D';Param:(-1,-1,0,1,0,0)),
(Name :'E/Db';Param:(0,2,2,1,2,0)),
(Name :'E/Db';Param:(-1,4,6,4,5,4)),
(Name :'E/Eb';Param:(0,2,1,1,0,0)),
(Name :'E/Eb';Param:(0,-1,6,4,4,0)),
(Name :'E/Eb';Param:(-1,-1,1,1,0,0)),
(Name :'E/Gb';Param:(0,2,2,1,0,2)),
(Name :'E/Gb';Param:(0,-1,4,1,0,0)),
(Name :'E/Gb';Param:(2,2,2,1,0,0)),
(Name :'E11/b9';Param:(0,0,3,4,3,4)),
(Name :'E5';Param:(0,2,-1,-1,-1,0)),
(Name :'E5';Param:(-1,7,9,9,-1,0)),
(Name :'E6';Param:(0,2,2,1,2,0)),
(Name :'E6';Param:(-1,4,6,4,5,4)),
(Name :'E7';Param:(0,2,0,1,0,0)),
(Name :'E7';Param:(0,2,2,1,3,0)),
(Name :'E7';Param:(-1,2,0,1,3,0)),
(Name :'E7';Param:(-1,-1,0,1,0,0)),
(Name :'E7/add11';Param:(-1,0,0,1,0,0)),
(Name :'E7/b9(b5)';Param:(0,1,3,1,3,1)),
(Name :'E7sus4';Param:(0,2,0,2,0,0)),
(Name :'E9';Param:(0,2,0,1,0,2)),
(Name :'E9';Param:(2,2,0,1,0,0)),
(Name :'Eadd9';Param:(0,2,2,1,0,2)),
(Name :'Eadd9';Param:(0,-1,4,1,0,0)),
(Name :'Eadd9';Param:(2,2,2,1,0,0)),
(Name :'Eb';Param:(-1,1,1,3,4,3)),
(Name :'Eb';Param:(-1,-1,1,3,4,3)),
(Name :'Eb';Param:(-1,-1,5,3,4,3)),
(Name :'Eb#5';Param:(3,2,1,0,0,3)),
(Name :'Eb#5';Param:(3,-1,1,0,0,3)),
(Name :'Eb/C';Param:(-1,3,5,3,4,3)),
(Name :'Eb/D';Param:(-1,6,8,7,8,6)),
(Name :'Eb/Db';Param:(-1,1,1,3,2,3)),
(Name :'Eb/Db';Param:(-1,6,8,6,8,6)),
(Name :'Eb/Db';Param:(-1,-1,1,3,2,3)),
(Name :'Eb/E';Param:(-1,-1,5,3,4,0)),
(Name :'Eb5';Param:(-1,6,8,8,-1,6)),
(Name :'Eb6';Param:(-1,3,5,3,4,3)),
(Name :'Eb7';Param:(-1,1,1,3,2,3)),
(Name :'Eb7';Param:(-1,6,8,6,8,6)),
(Name :'Eb7';Param:(-1,-1,1,3,2,3)),
(Name :'Ebaug/E';Param:(3,-1,1,0,0,0)),
(Name :'Ebaug/E';Param:(-1,-1,1,0,0,0)),
(Name :'Ebdim/B';Param:(2,-1,1,2,0,2)),
(Name :'Ebdim/B';Param:(-1,0,1,2,0,2)),
(Name :'Ebdim/B';Param:(-1,2,1,2,0,2)),
(Name :'Ebdim/B';Param:(-1,2,4,2,4,2)),
(Name :'Ebdim/C';Param:(-1,-1,1,2,1,2)),
(Name :'Ebdim7';Param:(-1,-1,1,2,1,2)),
(Name :'Ebm';Param:(-1,-1,4,3,4,2)),
(Name :'Ebm/Db';Param:(-1,-1,1,3,2,2)),
(Name :'Ebm7';Param:(-1,-1,1,3,2,2)),
(Name :'Ebmaj7';Param:(-1,6,8,7,8,6)),
(Name :'Ebsus2/Ab';Param:(-1,1,3,1,4,1)),
(Name :'Ebsus4/F';Param:(-1,1,3,1,4,1)),
(Name :'Edim/C';Param:(-1,3,5,3,5,3)),
(Name :'Edim/D';Param:(3,-1,0,3,3,0)),
(Name :'Edim/Db';Param:(-1,1,2,0,2,0)),
(Name :'Edim/Db';Param:(-1,-1,2,3,2,3)),
(Name :'Edim/Eb';Param:(-1,-1,5,3,4,0)),
(Name :'Edim7';Param:(-1,1,2,0,2,0)),
(Name :'Edim7';Param:(-1,-1,2,3,2,3)),
(Name :'Em';Param:(0,2,2,0,0,0)),
(Name :'Em';Param:(3,-1,2,0,0,0)),
(Name :'Em';Param:(-1,2,5,-1,-1,0)),
(Name :'Em/A';Param:(3,-1,2,2,0,0)),
(Name :'Em/A';Param:(-1,0,2,0,0,0)),
(Name :'Em/A';Param:(-1,0,5,4,5,0)),
(Name :'Em/C';Param:(0,3,2,0,0,0)),
(Name :'Em/C';Param:(-1,2,2,0,1,0)),
(Name :'Em/C';Param:(-1,3,5,4,5,3)),
(Name :'Em/D';Param:(0,2,0,0,0,0)),
(Name :'Em/D';Param:(0,2,0,0,3,0)),
(Name :'Em/D';Param:(0,2,2,0,3,0)),
(Name :'Em/D';Param:(0,2,2,0,3,3)),
(Name :'Em/D';Param:(-1,-1,0,12,12,12)),
(Name :'Em/D';Param:(-1,-1,0,9,8,7)),
(Name :'Em/D';Param:(-1,-1,2,4,3,3)),
(Name :'Em/D';Param:(0,-1,0,0,0,0)),
(Name :'Em/D';Param:(-1,10,12,12,12,0)),
(Name :'Em/Db';Param:(0,2,2,0,2,0)),
(Name :'Em/Eb';Param:(3,-1,1,0,0,0)),
(Name :'Em/Eb';Param:(-1,-1,1,0,0,0)),
(Name :'Em/Gb';Param:(0,2,2,0,0,2)),
(Name :'Em/Gb';Param:(0,2,4,0,0,0)),
(Name :'Em/Gb';Param:(0,-1,4,0,0,0)),
(Name :'Em/Gb';Param:(2,2,2,0,0,0)),
(Name :'Em6';Param:(0,2,2,0,2,0)),
(Name :'Em7';Param:(0,2,0,0,0,0)),
(Name :'Em7';Param:(0,2,0,0,3,0)),
(Name :'Em7';Param:(0,2,2,0,3,0)),
(Name :'Em7';Param:(0,2,2,0,3,3)),
(Name :'Em7';Param:(-1,-1,0,0,0,0)),
(Name :'Em7';Param:(-1,-1,0,12,12,12)),
(Name :'Em7';Param:(-1,-1,0,9,8,7)),
(Name :'Em7';Param:(-1,-1,2,4,3,3)),
(Name :'Em7';Param:(0,-1,0,0,0,0)),
(Name :'Em7';Param:(-1,10,12,12,12,0)),
(Name :'Em7(b5)';Param:(3,-1,0,3,3,0)),
(Name :'Em7/add11';Param:(0,0,0,0,0,0)),
(Name :'Em7/add11';Param:(0,0,0,0,0,3)),
(Name :'Em7/add11';Param:(3,-1,0,2,0,0)),
(Name :'Em9';Param:(0,2,0,0,0,2)),
(Name :'Em9';Param:(0,2,0,0,3,2)),
(Name :'Em9';Param:(2,2,0,0,0,0)),
(Name :'Emaj7';Param:(0,2,1,1,0,0)),
(Name :'Emaj7';Param:(0,-1,6,4,4,0)),
(Name :'Emaj7';Param:(-1,-1,1,1,0,0)),
(Name :'Emaj9';Param:(0,2,1,1,0,2)),
(Name :'Emaj9';Param:(4,-1,4,4,4,0)),
(Name :'Emin/maj7';Param:(3,-1,1,0,0,0)),
(Name :'Emin/maj7';Param:(-1,-1,1,0,0,0)),
(Name :'Emin/maj9';Param:(0,6,4,0,0,0)),
(Name :'Esus';Param:(0,0,2,2,0,0)),
(Name :'Esus';Param:(0,0,2,4,0,0)),
(Name :'Esus';Param:(0,2,2,2,0,0)),
(Name :'Esus';Param:(-1,0,2,2,0,0)),
(Name :'Esus';Param:(-1,-1,2,2,0,0)),
(Name :'Esus2';Param:(7,9,9,-1,-1,0)),
(Name :'Esus2';Param:(-1,2,4,4,-1,0)),
(Name :'Esus2/A';Param:(-1,0,4,4,0,0)),
(Name :'Esus2/A';Param:(-1,2,4,2,5,2)),
(Name :'Esus2/Ab';Param:(0,2,2,1,0,2)),
(Name :'Esus2/Ab';Param:(0,-1,4,1,0,0)),
(Name :'Esus2/Ab';Param:(2,2,2,1,0,0)),
(Name :'Esus2/Db';Param:(-1,4,4,4,-1,0)),
(Name :'Esus2/Eb';Param:(-1,2,2,4,4,2)),
(Name :'Esus2/Eb';Param:(-1,-1,4,4,4,0)),
(Name :'Esus2/G';Param:(0,2,2,0,0,2)),
(Name :'Esus2/G';Param:(0,2,4,0,0,0)),
(Name :'Esus2/G';Param:(0,-1,4,0,0,0)),
(Name :'Esus2/G';Param:(2,2,2,0,0,0)),
(Name :'Esus4/Ab';Param:(-1,0,2,1,0,0)),
(Name :'Esus4/C';Param:(0,0,7,5,0,0)),
(Name :'Esus4/C';Param:(-1,3,2,2,0,0)),
(Name :'Esus4/D';Param:(0,2,0,2,0,0)),
(Name :'Esus4/D';Param:(-1,2,0,2,3,0)),
(Name :'Esus4/Db';Param:(0,0,2,4,2,0)),
(Name :'Esus4/Db';Param:(-1,0,7,6,0,0)),
(Name :'Esus4/Eb';Param:(-1,2,1,2,0,0)),
(Name :'Esus4/F';Param:(0,0,3,2,0,0)),
(Name :'Esus4/G';Param:(-1,0,2,0,0,0)),
(Name :'Esus4/G';Param:(-1,0,5,4,5,0)),
(Name :'Esus4/Gb';Param:(-1,0,4,4,0,0)),
(Name :'Esus4/Gb';Param:(-1,2,4,2,5,2)),
(Name :'F';Param:(1,3,3,2,1,1)),
(Name :'F';Param:(-1,0,3,2,1,1)),
(Name :'F';Param:(-1,3,3,2,1,1)),
(Name :'F';Param:(-1,-1,3,2,1,1)),
(Name :'F#5';Param:(-1,0,3,2,2,1)),
(Name :'F#5';Param:(-1,0,-1,2,2,1)),
(Name :'F/D';Param:(-1,5,7,5,6,5)),
(Name :'F/D';Param:(-1,-1,0,2,1,1)),
(Name :'F/D';Param:(-1,-1,0,5,6,5)),
(Name :'F/E';Param:(0,0,3,2,1,0)),
(Name :'F/E';Param:(1,3,3,2,1,0)),
(Name :'F/E';Param:(1,-1,2,2,1,0)),
(Name :'F/E';Param:(-1,-1,2,2,1,1)),
(Name :'F/E';Param:(-1,-1,3,2,1,0)),
(Name :'F/Eb';Param:(-1,-1,1,2,1,1)),
(Name :'F/Eb';Param:(-1,-1,3,5,4,5)),
(Name :'F/G';Param:(3,-1,3,2,1,1)),
(Name :'F/G';Param:(-1,-1,3,2,1,3)),
(Name :'F5';Param:(1,3,3,-1,-1,1)),
(Name :'F5';Param:(-1,8,10,-1,-1,1)),
(Name :'F6';Param:(-1,5,7,5,6,5)),
(Name :'F6';Param:(-1,-1,0,2,1,1)),
(Name :'F6';Param:(-1,-1,0,5,6,5)),
(Name :'F6/add9';Param:(3,-1,0,2,1,1)),
(Name :'F7';Param:(-1,-1,1,2,1,1)),
(Name :'F7';Param:(-1,-1,3,5,4,5)),
(Name :'Fadd9';Param:(3,-1,3,2,1,1)),
(Name :'Fadd9';Param:(-1,-1,3,2,1,3)),
(Name :'Faug/D';Param:(-1,-1,0,2,2,1)),
(Name :'Faug/G';Param:(1,0,3,0,2,1)),
(Name :'Fdim/D';Param:(-1,2,0,1,0,1)),
(Name :'Fdim/D';Param:(-1,-1,0,1,0,1)),
(Name :'Fdim/D';Param:(-1,-1,3,4,3,4)),
(Name :'Fdim/Db';Param:(-1,4,3,4,0,4)),
(Name :'Fdim7';Param:(-1,2,0,1,0,1)),
(Name :'Fdim7';Param:(-1,-1,0,1,0,1)),
(Name :'Fdim7';Param:(-1,-1,3,4,3,4)),
(Name :'Fm';Param:(-1,3,3,1,1,1)),
(Name :'Fm';Param:(-1,-1,3,1,1,1)),
(Name :'Fm/D';Param:(-1,-1,0,1,1,1)),
(Name :'Fm/Db';Param:(-1,3,3,1,2,1)),
(Name :'Fm/Db';Param:(-1,4,6,5,6,4)),
(Name :'Fm/Eb';Param:(-1,8,10,8,9,8)),
(Name :'Fm/Eb';Param:(-1,-1,1,1,1,1)),
(Name :'Fm6';Param:(-1,-1,0,1,1,1)),
(Name :'Fm7';Param:(-1,8,10,8,9,8)),
(Name :'Fm7';Param:(-1,-1,1,1,1,1)),
(Name :'Fmaj7';Param:(0,0,3,2,1,0)),
(Name :'Fmaj7';Param:(1,3,3,2,1,0)),
(Name :'Fmaj7';Param:(1,-1,2,2,1,0)),
(Name :'Fmaj7';Param:(-1,-1,2,2,1,1)),
(Name :'Fmaj7';Param:(-1,-1,3,2,1,0)),
(Name :'Fmaj7/#11';Param:(0,2,3,2,1,0)),
(Name :'Fmaj7/#11';Param:(1,3,3,2,0,0)),
(Name :'Fmaj9';Param:(0,0,3,0,1,3)),
(Name :'Fsus';Param:(-1,-1,3,3,1,1)),
(Name :'Fsus2';Param:(-1,3,3,0,1,1)),
(Name :'Fsus2';Param:(-1,-1,3,0,1,1)),
(Name :'Fsus2/A';Param:(3,-1,3,2,1,1)),
(Name :'Fsus2/A';Param:(-1,-1,3,2,1,3)),
(Name :'Fsus2/B';Param:(-1,3,3,0,0,3)),
(Name :'Fsus2/Bb';Param:(-1,3,5,3,6,3)),
(Name :'Fsus2/D';Param:(3,3,0,0,1,1)),
(Name :'Fsus2/E';Param:(-1,3,3,0,1,0)),
(Name :'Fsus2/E';Param:(-1,-1,3,0,1,0)),
(Name :'Fsus4/G';Param:(-1,3,5,3,6,3)),
(Name :'G';Param:(-1,10,12,12,12,10)),
(Name :'G';Param:(3,2,0,0,0,3)),
(Name :'G';Param:(3,2,0,0,3,3)),
(Name :'G';Param:(3,5,5,4,3,3)),
(Name :'G';Param:(3,-1,0,0,0,3)),
(Name :'G';Param:(-1,5,5,4,3,3)),
(Name :'G';Param:(-1,-1,0,4,3,3)),
(Name :'G';Param:(-1,-1,0,7,8,7)),
(Name :'G#5';Param:(3,2,1,0,0,3)),
(Name :'G#5';Param:(3,-1,1,0,0,3)),
(Name :'G/A';Param:(3,0,0,0,0,3)),
(Name :'G/A';Param:(3,2,0,2,0,3)),
(Name :'G/C';Param:(3,3,0,0,0,3)),
(Name :'G/C';Param:(-1,3,0,0,0,3)),
(Name :'G/E';Param:(0,2,0,0,0,0)),
(Name :'G/E';Param:(0,2,0,0,3,0)),
(Name :'G/E';Param:(0,2,2,0,3,0)),
(Name :'G/E';Param:(0,2,2,0,3,3)),
(Name :'G/E';Param:(-1,-1,0,12,12,12)),
(Name :'G/E';Param:(-1,-1,0,9,8,7)),
(Name :'G/E';Param:(-1,-1,2,4,3,3)),
(Name :'G/E';Param:(0,-1,0,0,0,0)),
(Name :'G/E';Param:(-1,10,12,12,12,0)),
(Name :'G/F';Param:(1,-1,0,0,0,3)),
(Name :'G/F';Param:(3,2,0,0,0,1)),
(Name :'G/F';Param:(-1,-1,0,0,0,1)),
(Name :'G/Gb';Param:(2,2,0,0,0,3)),
(Name :'G/Gb';Param:(2,2,0,0,3,3)),
(Name :'G/Gb';Param:(3,2,0,0,0,2)),
(Name :'G/Gb';Param:(-1,-1,4,4,3,3)),
(Name :'G5';Param:(3,5,5,-1,-1,3)),
(Name :'G5';Param:(3,-1,0,0,3,3)),
(Name :'G6';Param:(0,2,0,0,0,0)),
(Name :'G6';Param:(0,2,0,0,3,0)),
(Name :'G6';Param:(0,2,2,0,3,0)),
(Name :'G6';Param:(0,2,2,0,3,3)),
(Name :'G6';Param:(-1,-1,0,12,12,12)),
(Name :'G6';Param:(-1,-1,0,9,8,7)),
(Name :'G6';Param:(-1,-1,2,4,3,3)),
(Name :'G6';Param:(0,-1,0,0,0,0)),
(Name :'G6';Param:(-1,10,12,12,12,0)),
(Name :'G6/add9';Param:(0,0,0,0,0,0)),
(Name :'G6/add9';Param:(0,0,0,0,0,3)),
(Name :'G6/add9';Param:(3,-1,0,2,0,0)),
(Name :'G7';Param:(1,-1,0,0,0,3)),
(Name :'G7';Param:(3,2,0,0,0,1)),
(Name :'G7';Param:(-1,-1,0,0,0,1)),
(Name :'G7/add11';Param:(-1,3,0,0,0,1)),
(Name :'G7sus4';Param:(3,3,0,0,1,1)),
(Name :'G9';Param:(-1,0,0,0,0,1)),
(Name :'G9';Param:(-1,2,3,2,3,3)),
(Name :'Gadd9';Param:(3,0,0,0,0,3)),
(Name :'Gadd9';Param:(3,2,0,2,0,3)),
(Name :'Gaug/E';Param:(3,-1,1,0,0,0)),
(Name :'Gaug/E';Param:(-1,-1,1,0,0,0)),
(Name :'Gb';Param:(2,4,4,3,2,2)),
(Name :'Gb';Param:(-1,4,4,3,2,2)),
(Name :'Gb';Param:(-1,-1,4,3,2,2)),
(Name :'Gb#5';Param:(-1,-1,0,3,3,2)),
(Name :'Gb/Ab';Param:(-1,-1,4,3,2,4)),
(Name :'Gb/E';Param:(2,4,2,3,2,2)),
(Name :'Gb/E';Param:(-1,-1,4,3,2,0)),
(Name :'Gb/Eb';Param:(-1,-1,1,3,2,2)),
(Name :'Gb/F';Param:(-1,-1,3,3,2,2)),
(Name :'Gb6';Param:(-1,-1,1,3,2,2)),
(Name :'Gb7';Param:(2,4,2,3,2,2)),
(Name :'Gb7';Param:(-1,-1,4,3,2,0)),
(Name :'Gb7(#5)';Param:(2,-1,4,3,3,0)),
(Name :'Gb7/#9';Param:(-1,0,4,3,2,0)),
(Name :'Gb7sus4';Param:(-1,4,4,4,-1,0)),
(Name :'Gbadd9';Param:(-1,-1,4,3,2,4)),
(Name :'Gbaug/E';Param:(2,-1,4,3,3,0)),
(Name :'Gbdim/D';Param:(-1,5,7,5,7,2)),
(Name :'Gbdim/D';Param:(-1,0,0,2,1,2)),
(Name :'Gbdim/D';Param:(-1,3,-1,2,3,2)),
(Name :'Gbdim/D';Param:(-1,5,7,5,7,5)),
(Name :'Gbdim/E';Param:(-1,0,2,2,1,2)),
(Name :'Gbdim/E';Param:(-1,-1,2,2,1,2)),
(Name :'Gbdim/Eb';Param:(-1,-1,1,2,1,2)),
(Name :'Gbdim7';Param:(-1,-1,1,2,1,2)),
(Name :'Gbm';Param:(2,4,4,2,2,2)),
(Name :'Gbm';Param:(-1,4,4,2,2,2)),
(Name :'Gbm';Param:(-1,-1,4,2,2,2)),
(Name :'Gbm/D';Param:(-1,-1,0,14,14,14)),
(Name :'Gbm/D';Param:(-1,-1,0,2,2,2)),
(Name :'Gbm/E';Param:(0,0,2,2,2,2)),
(Name :'Gbm/E';Param:(0,-1,4,2,2,0)),
(Name :'Gbm/E';Param:(2,-1,2,2,2,0)),
(Name :'Gbm/E';Param:(-1,0,4,2,2,0)),
(Name :'Gbm/E';Param:(-1,-1,2,2,2,2)),
(Name :'Gbm7';Param:(0,0,2,2,2,2)),
(Name :'Gbm7';Param:(0,-1,4,2,2,0)),
(Name :'Gbm7';Param:(2,-1,2,2,2,0)),
(Name :'Gbm7';Param:(-1,0,4,2,2,0)),
(Name :'Gbm7';Param:(-1,-1,2,2,2,2)),
(Name :'Gbm7(b5)';Param:(-1,0,2,2,1,2)),
(Name :'Gbm7(b5)';Param:(-1,-1,2,2,1,2)),
(Name :'Gbm7/b9';Param:(0,0,2,0,2,2)),
(Name :'Gbmaj7';Param:(-1,-1,3,3,2,2)),
(Name :'Gbsus';Param:(-1,4,4,4,2,2)),
(Name :'Gbsus2/Bb';Param:(-1,-1,4,3,2,4)),
(Name :'Gbsus4/E';Param:(-1,4,4,4,-1,0)),
(Name :'Gdim/E';Param:(-1,1,2,0,2,0)),
(Name :'Gdim/E';Param:(-1,-1,2,3,2,3)),
(Name :'Gdim/Eb';Param:(-1,1,1,3,2,3)),
(Name :'Gdim/Eb';Param:(-1,6,8,6,8,6)),
(Name :'Gdim/Eb';Param:(-1,-1,1,3,2,3)),
(Name :'Gdim7';Param:(-1,1,2,0,2,0)),
(Name :'Gdim7';Param:(-1,-1,2,3,2,3)),
(Name :'Gm';Param:(3,5,5,3,3,3)),
(Name :'Gm';Param:(-1,-1,0,3,3,3)),
(Name :'Gm/E';Param:(3,-1,0,3,3,0)),
(Name :'Gm/Eb';Param:(-1,6,8,7,8,6)),
(Name :'Gm/F';Param:(3,5,3,3,3,3)),
(Name :'Gm/F';Param:(-1,-1,3,3,3,3)),
(Name :'Gm13';Param:(0,0,3,3,3,3)),
(Name :'Gm6';Param:(3,-1,0,3,3,0)),
(Name :'Gm7';Param:(3,5,3,3,3,3)),
(Name :'Gm7';Param:(-1,-1,3,3,3,3)),
(Name :'Gm7/add11';Param:(-1,3,3,3,3,3)),
(Name :'Gm9';Param:(3,5,3,3,3,5)),
(Name :'Gmaj7';Param:(2,2,0,0,0,3)),
(Name :'Gmaj7';Param:(2,2,0,0,3,3)),
(Name :'Gmaj7';Param:(3,2,0,0,0,2)),
(Name :'Gmaj7';Param:(-1,-1,4,4,3,3)),
(Name :'Gsus';Param:(-1,10,12,12,13,3)),
(Name :'Gsus';Param:(-1,3,0,0,3,3)),
(Name :'Gsus';Param:(-1,3,5,5,3,3)),
(Name :'Gsus';Param:(-1,5,5,5,3,3)),
(Name :'Gsus2';Param:(5,-1,0,0,3,5)),
(Name :'Gsus2';Param:(3,0,0,0,3,3)),
(Name :'Gsus2';Param:(-1,0,0,0,3,3)),
(Name :'Gsus2';Param:(-1,-1,0,2,3,3)),
(Name :'Gsus2/B';Param:(3,0,0,0,0,3)),
(Name :'Gsus2/B';Param:(3,2,0,2,0,3)),
(Name :'Gsus2/C';Param:(-1,5,7,5,8,3)),
(Name :'Gsus2/C';Param:(-1,-1,0,2,1,3)),
(Name :'Gsus2/E';Param:(-1,0,2,0,3,0)),
(Name :'Gsus2/E';Param:(-1,0,2,0,3,3)),
(Name :'Gsus2/E';Param:(-1,0,2,2,3,3)),
(Name :'Gsus2/E';Param:(5,0,0,0,3,0)),
(Name :'Gsus2/Gb';Param:(5,-1,4,0,3,5)),
(Name :'Gsus2/Gb';Param:(3,-1,0,2,3,2)),
(Name :'Gsus4/A';Param:(-1,5,7,5,8,3)),
(Name :'Gsus4/A';Param:(-1,-1,0,2,1,3)),
(Name :'Gsus4/B';Param:(3,3,0,0,0,3)),
(Name :'Gsus4/B';Param:(-1,3,0,0,0,3)),
(Name :'Gsus4/E';Param:(3,-1,0,0,1,0)),
(Name :'Gsus4/E';Param:(-1,3,0,0,1,0)),
(Name :'Gsus4/E';Param:(-1,3,2,0,3,0)),
(Name :'Gsus4/E';Param:(-1,3,2,0,3,3)),
(Name :'Gsus4/E';Param:(-1,-1,0,0,1,0)),
(Name :'Gsus4/E';Param:(-1,-1,0,5,5,3)),
(Name :'Gsus4/E';Param:(-1,10,12,12,13,0)),
(Name :'Gsus4/E';Param:(-1,5,5,5,-1,0)),
(Name :'Gsus4/F';Param:(3,3,0,0,1,1))
                );

type
  TAgreements = class(TCustomControl)
  private
    fColorLsBx: TColor;
    fAgreeLsBx: TComboBox;
    Procedure SetColorLsBx(Value:TColor);
    Procedure Add_Name_Agreements_In_LsBx;
    Function SubtractorKey : Integer;
  protected
    Procedure DoAgreeLstBxChange(Sender: TObject);
    Procedure Resize; Override;
    Procedure Paint ; Override;
  public
   fAgreementSelected:Integer;
   constructor Create(AOwner:TComponent); override;
   destructor Destroy; override;
  published
    property Width default 200;
    property Height default 200;
    property BevelInner default bvLowered;
    property BevelOuter default bvLowered;
    Property ColorLsBx: TColor Read fColorLsBx Write SetColorLsBx default clWhite;
    property OnMouseDown;
    property OnClick;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MUSIC_PRO', [TAgreements]);
end;

constructor TAgreements.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  Parent := TWinControl(AOwner);

  ControlStyle := ControlStyle + [csFramed, csReplicatable];

  DoubleBuffered := True;
  Caption        := '';
  Width          := 200;
  Height         := 200;
  BevelInner     := bvLowered;
  BevelOuter     := bvLowered;

  fAgreementSelected  := -1;
  fColorLsBx          := ClWhite;

  fAgreeLsBx          := TComboBox.Create(Self);
  fAgreeLsBx.Parent   := self;
  fAgreeLsBx.Anchors  := [akLeft, akRight, akTop];
  fAgreeLsBx.Color    := fColorLsBx;
  fAgreeLsBx.OnChange := DoAgreeLstBxChange;

  Resize;
  Add_Name_Agreements_In_LsBx;
end;

destructor TAgreements.Destroy;
begin
  fAgreeLsBx.Free;
  inherited;
end;

Procedure TAgreements.SetColorLsBx(Value: TColor);
begin
  if fColorLsBx <> Value then
  begin
    fColorLsBx := Value;
    fAgreeLsBx.Color := fColorLsBx;
  end;
End;

Procedure TAgreements.Add_Name_Agreements_In_LsBx;
var
  Index : integer;
begin
  for Index := Low(ListAgreement) to High(ListAgreement) do
    if fAgreeLsBx.Items.IndexOf(ListAgreement[Index].Name) = -1 then
      fAgreeLsBx.Items.Add(ListAgreement[Index].Name);
end;

Procedure TAgreements.Resize;
begin
  inherited;

  If (Width and $1) = $1 Then
    Width := Width+1;

  Height := Round(Self.Width*1.2);

  fAgreeLsBx.SetBounds(4, 4, Width-8, 21);
  fAgreeLsBx.Font.Size  := round(Width *0.08);
end;

Procedure TAgreements.DoAgreeLstBxChange(Sender: TObject);
var
  Index: integer;
begin
  if fAgreeLsBx.Items.Count < 0 then
    Exit;

  for Index := Low(ListAgreement) to high(ListAgreement) Do
    if ListAgreement[Index].Name = fAgreeLsBx.Items.Strings[fAgreeLsBx.ItemIndex] then
    begin
      fAgreementSelected := Index;
      Invalidate;
      Break;
    end;
end;

Function TAgreements.SubtractorKey: Integer;
var
IndexRope, SubtractorKeyValue: Integer;
begin
  SubtractorKeyValue := 0;
  for IndexRope := 1 to 6 do
    if SubtractorKeyValue < ListAgreement[fAgreementSelected].Param[IndexRope-1] then
      SubtractorKeyValue := ListAgreement[fAgreementSelected].Param[IndexRope-1];
  Result := SubtractorKeyValue-5;
end;

Procedure TAgreements.Paint;
Var
  ColumnDim: Single;
  Rect: TRect;
  IndexLine, IndexRope,
  Border,
  LeftText, TopText, WidthText, HeightText,
  Subtractor, KeysSubstracted: Integer;
  Str: String;
Begin
  Inherited;
  if fAgreementSelected = -1 then
    Exit;

  Border := Height-Width;

  with Canvas do
  begin
    Brush.Color := clBlack;
    Brush.Style := bsSolid;
    Pen.Color   := clBlack;
    Pen.Width   := 3;
    ColumnDim   := Self.Width/7;
    for IndexLine := 1 to 6 do
    begin
      MoveTo( Round(ColumnDim), Round(ColumnDim*IndexLine+Border) );
      LineTo( Round(Self.Width-ColumnDim), Round(ColumnDim*IndexLine+Border) );
      MoveTo( Round(ColumnDim*IndexLine), Round(ColumnDim+Border) );
      LineTo( Round(ColumnDim*IndexLine), Round(Self.Height-ColumnDim) );
    end;

    Font.Color := clWhite;
    Subtractor := SubtractorKey;

    for IndexRope := 1 to 6 do
      If ListAgreement[fAgreementSelected].Param[IndexRope-1] > 0 Then
      begin
        Rect.Left  := Round( ColumnDim*IndexRope )-5;
        Rect.Right := Round( ColumnDim*IndexRope )+5;

        if Subtractor > 0 then
          KeysSubstracted := ListAgreement[fAgreementSelected].Param[IndexRope-1]-Subtractor
        else
          KeysSubstracted := ListAgreement[fAgreementSelected].Param[IndexRope-1];

        Rect.Top    := Round((KeysSubstracted+0.5)*ColumnDim+Border)-5;
        Rect.Bottom := Rect.Top+10;
        Ellipse(Rect);

        if Subtractor > 0 then
        begin
          Font.Size  := Width Div 16;
          WidthText  := TextWidth( IntToStr(Subtractor) );
          HeightText := TextHeight( IntToStr(Subtractor) );
          LeftText   := Round( (ColumnDim -WidthText)*0.5 );
          TopText    := Round( ((3*ColumnDim-HeightText)*0.5)+Border );
          TextOut( LeftText, TopText, IntToStr(Subtractor+1) );
        end;
      end
      else
      begin
        if ListAgreement[fAgreementSelected].Param[IndexRope-1] = 0 then
          Str := '0'
        else
          Str := 'X';
        Font.Size  := Width Div 16;
        WidthText  := TextWidth(Str);
        HeightText := TextHeight(Str);
        LeftText   := Round( ColumnDim*(IndexRope) )-WidthText Div 2;
        TopText    := Round( 0.5*ColumnDim-(HeightText*0.5)+Border );
        TextOut( LeftText, TopText, Str );
      end;
    end;
end;



end.

Commentaire de japee le 21/12/2007 02:12:57 administrateur CS

Ok, après avoir mieux regardé, il s'agit de plusieurs manières de faire le même accord.
Bon, puisque je vous dis qu'il y en a 2 ou 3 que je connais pas... ^^

@Cirec : Moi aussi j'aurais préféré une ComboBox, mais on peut quand même accéder assez rapidement à l'accord voulu en saisissant la lettre correspondant dans la ListBox. Si tu saisis G, tu tombes sur le 1er des accords de sol, cad le sol majeur.

Commentaire de Francky23012301 le 21/12/2007 09:00:44

Bon il serait peut etre temps de vous accorder les mecs lol : combobox ou tlistbox ? vous voulez lequel ?

Commentaire de japee le 21/12/2007 09:27:49 administrateur CS

La TComboBox est plus agréable à mon avis.
En même temps, c'est pas un vrai problème : il suffit de remplacer TListBox par TComboBox à 2 endroits...

Commentaire de f0xi le 21/12/2007 09:37:58 administrateur CS

Même avis que japee, la Combobox est plus appropriée pour ça surtout pour la recherche automatique lors de la saisie et pour l'evenement OnChange.


Commentaire de Francky23012301 le 21/12/2007 09:51:09

Bon je t'envois le screenshot f0xi car je sens que je vais passer la matinée à  la modifier sur le site. Il y a un sérieux soucis : les checkbox dans la partie modification d'un source font des leurs.

Commentaire de cirec le 21/12/2007 11:57:05 administrateur CS

Eh Francky Oublies les CheckBoxs
il faut les cocher que si tu supprimes (le Zip ou la capture) pas si tu les remplaces !

"Pour la notation francaise des accords : je suis pas sur qu'elle existe."
Do Ré Mi Fa Sol La Si  c'est ça la notation française ;-)

Commentaire de cirec le 21/12/2007 12:47:07 administrateur CS

Voici les dernières modifications

   ...
  public
   fAgreementSelected:Integer;
   constructor Create(AOwner:TComponent); override;
   //destructor Destroy; override; // complètement inutile
  published
   ...
Implementation

constructor TAgreements.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  ...
  ...
  Add_Name_Agreements_In_LsBx;
  fAgreeLsBx.ItemIndex  := 0; // évite d'avoir le ComboBox vide
  fAgreementSelected  := 0; //  après sa création
end;

{destructor TAgreements.Destroy;
begin
  fAgreeLsBx.Free;  //Ceci n'est vraiment pas utile
  inherited;  // et du coup c'est tout le Destructeur qui devient inutile
end; }   // C'est TAgreements qui se charge de libérer FAgreeLsBx.

Commentaire de japee le 21/12/2007 12:56:32 administrateur CS

C'est maintenant quasiment parfait au niveau du fonctionnement.

Moi j'aime bien qu'un accord s'affiche au démarrage, il suffit d'ajouter
  fAgreeLsBx.ItemIndex := 0;
  DoAgreeLstBxChange(nil);
dans TAgreements.Add_Name_Agreements_In_LsBx

Ça serait bien aussi si, quand on clique dessus, les différentes possibilités pour un  accord donné défilaient en boucle plutôt que de s'arrêter sur le dernier.

Mais bon, les goûts et les couleurs...

Commentaire de cirec le 21/12/2007 13:04:19 administrateur CS

Dans le OnPaint vire le :
  //Inherited;
ça ne sert pas à grand chose puisque tu le redessine complètement
juste après

En plus je trouve l'affichage plus claire ... plus propre

Tu peux éventuellement faire :
  With Inherited Canvas Do

Mais c'est pas utile ... enfin fait les testes ;-)

Commentaire de cirec le 21/12/2007 13:14:53 administrateur CS

Il manque encore un truc

afin ne pas pouvoir écrire dans le ComboBox mais quand même
pouvoir se servir de la recherche automatique lors de la saisie

Dans le Constructeur :
  Add_Name_Agreements_In_LsBx;
  fAgreeLsBx.Style := csDropDownList; // <------------ Ajoute ceci
  fAgreeLsBx.ItemIndex  := 0;
  fAgreementSelected  := 0;

Commentaire de Francky23012301 le 21/12/2007 18:42:43

J'ai vu vos commentaires : je ferai tout ca demain promis.

Arffff si je voulais pas vous réserver la surprise d'un pseudo cubase, je vous lacherai mon TPianoGrid pour vous faire plaisir tiens :p.

Commentaire de Nicolas___ le 22/12/2007 01:47:11

Excellent Fracky , vraiment :)

Je viens seulement de découvrir ta source , et waw , t'as du t'amuser comme un fou avec tes records !

Et moi je vais pouvoir les réviser très facilement maintenant !

Bon maintenant tu peux t'amuser à le faire avec les differents accordages, EADGBE c'est le standard ... hé c'est pour rire te suicide pas !

Ciao , Joyeuses Fêtes

Commentaire de Nicolas___ le 22/12/2007 01:54:37

Par contre c'est bizarre
qd je place le composant sur une fenetre j'ai toujours
8 fois ceci :
---------------------------
Erreur
---------------------------
Violation d'accès à l'adresse 510056A2 dans le module 'dclusr70.bpl'. Lecture de l'adresse 00000000.
---------------------------
OK  
---------------------------

Mais le compo se place correctement et fonctionne aussi tres bien , je sauvegarde et je reouvre , tt marche !

J'utilise D7 ...  

Enfin vu l'heure j'ai peut etre mal installé le compo ( m'enfin ... )

Ciao

Commentaire de Francky23012301 le 22/12/2007 09:35:04

Salut,

Oui je viens de voir ca : elle était pas présente avec l'ancienne version.
Je suis donc revenu à la version précédente mais t'inquète f0xi, je me penche sur tes modifs : je veux savoir ou ca beugue.

Cirec : si dans le OnPaint tu vires le Inherited, il y a un soucis avec les propriétés BevelInner et BevelOuter. Fais le test tu véras mieux ^^.

Pour les libérations : je suis d'accord avec toi. Mais par habitude et par précaution, je préfère écrire la libération de tous les objects.

Commentaire de Francky23012301 le 22/12/2007 09:36:42

Je précise : j'ai refais les modifs que vous avez proposé : j'ai remplacé la tlistbox par la combobox et j'ai pris en comptes vos dernières remarques.

Commentaire de cirec le 22/12/2007 12:26:50 administrateur CS

"Cirec : si dans le OnPaint tu vires le Inherited, il y a un soucis avec les propriétés BevelInner et BevelOuter. Fais le test tu véras mieux ^^."

Oui je sais mais personnellement je préfère comme ça ...
mais par dessus tout le composant est moins long à l'affichage puisque tu ne fais plus appel à la méthode héritée de Paint

"Pour les libérations : je suis d'accord avec toi. Mais par habitude et par précaution, je préfère écrire la libération de tous les objects."

ça ne sert ABSOLUMENT à rien ;-)
Si tu tiens absolument à le libérer toi même dans ce ça met Nil dans le OnCreate mais c'est c'est du temps et du code de perdu :)


Sinon pour le problème cité par Nicolas__

Moi je serais d'avis de supprimer ceci Dans le Constructeur:
   Parent := TWinControl(AOwner);

Surprenant que F0xi ait laissé cette ligne !!!!!!

Le parent est mis automatiquement lors drop sur la fiche
et si il est créé dynamiquement dans ce cas c'est à l'utilisateur de le spécifier

à mon avis le problème viens de cette ligne  ... en tous cas elle na rien à faire là.

Commentaire de Francky23012301 le 22/12/2007 13:25:35

Je captes plus rien lol : au secours lol. Dans quel cas on doit implanter le Destroy et définir le parent dans le constructeur dans un composant. Car là je suis paumé ^^.

Commentaire de cirec le 22/12/2007 14:05:15 administrateur CS

Bon Alors c'est tout simple :

Quand tu donnes un composant au Constructeur en paramètre :
Panel := TPanel.Create(Form1)

C'est Form1 qui se charge de la destruction du Panel

Si tu fait :
Panel := TPanel.Create(Nil)

Bitmap := TBitmap.Create // qui n'accepte pas de paramètre

C'est toi qui doit les liberer :
  Panel.Free et Bitmap.Free

Et donc si tu n'as rien à mettre dans ton Destructeur à part :
  Inherited Destroy;

c'est pas la peine de l'implémenter ;)

Pour l'implémentation du Parent dans le Constructeur je n'en ai jamais eu l'utilité !!!

Commentaire de Francky23012301 le 22/12/2007 15:44:24

Tu as raison : apres mur reflexion ca ne sert à rien. C'est juste l'habitude et la peur de ne pas libérer les objets. je m'étais jamais posée la question lors de la création d'un composant. En meme temps faut mieux en faire trop que pas assez ^^ : en définif ca ne change rien sauf quelques lignes de codes en moins.

Bon je vais te faire plaisir t'inquete pas : ben dis donc ce petit compo, il déchaine les passions lol.

Commentaire de Marcus2508 le 08/08/2008 00:21:16

Très intéressant comme composant, va falloir que je m'y colle à en coder un...
Au niveau code, c'est rudimentaire et efficace mais il y a pas mal d'hérésies dans le nom des accords!
Je ne sais pas où tu as trouvé ces définitions !
"A/B" se lit "A majeur avec un B à la basse" qui est grosso modo un B13 sans tierce ni quinte ou encore "B13(omit3)", une superstructure comme on dit dans le jargon.Or la tablature que tu donnes (0,0,2,4,2,0) n'est ni plus ni moins qu'un "A add 9/E" ( et non "A9" ou "AM9" car absence de 7e). Loin de moi l'envie de vous chercher des poux dans la tête, mais il fallait le signaler :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

published record [ par Guillemouze ] salut a tous, cette question me semblait simple, et pourtant, je n'arrive pas a editer un record dans l'inspecteur d'objet d'un composant que j'ai cré relation du Composant DBGrid et le nombre de ligne... [ par lilo415 ] Bonjour,J'aurais voulu avoir un renseignements. je viens de créer un DBGrid et je voudrais limité la saisie à une seule ligne. Est-ce possible??Sinon Propriété d'un composant [ par gebu34 ] Bonjour,J'aimerais savoir, lorsque l'on dérive un composant, (en l'occurence un TStringGrid pour mon cas) si l'on peut lui retirer un propriété qu'il Composant [ par sylvunix ] Certains composants, comme TImage, une fois placés sur une form sont pré-dessinés et on peut même double-cliquer dessus pour obtenir une boîte de dial Composant : imposer l'ordre des propriétés publiées [ par Francky23012301 ] Salu à tous,Je suis entrain de développer un composant et je trouve particulièrement pénible que l'IDE trie les propriétés des composants par ordre al Composant Indy idPop3 et Proxy [ par lacaillecaille ] J'utlise un  TIdPop3 pour consulter un serveur POP et j'aimerai le faire maintenant via un Proxy. Comment dois-je faire? Où renseigner l'adresse du pr Composant Style XP [ par kilojun ] Bonjour Mon probleme est comment je peut fair ou trouver un composant style xp( volet d'exploration ) du genre<b IRC composant [ par cyber37 ] bonjours a tous depuis 1 semaine je n'arrive pas a instaler un composant enfin quand je fait compile (dans DClusr.dpk) et apres instal le composant s' ExtFileOp (composant de F0xi) [ par EricStib ] Bonjour à tous,J'essaie d'utiliser le composant ExtFileOp de F0xi pour copier des fichiers mais sans passer par une boite de dialogue.Cela fonctionne composant [ par Hardouz ] salut :)j'ai un probléme d'installation des composant a chaque foi que je veut installer un composant il me dit :Build  [Fatal Error] dclusr.dpk(43):


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales