Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Wait Animation (https://www.delphipraxis.net/192029-wait-animation.html)

Ghostwalker 16. Mär 2017 14:03

AW: Wait Animation
 
Naja..hab mal fix in der msdn geguggt. In der GDI+ gibts eine entsprechende Funtkion
(...LoadFromStream) die als Parameter einen IStream erwartet, statt einer Datei.


Sollte also für dich kein Problem darstellen :)

Das ganze im Interface über eine alternative Start-Funktion eingebaut und feddich :)

EWeiss 16. Mär 2017 14:08

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364403)
Naja..hab mal fix in der msdn geguggt. In der GDI+ gibts eine entsprechende Funtkion
(...LoadFromStream) die als Parameter einen IStream erwartet, statt einer Datei.


Sollte also für dich kein Problem darstellen :)

Das ganze im Interface über eine alternative Start-Funktion eingebaut und feddich :)

Jo sollte funktionieren..
Werde mir das nachher mal anschauen.

EDIT:
Wie würdest du denn die Function für das laden der Ressource übergeben wollen ?
Die DLL kennt ja die Ressource nicht.

gruss

Ghostwalker 16. Mär 2017 17:54

AW: Wait Animation
 
Als Interface (IStream), so wie es letztlich (lt. Doku) auch die API braucht. Das funktioniert auch
mit DLL's

EWeiss 16. Mär 2017 18:16

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364429)
Als Interface (IStream), so wie es letztlich (lt. Doku) auch die API braucht. Das funktioniert auch
mit DLL's

Kein Problem mit Interface die verwende ich ja auch selbst in der DLL.

Das Problem ist ein anderes, was ich meine.

Theoretisch kannst du die Ressource ablegen als "PNG" "BINARY" "RCDATA"
Woher soll nun die DLL wissen welchen Ressourcenamen die EXE für seine PNG Dateien verwendet ?

NEBENBEI:
Habe das teil jetzt in meine Soundmachine eingebunden.. > 5000 Dateien
Wenn die Liste geladen wird, dann wird diese Animation angezeigt.
Wenn fertig schaltet sie aus und mein Fenster der Anwendung wird angezeigt.

Zudem wird sie eigenschaltet bei kritischen Prozessen wo ich weis das diese etwas länger dauern bis sie abgeschlossen sind.
Wenn ich zum Beispiel von der ListView zur Visualisierung schalte. usw..

gruss

Ghostwalker 16. Mär 2017 18:35

AW: Wait Animation
 
Braucht sie nicht. Du bekommst das IStream-Interface von der Anwendung übergeben.

Das brauchst du im Endeffekt nur durchreichen an die entsprechende GDI+-Funktion.

In etwa so:

Delphi-Quellcode:
   :
    procedure StartStream(ParentHandle: HWND; WinHandle: HWND; stream:IStream SpeedDelay: Integer);
   :
Die GDI+ funktion sollte sich die Daten dann statt aus der Datei aus dem Stream holen.

EWeiss 16. Mär 2017 18:38

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364432)
Braucht sie nicht. Du bekommst das IStream-Interface von der Anwendung übergeben.

Das brauchst du im Endeffekt nur durchreichen an die entsprechende GDI+-Funktion.

In etwa so:

Delphi-Quellcode:
   :
    procedure StartStream(ParentHandle: HWND; WinHandle: HWND; stream:IStream SpeedDelay: Integer);
   :
Die GDI+ funktion sollte sich die Daten dann statt aus der Datei aus dem Stream holen.

Ok.
Ich denke das einladen von der Ressource wird dann die Anwendung übernehmen und die übergibt lediglich den IStream
den ich in der DLL benötige um daraus das Img zu erstellen.
Korrekt?

Ok dann werde ich die Funktion so übernehmen.

gruss

EWeiss 16. Mär 2017 19:05

AW: Wait Animation
 
Neue Version mit dem IStream (ActiveX) hochgeladen.
Ich hoffe das es läuft habe es nicht getestet.

Laden von Spectragram siehe Shot der Ball.

gruss

EWeiss 16. Mär 2017 22:32

AW: Wait Animation
 
So..
Leider hat das letzte Archiv mit der Funktion GdipLoadImageFromStream nicht funktioniert.
Ich hatte vergessen den var Parameter zu addieren.

Delphi-Quellcode:
function GdipLoadImageFromStream(
  stream: IStream;
  var image: Cardinal
): GPSTATUS; stdcall; external LibGdiPlus;
Damit das jetzt alles funktioniert habe ich auch gleich eine PNG in die Ressource gepackt und die Funktion getestet.
Das 4 Image wird jetzt aus der Ressource geladen.

Delphi-Quellcode:
      4:
        LoadStream(1);
Delphi-Quellcode:
procedure TForm1.LoadStream(Index: Cardinal);
var
  ResStream: TResourceStream;
  adapter: IStream;
begin
  ResStream := TResourceStream.CreateFromID(hInstance, Index, RT_RCDATA);
  ResStream.Position := 0;
  adapter := TStreamAdapter.Create(ResStream);

  try
    Spinner := CTRL_SpinnerCreate;
    SpinnerHandle := Spinner.CreateWindow(Handle);
    Spinner.StartStream(Handle, SpinnerHandle, adapter, 30);
  finally
    ResStream.Free;
  end;
end;
sollte jetzt Funktionieren.
Bin jetzt aber nicht sicher ob ich den adapter auf Nil setzen sollte.
Kann man später noch machen sollte das nötig sein. :stupid:

sorry für den Ärger ;)

gruss

Ghostwalker 17. Mär 2017 10:14

AW: Wait Animation
 
Was für Ärger ?:shock:

Habs mir schonmal runtergeladen. Sobald ich die Komponente geupdated hab, stell ich as mal hier rein :)

EWeiss 17. Mär 2017 10:22

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364473)
Was für Ärger ?:shock:

Ich meine das ich das Archiv wieder aktualisieren musste wegen meiner eigenen Dummheit.

Zitat:

Habs mir schonmal runtergeladen. Sobald ich die Komponente geupdated hab, stell ich as mal hier rein :)
Fein ;)

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.
Seite 3 von 5     123 45      

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