AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VU Meter (Wasapi)

Ein Thema von EWeiss · begonnen am 17. Dez 2018 · letzter Beitrag vom 22. Mär 2019
 
EWeiss
(Gast)

n/a Beiträge
 
#19

AW: VU Meter (Wasapi)

  Alt 19. Dez 2018, 08:37
Ist vielleicht nur ein kleines Detail, aber sollte der Zeiger nicht hinter der Schraube und dem Glas liegen? Also eher so wie hier:
hhttp://www.giangrandi.ch/electronic...vu-meter.shtml

Sherlock
Ja Danke
Habe ich heute morgen auch gesehen nachdem ich den Compi angemacht habe.. hehehehe.

PS:
Korrektur..

Delphi-Quellcode:
procedure CreateVUSprites(WinHandle: HWND; X, Y: Integer; SpritePath: string);
var
  HBmp: HBITMAP;
  ImgW, ImgH: Cardinal;
  X1, Y1: Integer;
  IntI: Integer;
  bmW, bmH: Cardinal;
  VuHeight, VUWidth: Integer;
  VULeftX, VULeftY: Integer;
  VURightX, VURightY: Integer;
  DotTop, DotWidth: Integer;
begin

  VuHeight := 0;
  VuWidth := 0;
  DotTop := 0;
  DotWidth := 0;

  if gSprVU.GD_GetObjectBitmap(ID_LAYER) = 0 then
  begin
    hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'Layer.png'), ImgW, ImgH);
    if hBmp <> 0 then
    begin
      // Layer
      gSprVU.GD_DrawBitmapToCtrl(WinHandle, X, Y, hBmp, gSprVU.GD_ColorARGB(255, 0), ID_LAYER,
        GS_VISIBLE);
      gSprVU.GD_SetObjectLinked(ID_LAYER, ID_LAYER);
      gSprVU.GD_SetObjectLocked(ID_LAYER, true);

      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'TopLight.png'), ImgW, ImgH);

      X1 := X + 110;
      Y1 := Y + 28;

      for IntI := 0 to 3 do
      begin
        gSprVU.GD_DrawBitmapToCtrl(WinHandle, X1, Y1, hBmp, gSprVU.GD_ColorARGB(255, 0),
          ID_TOPLIGHT + IntI, GS_HIDDEN);
        gSprVU.GD_SetObjectLinked(ID_TOPLIGHT + IntI, ID_LAYER);

        case IntI of
          0:
            X1 := X1 + 240;
          1:
            X1 := X1 + 110;
          2:
            X1 := X1 + 240;
        end;
      end;

      // ************** VUMeter Left
      VULeftX := X + 64;
      VULeftY := Y + 32;
      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'BVU.png'), ImgW, ImgH);
      if hBmp <> 0 then
      begin
        gSprVU.GD_DrawBitmapToCtrl(WinHandle, VULeftX, VULeftY, hBmp, gSprVU.GD_ColorARGB(255, 0),
          ID_VULEFT, GS_VISIBLE);

        gSprVU.GD_SetObjectLinked(ID_VULEFT, ID_VULEFT);
        gSprVU.GD_SetObjectLocked(ID_VULEFT, true);
        VuHeight := ImgH;
        VuWidth := ImgW;
      end;
      // LeftPendel
      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'Pendel.png'), ImgW, ImgH);
      if hBmp <> 0 then
      begin
        gSprVU.GD_DrawBitmapToCtrl(WinHandle, VULeftX + (VuWidth div 2) - 10, VULeftY + 39, hBmp,
          gSprVU.GD_ColorARGB(255, 0), ID_PENDELLEFT, GS_VISIBLE);
        gSprVU.GD_SetObjectLinked(ID_PENDELLEFT, ID_VULEFT);
        gSprVU.GD_SetObjectLocked(ID_PENDELLEFT, true);
        gSprVU.GD_SetObjectAngle(ID_PENDELLEFT, 310);
      end;
      // Dot
      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'Dot.png'), ImgW, ImgH);
      if hBmp <> 0 then
      begin
        DotTop := (VULeftY + VuHeight) - Integer(ImgH);
        DotWidth := ImgW;
        gSprVU.GD_DrawBitmapToCtrl(WinHandle, VULeftX + (VuWidth - DotWidth + 1) div 2, DotTop, hBmp,
          gSprVU.GD_ColorARGB(255, 0), ID_DOTLEFT, GS_VISIBLE);
        gSprVU.GD_SetObjectLinked(ID_DOTLEFT, ID_VULEFT);
        gSprVU.GD_SetObjectLocked(ID_DOTLEFT, true);
      end;
      // VULeftLight
      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpritePath + 'BLight.png'), ImgW, ImgH);
      if hBmp <> 0 then
      begin
        gSprVU.GD_DrawBitmapToCtrl(WinHandle, VULeftX, VULeftY, hBmp, gSprVU.GD_ColorARGB(255, 0),
          ID_LIGHTLEFT, GS_HIDDEN);
        gSprVU.GD_SetObjectLinked(ID_LIGHTLEFT, ID_VULEFT);
        gSprVU.GD_SetObjectLocked(ID_LIGHTLEFT, true);
      end;

      // ************** VU Meter Right
      VURightX := VULeftX + Integer(ImgW);
      VURightY := VULeftY;
      // same Bitmap as VULeft so to clone
      gSprVU.GD_CloneObject(ID_VULEFT, ID_VURIGHT, VURightX, VURightY);
      // RightPendel
      // same Bitmap as LeftPendel so to clone
      gSprVU.GD_CloneObject(ID_PENDELLEFT, ID_PENDELRIGHT, VURightX + (VuWidth div 2) - 10, VURightY + 39);
      gSprVU.GD_SetObjectAngle(ID_PENDELRIGHT, 310);
      // Dot
      // same Bitmap as DotLeft so to clone
      gSprVU.GD_CloneObject(ID_DOTLEFT, ID_DOTRIGHT, VURightX + (VuWidth - DotWidth + 1) div 2, DotTop);
      // VURightLight
      // same Bitmap as VULeftLight so to clone
      gSprVU.GD_CloneObject(ID_LIGHTLEFT, ID_LIGHTRIGHT, VURightX, VURightY);

      hBmp := gSprVU.GI_CreateBitmapFromFile(PWideChar(SpriteResPath + 'hSwitch.png'), bmW, bmH);
      if (hBmp <> 0) then
      begin
        gSprVU.GD_DrawBitmapToCtrl(HSprVU, 740, 267, hBmp, OPAQUEIMAGE, ID_POWER,
          GS_VISIBLE);
        gSprVU.GD_SetObjectFrameCount(ID_POWER, 2);
        // Frame 2 Power OFF
        gSprVU.GD_SetObjectFrameToUse(ID_POWER, 2);
        gSprVU.GD_SetObjectLocked(ID_POWER, true);
      end;

      // Left Anchor
      gSprVU.GD_SetObjectAnchorMode(ID_VULEFT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_PENDELLEFT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_LIGHTLEFT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_DOTLEFT, ANCHOR_CENTER);
      // Right Anchor
      gSprVU.GD_SetObjectAnchorMode(ID_VURIGHT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_PENDELRIGHT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_LIGHTRIGHT, ANCHOR_CENTER);
      gSprVU.GD_SetObjectAnchorMode(ID_DOTRIGHT, ANCHOR_CENTER);
    end;
  end;
end;
gruss

Geändert von EWeiss (11. Jul 2019 um 15:54 Uhr)
  Mit Zitat antworten Zitat
 


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 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