![]() |
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 :) |
AW: Wait Animation
Zitat:
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 |
AW: Wait Animation
Als Interface (IStream), so wie es letztlich (lt. Doku) auch die API braucht. Das funktioniert auch
mit DLL's |
AW: Wait Animation
Zitat:
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 |
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:
Die GDI+ funktion sollte sich die Daten dann statt aus der Datei aus dem Stream holen.
:
procedure StartStream(ParentHandle: HWND; WinHandle: HWND; stream:IStream SpeedDelay: Integer); : |
AW: Wait Animation
Zitat:
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 |
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 |
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:
Damit das jetzt alles funktioniert habe ich auch gleich eine PNG in die Ressource gepackt und die Funktion getestet.
function GdipLoadImageFromStream(
stream: IStream; var image: Cardinal ): GPSTATUS; stdcall; external LibGdiPlus; Das 4 Image wird jetzt aus der Ressource geladen.
Delphi-Quellcode:
4:
LoadStream(1);
Delphi-Quellcode:
sollte jetzt Funktionieren.
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; 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 |
AW: Wait Animation
Was für Ärger ?:shock:
Habs mir schonmal runtergeladen. Sobald ich die Komponente geupdated hab, stell ich as mal hier rein :) |
AW: Wait Animation
Zitat:
Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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 by Thomas Breitkreuz