AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Wait Animation

Wait Animation

Ein Thema von EWeiss · begonnen am 14. Mär 2017 · letzter Beitrag vom 14. Apr 2017
Antwort Antwort
Seite 3 von 5     123 45   
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 04:49 Uhr)
 
Ghostwalker

 
Delphi 10.3 Rio
 
#21
  Alt 16. Mär 2017, 14:03
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
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#22
  Alt 16. Mär 2017, 14:08
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

Geändert von EWeiss (16. Mär 2017 um 16:47 Uhr)
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#23
  Alt 16. Mär 2017, 17:54
Als Interface (IStream), so wie es letztlich (lt. Doku) auch die API braucht. Das funktioniert auch
mit DLL's
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#24
  Alt 16. Mär 2017, 18:16
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

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

 
Delphi 10.3 Rio
 
#25
  Alt 16. Mär 2017, 18:35
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.
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#26
  Alt 16. Mär 2017, 18:38
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
  Mit Zitat antworten Zitat
EWeiss
 
#27
  Alt 16. Mär 2017, 19:05
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

Geändert von EWeiss (11. Jul 2019 um 15:46 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#28
  Alt 16. Mär 2017, 22:32
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.

sorry für den Ärger

gruss

Geändert von EWeiss (16. Mär 2017 um 23:05 Uhr)
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#29
  Alt 17. Mär 2017, 10:14
Was für Ärger ?

Habs mir schonmal runtergeladen. Sobald ich die Komponente geupdated hab, stell ich as mal hier rein
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#30
  Alt 17. Mär 2017, 10:22
Was für Ärger ?
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:31 Uhr.
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