AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Virtual Piano
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Piano

Ein Thema von EWeiss · begonnen am 8. Mär 2011 · letzter Beitrag vom 13. Apr 2019
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Virtual Piano

  Alt 5. Jun 2011, 11:59
Ein riesen Respekt für diese Arbeit

Ich hoffe das Du noch am Ball bleibst, denn ich würde gern meine Ideen mit einbauen.
Die Kritikpunkte kennst Du ja

Den eigentlichen Konzeptfehler deinerseits (MidiTracker), hab ich schon gefunden.
Nun muss ich nur noch sehen an welchen Stellen im Prog das alles korregiert werden muss.
(Wenn ich darf)
Es währe schade, wenn dieses Prog sonst nur für Dich bleibt.
Ich persöhnlich finde es ja toll(weil klein und übersichtlich), aber etwas umständlich beim komponieren.
Darum würde ich gern die Änderungen machen. Geht aber nur, wenn ich halt die ganzen Stellen finde und Du am Ball bleibst.

Gruss alfold
Es würde mich freuen wenn du dich an dem Projekt beteiligst.
Eigentlich war es dazu gedacht um die Funktionalität der Library zu dokumentieren.
Das es nun solche ausmaße angenommen hat .. hat mich dann doch selbst überrascht

Ich werde mal warten was du so umsetzt. also änderst.
Gleichzeitig am aktuellen Source änderungen vorzunehmen würde nichts bringen.
Natürlich werde ich am Ball bleiben und helfen wenn du probleme beim auffinden von Funktionen hast.

Hier meine letzten änderungen der LIB
und ein einfaches Window Sample das als Basis für spätere oder andere Anwendungen verwendet werden kann.

Lib Ordner ersetzen und den WinSample Ordner in den Rootpfad kopieren.

gruss Emil

