Hi ihr Allwissenden!
Habe mir vor kurzem ein Casio PX330 Keyboard zugelegt, diverse Demoversionen von Notenprogrammen runtergeladen, aber was ich möchte, habe ich nicht, oder nicht so wie ich mir das vorstelle, gefunden.
Super finde ich das Midiklavier von FALTER (Open Source) mit den Midikompos, hier im Forum.
Da gefällt mir aber die Optik der Tasten nicht (sind dort durch Shapes dargestellt).
Möchte mir also schöne Tasten basteln, abgeleitet von zb. TPanel.
Wie's grundsätzlich geht ist mir klar (SetWindowRgn(....)), gibt ja Beispiele hier.
Nicht klar ist mir aber, WAS ich bei TPanel überschreiben muß.
Bei 'Create' funktioniert es nicht. Bei 'Paint' beginnt die
IDE zu spinnen. Bitte WO ???
Von 'aussen' = 'TForm.Create' funktioniert's ganz prächtig, aber das ist ja nicht der Sinn der Sache.
Delphi-Quellcode:
constructor TTaste.Create(AOwner: TComponent);
const
c=5;
var
Points:
array [0..7]
of TPoint;
h, w: Integer;
begin
inherited;
Width := 23;
Height:=150;
h := Height;
w := Width;
Points[ 0].X := C; Points[ 0].Y := 0;
// links oben
Points[ 1].X := 0; Points[ 1].Y := C;
Points[ 2].X := 0; Points[ 2].Y := h - c;
// links unten
Points[ 3].X := C; Points[ 3].Y := h;
Points[ 4].X := w - c; Points[ 4].Y := h;
// rechts unten
Points[ 5].X := w; Points[ 5].Y := h - c;
Points[ 6].X := w; Points[ 6].Y := c;
// rechts oben
Points[ 7].X := w - c; Points[ 7].Y := 0;
SetWindowRgn(
Handle, CreatePolygonRgn(Points, 8, WINDING), True);
end;
Das funzt leider nicht.
Bitte um Erleuchtung