Thema: Virtual Piano

Einzelnen Beitrag anzeigen

alfold

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

AW: Virtual Piano

  Alt 7. Jun 2011, 10: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 10:47 Uhr)
  Mit Zitat antworten Zitat