Geändert von EWeiss (26. Jun 2011 um 18:20 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Virtual Piano

  Alt 7. Jun 2011, 09:38
So, nicht das Du denkst ich mach nichts mehr

Ich bin voll dabei, hier schon mal 1 von vielen, was ich anders mache:
Original
Delphi-Quellcode:
if FVisible then
begin
    // Aktualisiere die labels
    for IntA := StartX to StartX + XSize do
    begin
        if (IntA mod Value) = 0 then
        begin
            GetClientRect(TopBarFrame.Handle, rc);
            DC := GetDC(TopBarFrame.Handle);
            GDIP_CreateFromHDC(DC, Graphics);

            SKAERO_SplitColorARGB($000000, Alpha, Red, Green, Blue);
            GDIP_FillRect(Graphics, (IntA - StartX) * 16, rc.Top, rc.Right, rc.Bottom,
                 SKAERO_ColorARGB(254, RGB(Red, Green, Blue)));

            SKAERO_DrawTextToDC(DC, IntToStr((IntA div Value) + 1), (IntA - StartX) *
                  12 + TopBarOffset,
                       rc.Top - 2, SKAERO_BTNTEXTCOLOR, SKAERO_TEXTFONT, 10, 0, 0);

            GDIP_DeleteGraphics(Graphics);
            ReleaseDC(SideBarFrame.Handle, DC);
        end;
    end;
end;
Und hier mal das geänderte:
Delphi-Quellcode:
if FVisible then
begin
    // Aktualisiere die labels
    GetClientRect(TopBarFrame.Handle, rc);
    DC := GetDC(TopBarFrame.Handle);
    GDIP_CreateFromHDC(DC, Graphics);

    SKAERO_SplitColorARGB($000000, Alpha, Red, Green, Blue);

    GDIP_FillRect(Graphics, rc.Left, rc.Top, rc.Right, rc.Bottom,
          SKAERO_ColorARGB(254, RGB(Red, Green, Blue)));

    for IntA := StartX to StartX + XSize do
    begin
        if (IntA mod GridZahlenPos) = 0 then
        begin

            SKAERO_DrawTextToDC(DC, IntToStr((IntA div GridZahlenPos) + 1), (IntA - StartX) *
                24 + TopBarOffset,
                   rc.Top - 2, SKAERO_BTNTEXTCOLOR, SKAERO_TEXTFONT, 10, 0, 0);

        end;
    end;
    GDIP_DeleteGraphics(Graphics);
    ReleaseDC(SideBarFrame.Handle, DC);
end;
Durch diese Veränderung wird dein Prog natürlich schneller beim neuzeichnen!

Am schwersten ist natürlich Deine magische 12 und 1000
Aber die hab ich zum Teil schon auseinandergenommen
Für die neue Umsetztung ist diese magische 12 nicht mehr so wichtig, da bei der neuen Variante nun auch 32tel bei 1/4 zu sehen sind

Bis auf weiteres
Gruss alfold

Geändert von alfold ( 7. Jun 2011 um 09:47 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Virtual Piano

  Alt 7. Jun 2011, 10:44
Zitat:
Durch diese Veränderung wird dein Prog natürlich schneller beim neuzeichnen!
Jup war nicht die beste lösung das DC innerhalb der Schleife jedesmal neu zu erstellen.
Aber vergess bitte nicht bzw. schau mal wie lange ich an dem Projekt arbeite (alleine)
da passieren schon mal solche flüchtigkeitsfehler.

Nebenbei sehe ich hier ein Speicherleck!
DC := GetDC(TopBarFrame.Handle);
ReleaseDC(SideBarFrame.Handle, DC);

DC darf nur freigegeben werden wenn es auch vorher eingeholt wurde..
SideBarFrame.Handle ist also falsch das muß TopBarFrame.Handle sein.
Es wird also ein DC freigegeben das gar nicht existiert!.

Zitat:
Am schwersten ist natürlich Deine magische 12 und 1000
Aber die hab ich zum Teil schon auseinandergenommen
Für die neue Umsetztung ist diese magische 12 nicht mehr so wichtig, da bei der neuen Variante nun auch 32tel bei 1/4 zu sehen sind
Lass mich überraschen


PS:
Hab noch nen neuen Skin erstellt .. Radio

EDIT:
Warum du hier!
12 + TopBarOffset,

die 12 mit 24 ersetzt hast ist mir unverständlich
Du änderst damit den offset der Grid Zahlen Position
Was bedeutet das die Zahlen beim scrollen nicht immer direkt hinter der Dicken vertikalen Linie stehen.
Teste es selbst in dem du auf 1/8 schaltest und Song.mtf abspielst.
Magische 12! breite der NotenSpalte

gruss

Geändert von EWeiss (23. Jun 2011 um 05:30 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Virtual Piano

  Alt 7. Jun 2011, 12:31
Nur mal so ’ne Anregung, da der Source ja jetzt anscheinend eh öffentlich ist: Wollt ihr nicht vielleicht ein richtiges Repository dafür aufsetzen, statt immer den Code hin- und herzukopieren? Google Code wäre z.B. eine Möglichkeit (man hat die Wahl zwischen SVN und Mercurial – ich würde letzteres empfehlen wegen des einfacheren Mergings) oder auch SourceForge. Wäre denke ich deutlich eleganter und weniger Arbeit für euch beide...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Virtual Piano

  Alt 7. Jun 2011, 12:43
Nur mal so ’ne Anregung, da der Source ja jetzt anscheinend eh öffentlich ist: Wollt ihr nicht vielleicht ein richtiges Repository dafür aufsetzen, statt immer den Code hin- und herzukopieren? Google Code wäre z.B. eine Möglichkeit (man hat die Wahl zwischen SVN und Mercurial – ich würde letzteres empfehlen wegen des einfacheren Mergings) oder auch SourceForge. Wäre denke ich deutlich eleganter und weniger Arbeit für euch beide...
Wäre eine überlegung wert.

gruss
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#6

AW: Virtual Piano

  Alt 7. Jun 2011, 12:46
vor allem könnt ihr dann gleichzeitig dran rumwerkeln und müsst nicht immer auf den anderen warten
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Virtual Piano

  Alt 7. Jun 2011, 12:48
vor allem könnt ihr dann gleichzeitig dran rumwerkeln und müsst nicht immer auf den anderen warten
Ist aber auch streßig wenn man nicht über genügend englisch kenntnisse verfügt
Und Sourceforce spamt mir jetzt schon mein Postfach voll.
Nach der erstellung von BassVis_Wrapper..

EDIT:
Oder darf ich hier nicht mehr posten?

gruss

Geändert von EWeiss ( 7. Jun 2011 um 12:53 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Delphi-Forum.de - Array statisch/dynamisch oder TList fr Midi-Events This thread Refback 20. Sep 2011 14:59

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz