Bonjour,
Excusez moi si je pose une question qui a déjà été résolue ou si je m'exprime mal : j ai beaucoup chercher mais comme j apprend de manière autodidacte : je n arrive pas a trouver de solution au problème suivant :
je souhaite faire une classe qui gère des items dérivés d'une classe de base commune, mais ayant chacune des propriétés et méthodes, biensur communes, mais d'autre spécifique à la classe enfant.
en gros : j'ai un synthé de musique que je désire piloter par PC via MIDI (= réception/envoi de message sous forme de byte)
pour communiquer avec ce synthé il faut gérer les messages de type différent, soit : Message de Note, Message SYX, Message Sequencer, etc...
Mais bon, le synthés possède beaucoup de paramètres (que j'appelle controleur midi), donc je voudrai avoir une classe de type collection, qui me permette d'avoir une liste de contrôleurs midi que je souhaite gérer (donc Add, remove, msgmid, nom, valeur, etc..).
la ou je bloque, c'est que je voudrai que la collection gère des items de type différent mais ayant une classe de base commune !
Soit du genre:
je me suis penchés sur les pistes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Tparam = class(TObject) // paramètre et méthode et propriétés communs pour tous les enfants Nom : string; function MsgMidi : string; virtual; abstract; end; Tparam_Note = class(TParam) // paramètre et méthode et propriétés spécifique à l'enfant NoNote : byte; VelociteNote : byte; Channel : byte; function MsgMidi : string; override; end; Tparam_Cc = class(TParam) // paramètre et méthode et propriétés spécifique à l'enfant NoCc : byte; Channel : byte; function MsgMidi : string; override; end;
- polymorphisme
- classes abstraites
- collection
- ObjectList
je dois être nul c'est sur ! mais je n'arrive pas à trouver d'exemples ou de tuto qui explique mon cas !! (j'ai essayer plusieurs sauces mais ça ne fonctionne pas : du genre quand l'item est un param note je veux n avoir accès qu a NoNote, veloNote, etc... mais pas à NoCc qui fait parti des param Cc ! et inversement !)
si c'est faisable, au pire si quelqu'un peut m'aiguiller pour trouver la solution, au mieux que l'on m explique concrètement !
vous remerciant à l'avance de toute aide !
(j'utilise : DELPHI 7 / Win7 64 Bits)
Partager