Entwickler-Ecke

Multimedia / Grafik - avi in Resource


Sauger Chris - Sa 18.10.03 16:17
Titel: avi in Resource
wie mach ich eine .avi in eine Resource

dank

chris(Delphi7) 8)


DeCodeGuru - Sa 18.10.03 16:29

guck mal hier: http://www.delphi-forum.de/search.php


Andreas Pfau - Sa 25.10.03 12:04

Hallo,

ich schreibe zwar schon zum ungefährt hundertsten mal, wie man ressourcn linkt, aber was solls...

1) Date anlegen: "Ressource.rc"

2) Mit Notepad öffnen:

Quelltext
1:
Video AVI "IrgendeinVideo.avi"                    


3) Im Prompt eintippen:

Quelltext
1:
C:\Programme\Delphi\Bi\Brcc32.exe C:\Projekte\Ressource.rc                    

(Pfade/Dateinamen anpassen)

4) Du hast die RES-Datei. Kopiere sie in das Verzeichnis, in dem auch die DPR-Datei ist.

5) DPR öffnen, und ziemlich oben irgendwo eintippen:

Quelltext
1:
{$R Ressource.res}                    


6) Neu compilieren

PS: Bei mir ist das so, dass Delphi die DPR erst öffnen darf, nachdem Du die RES in's Verezcihnis kopiert hast. Sonst klappt das linken nicht.

Geht auch mit Bitmaps, Icons, Cursors, musst nur "AVI" in der RC-Datei durch "BITMAP", "ICON", oder "CURSOR" ersetzen.

Avi abspielen: mit TAnimate, muss halt ResHandle auf HInstance setzen und ResName auf den Namen der Ressource ("Video").


Sauger Chris - Di 28.10.03 20:12

dank



chris(Delphi7)


Horschdware - Sa 27.12.03 18:29

hallo,
ich hab leider ein kleines (großes) problem beim abspielen einer avi, die ich in eine res gesteckt habe. ich bekomme dann immer die fehlermeldung "avi kann nicht geöffnet werden.

video.rc

Delphi-Quelltext
1:
video AVI video.avi                    


project1.dpr

Delphi-Quelltext
1:
2:
3:
...
{$R *.RES}
...


unit1.pas

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  animate.ResHandle:=HInstance;
  animate.resname:='video';
  animate.active:=true;
end;



laut resxplorer ist "video" in meiner exe drin.

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt


Andreas Pfau - Sa 27.12.03 18:59

Hallo,

du hast in der PAS resname auf "download" gesetzt... da sollte "video" stehen!


Horschdware - Sa 27.12.03 19:11

upsi... habs fürs forum abgeändert... steht natürlich im original richtig drin


edit:
hab jetzt mal was probiert:
ich hab mal ein neues projekt gestartet, einfach nen button und eine animate komponente draufgezogen.
dann wie oben eine .res datei erzeugt und wie oben beschrieben ins programm eingebunden.

mit

animate1.ResHandle:=HInstance;
animate1.resname:='video';

das ganze aufgerufen und er bringt mir wieder "avi kann nicht geöffnet werden". ich bin mir recht sicher dass die lösung ganz simpel ist, aber ich komm nicht drauf, was ich falsch mache...
der resxplorer von den demos zeigt mir an, dass die resource in der exe drin ist. ich kann sie sogar wieder aus der exe rausholen. aber warum kann ich die dann nicht im programm benutzen?


Andreas Pfau - So 28.12.03 14:12

Hallo,

entweder deine RC stimmt nicht (du musst sie schon zeigen!), oder dein AVI passt nicht. TAnimate unterstützt NUR (und WIRKLICH NUR) AVIs OHNE Kompression (Vollbilder) oder mit RLE - alle anderen Kompressionen können nicht angezeigt werden. Des weiteren darf das AVI meines Wissens keinen Sound enthalten. Irgednwo in den Demos befindet sich ein AVI (such mal mit WIN+F), das funzt auf jeden Fall. Binde mal das ein, und probier, was rauskommt.


Horschdware - So 28.12.03 16:48

ich kann die avi in meine animate komponente per "filename" normal reinhaun. nur wenn ichs über die .res datei mache gehts nicht.
sound ist nicht dabei, komprimiert ist sie auch nicht. in nem daneren forum wurde dieses problem wie ich sehe schon mal aufgegriffen, aber es ist keine lösung rausgekommen.

meine rc habe ich oben schon mal gepostet. hier nochmal:

video.rc:

Quelltext
1:
video AVI video.avi                    



edit:
hab mal eine test avi aus dem delphi ordner (eine ohne sound / kompression) in eine res gepackt und versucht die einzubinden.
der resxplorer sagt mir wieder, dass "video" drin ist, aber wenn ich versuche "video" in die animate zu laden kommt wieder "avi kann nicht geöffnet werden".


Andreas Pfau - So 28.12.03 17:32

Hallo,

erstmal: Pi ist nicht 3, sondern
3.141592653589793238462643383279502884
19716939937510582097494459230781640628620899
86280348253421170679821480865132823066470938
44609550582231725359408128481117450284102701
93852110555964462294895493038196442881097566
59334461284756482337867831652712019091456485
66923460348610454326648213393607260249141273
72458700660631558817488152092096282925409171
53643678925903600113305305488204665213841469
51941511609433057270365759591953092186117381
93261179310511854807446237996274956735188575
27248912279381830119491298336733624


Also, zu deinem Problem: evtl (aber sehr unwarscheinlich) kann es sein, dass der Compiler mal wieder sein Eigenleben führt. Schließe das Projekt. Lösche ALLE Dateien des Projekts außer DPR, PAS, RC und DFM. Compiliere die RC. Öffne das Projekt mit Delphi, Kompiliere es neu. Jetzt MUSS die aktuelle Ressource (nimm bitte die aus dem Delphi-Ordner) auch da sein.

Ich weiß echt nicht, was das sonst sein kann. GEht mir auch manchmal so. Probier doch mal statt dem Namen einen ID, also "1 AVI video.avi", und setzt nicht Tanimate.ResName sondenr TAnimate.ResID (auf 1).

Oder Probier einen anderen Compiler (statt BRCC32.exe).


Horschdware - So 28.12.03 17:55

ok, werd ich mal versuchen. thx für die hilfe


und:
Zitat:

erstmal: Pi ist nicht 3


ach was :wink:

edit:
hab mal resID ausprobiert. da tut sich auch nichts.
das ist aber total unlogisch, da die avi mit dem index 1 in der exe drin ist.
ich habs jetzt schon so ziemlich mit allen avis ausprobiert, die ich auf meiner platte finden kann, und bei keiner einzigen funktionierts, wenn ich über die resourcen geschichte mache. wenn ich die avis aber normal über filename einfüge funzt alles. ich kapiers echt nicht....