Delphi-PRAXiS
Seite 27 von 35   « Erste     17252627 2829     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Virtual Piano (https://www.delphipraxis.net/158944-virtual-piano.html)

alfold 4. Jun 2011 11:53

AW: Virtual Piano
 
Hast du wirklich die aktuelle Version oben?
Oberfläche sieht nicht so aus wie bei Dir(Photo)!

Da ich jetzt erst mit XE anfange, wie bekomme ich alles zusammen?
ein Ordner Sample, ein Ordner Lib, bzw dein Bin Ordner:shock:

Gruss alfold

EWeiss 4. Jun 2011 19:15

AW: Virtual Piano
 
Zitat:

Zitat von alfold (Beitrag 1104564)
Hast du wirklich die aktuelle Version oben?
Oberfläche sieht nicht so aus wie bei Dir(Photo)!

Da ich jetzt erst mit XE anfange, wie bekomme ich alles zusammen?
ein Ordner Sample, ein Ordner Lib, bzw dein Bin Ordner:shock:

Gruss alfold

Nein!
Alte Binäre Dateien EXE,DLL

Du brauchst aber den Bin Ordner incl. der darin enthaltenen Skins/Background/Config Ordner.

Rootpfad.. Name egal.
Darin Bin, Lib und Sample Ordner so wie sie sind hinein kopieren.
Danach sollte es laufen.
Erst nach neuer Kompilierung der EXE incl. DLL sollte die Oberfläsche mit dem letzen Hochgeladenen Bild Identisch sein.
Alte DLL kennt die Unit(Interface) uMediaTimer noch nicht da ich diese neu geschrieben habe.

Für die Gruppe EXE/DLL "ProjectGroup1" im Sample Odner starten oder VirtualPiano.dproj für die EXE allein.
Die Project Datei der DLL befindet sich im Lib Odner.
Hab mal nen Shot hochgeladen.

PS:
Komponente mußt du keine Installieren.
Mindestanforderung D2009.

gruss

blackfin 4. Jun 2011 19:38

AW: Virtual Piano
 
Ich muss sagen, das ist eine der hübschsten Delphi-Anwendungen, die ich je gesehen habe! :thumb::thumb:
So eine GUI hätte damals mal mein selbstgebautes MIDI-Pult gebraucht :-D

EWeiss 4. Jun 2011 19:43

AW: Virtual Piano
 
Zitat:

Zitat von blackfin (Beitrag 1104609)
Ich muss sagen, das ist eine der hübschsten Delphi-Anwendungen, die ich je gesehen habe! :thumb::thumb:
So eine GUI hätte damals mal mein selbstgebautes MIDI-Pult gebraucht :-D

Hoffe du kannst damit etwas Anfangen ;)

gruss

blackfin 4. Jun 2011 20:55

AW: Virtual Piano
 
Mal gucken, ich bin verzückt am testen, auch wenn ich MIDI nicht mehr so oft verwende...

Was mir gerade aufgefallen ist, wenn ich den Skin ein paar mal hintereinander wechsle (zuerst von Standard => Black => Crystal), hängt sich das Programm beim Restart auf (nur noch ein Task im TM sichtbar) und muss über den Taskmanager beendet werden, bevor man es wieder starten kann.

System: Win 7 x64, Programm liegt NICHT in C:\ProgramFiles\

EWeiss 5. Jun 2011 08:59

AW: Virtual Piano
 
Zitat:

Zitat von blackfin (Beitrag 1104617)
Mal gucken, ich bin verzückt am testen, auch wenn ich MIDI nicht mehr so oft verwende...

Was mir gerade aufgefallen ist, wenn ich den Skin ein paar mal hintereinander wechsle (zuerst von Standard => Black => Crystal), hängt sich das Programm beim Restart auf (nur noch ein Task im TM sichtbar) und muss über den Taskmanager beendet werden, bevor man es wieder starten kann.


Vielleicht ein Timing problem..
Das problem habe ich selbst auch kann es aber nicht nachvollziehen
da es nur sporadisch auftritt.

Zitat:

liegt NICHT in C:\ProgramFiles\
Ist auch nicht nötig.
System ist bei mir das selbe.


gruss

alfold 5. Jun 2011 11:07

AW: Virtual Piano
 
Ein riesen Respekt für diese Arbeit:thumb::thumb:

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

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

EWeiss 5. Jun 2011 11:59

AW: Virtual Piano
 
Zitat:

Zitat von alfold (Beitrag 1104659)
Ein riesen Respekt für diese Arbeit:thumb::thumb:

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

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

alfold 7. Jun 2011 09:38

AW: Virtual Piano
 
So, nicht das Du denkst ich mach nichts mehr:wink:

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:wink:
Aber die hab ich zum Teil schon auseinandergenommen 8-)
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

EWeiss 7. Jun 2011 10:44

AW: Virtual Piano
 
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!
Delphi-Quellcode:
DC := GetDC(TopBarFrame.Handle);

Delphi-Quellcode:
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!
Delphi-Quellcode:
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Seite 27 von 35   « Erste     17252627 2829     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz