Grafik Animation

19/05/2010 - 06:55 von Ralf Weideland | Report spam
Hallo,

ich habe folgendes vor:

Ich habe eine ActiveX EXE. Dort wird eine Folge von Bildern
in eine Picturebox gezeichnet. Dieses erstellte Bild will
ich dann mittels eines Events nach "außen" weiterreichen.
Das Event sieht so aus:

Public Event eDrawAnimation(ByVal oPic As StdPicture)

Das Event wird zwar gefeuert, kommt aber in der Anwendung
nicht an.
Dann habe ich mal das Event so geàndert:

Public Event eDrawAnimation(ByVal oPic As String)

und einenText übergeben. Dann wird das Event ausgelöst
und kommt in der Anwendung auch an .

Ich habe keine Idee warum das so ist.
Habe dann mal statt "(ByVal oPic As StdPicture)" -> "(ByVal oPic As
Object)" definiert. Gleiches Problem. :-(

Dann habe ich eine andere Heransgehensweise gesucht.
Ich will ja einfach nur ein Bild in der Hauptanwendung zeichnen
(Animation für einen wartenden Prozess) und habe dazu

BitBlt hDCDest, 0, 0, picIcon.Width, picIcon.Height, picIcon.hDC, 0,
0, SRCCOPY

genommen und das hDC der Picturebox der Anwendung an die ActiveX-EXE
übergeben. Aber auch das funktioniert nicht. Innerhalb der ActiveX-EXE
selbst wird mit dieser API jedoch ein Bild gezeichnet.

Bin jetzt ratlos. Ist das ein Problem der ActiveX-EXE?

Was gibt es noch für Möglichkeiten einen Arbeitsvorgang zu animieren?
Ich möchte aber nicht auf GIF's, AVI's oder Flash zurück greifen.

Danke.

Ralf Weideland
 

Lesen sie die antworten

#1 Heinz-Mario Frühbeis
19/05/2010 - 14:21 | Warnen spam
Hallo!

"Ralf Weideland" schrieb ...

ich habe folgendes vor:

Ich habe eine ActiveX EXE. Dort wird eine Folge von Bildern
in eine Picturebox gezeichnet. Dieses erstellte Bild will
ich dann mittels eines Events nach "außen" weiterreichen.
Das Event sieht so aus:

Public Event eDrawAnimation(ByVal oPic As StdPicture)

Das Event wird zwar gefeuert, kommt aber in der Anwendung
nicht an.
Dann habe ich mal das Event so geàndert:

Public Event eDrawAnimation(ByVal oPic As String)

und einenText übergeben. Dann wird das Event ausgelöst
und kommt in der Anwendung auch an .

Ich habe keine Idee warum das so ist.
Habe dann mal statt "(ByVal oPic As StdPicture)" -> "(ByVal oPic As
Object)" definiert. Gleiches Problem. :-(

Dann habe ich eine andere Heransgehensweise gesucht.
Ich will ja einfach nur ein Bild in der Hauptanwendung zeichnen
(Animation für einen wartenden Prozess) und habe dazu

BitBlt hDCDest, 0, 0, picIcon.Width, picIcon.Height, picIcon.hDC, 0,
0, SRCCOPY

genommen und das hDC der Picturebox der Anwendung an die ActiveX-EXE
übergeben. Aber auch das funktioniert nicht. Innerhalb der ActiveX-EXE
selbst wird mit dieser API jedoch ein Bild gezeichnet.

Bin jetzt ratlos. Ist das ein Problem der ActiveX-EXE?

Was gibt es noch für Möglichkeiten einen Arbeitsvorgang zu animieren?
Ich möchte aber nicht auf GIF's, AVI's oder Flash zurück greifen.



Wenn ich das richtig verstanden habe möchtest du ein StdPicture von einer
Klasse in eine andere Klasse, oder Exe weiterreichen.
In der Deklaration als StdPicture klappt das wohl nicht mit VB6.
Es gibt allerdings die Möglichkeit das StdPicture in ein ByteArray
umzuwandeln. Das Array dann übergeben und dann aus dem Array wieder ein
StdPicture zu machen.
Bei ActiveVB findest du dafür ausführliche Beispeile.
Bei AboutVB findest du auch eine sehr interessante Lösung.
Dort wird das Symptom mit einem PropertyBag gelöst.
Ansonsten besteht auch die Möglichkeit das Bild temp. zu speichern. Den Pfad
und Namen übergeben und dann eben mit LoadPicture(Übergabewert).

viele Grüße
Heinz-Mario Frühbeis

Ähnliche fragen