| Autor |
Beitrag |
no-one
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 16:42
Hallo zusammen. Bin neu hier. Erstmal ein "Hallo" an alle.
Bin in Delphi noch nicht so ganz fit, habe mir aber vorgenommen, ein kleines Programm in Delphi zu coden, mit dem ich über eine Webcam einen Raum überwachen kann.
Jetzt stellt sich mir das Problem, dass ich nicht weiß, wie ich einen Webcam-Stream abfrage.
Also hab ich mir einen Sourcecode besorgt und kann den aber nicht starten.
Habe in eurem Board auch diesem Beitrag gefunden: www.delphi-forum.de/viewtopic.php?t=19282
Die Probleme darin sind meinen sehr ähnlich. Leider finde ich keine Lösung
Ich Poste mal mein Problem. Vielleicht kann mir jemand helfen:
Quelltext 1: 2: 3: 4:
| uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids, Buttons, ComCtrls, VideoCap, VideoMci, MMSystem, ButtonComps, XP_Form, XP_Edit; |
Ich finde nichts über "VideoMci" und "VideoCap". Weder im Web noch in der Delphi-Hilfe. Was sind das für Komponenten?
Und dann bekomme ich diese Fehler:
[Fataler Fehler] WVideo.pas(  : Datei nicht gefunden: 'VideoCap.dcu'
[Fataler Fehler] WVideo.pas(  : Datei nicht gefunden: 'VideoMci.dcu'
Denn die DCU-Files wurden nicht zum Sourcecode gepackt und sind nicht auf meiner Platte.
Gibt es irgendeine Lösung?
Wäre toll.
Danke
Chris
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Sa 06.11.04 16:52
Du findest die VideoCap deswegen nirgendwo im Internet, weil es eine selbsterstellte Unit ist. Du hat hier selbst auf den Beitrag hingeweiesen. In diesem Beitrag hibt es eine Unit als Beispiel und die heißt VideoCap.pas. Allerdings, wenn du schon bei sowas Probleme hast, dann weiß ich nicht ob du dich an so ein Projekt drannhängen solltest.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 17:21
Hallo.
Danke erstmal für deine Antwort.
Ja, die beiden pas-Files habe ich auch. Allerdings sind die Sources aus einer anderen Quelle.
Ob ich wirklich an dieses Projekt rangehe, weiß ich ja selbst noch nicht.
Trotzdem wäe es nett, wenn ich eine Hilfestellung bekäme, wie es möglich ist, das Proramm zu kompilieren.
Danke
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Sa 06.11.04 17:56
| no-one hat folgendes geschrieben: | | Ja, die beiden pas-Files habe ich auch. Allerdings sind die Sources aus einer anderen Quelle. |
Was hat die andere Quelle damit zu tun? Unit ist Unit, egal woher. Du muß die Unit nur in das Projekt einfügen. Allerdings muß die PAS Datei und der Unit Titel eben VideoCap heißen. Es gibt zwei Möglichkeiten wie du die Unit in des Projekt eifügst. Die Unit in das Projektverzeichnis kopieren und unter Uses die Unit eintragen (was du allerdins bereits gemacht hast). Oder in Delphi über Projektverwaltung die Unit hinzufügen.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 18:29
| bms hat folgendes geschrieben: | | no-one hat folgendes geschrieben: | | Ja, die beiden pas-Files habe ich auch. Allerdings sind die Sources aus einer anderen Quelle. |
Was hat die andere Quelle damit zu tun? Unit ist Unit, egal woher. Du muß die Unit nur in das Projekt einfügen. Allerdings muß die PAS Datei und der Unit Titel eben VideoCap heißen. Es gibt zwei Möglichkeiten wie du die Unit in des Projekt eifügst. Die Unit in das Projektverzeichnis kopieren und unter Uses die Unit eintragen (was du allerdins bereits gemacht hast). Oder in Delphi über Projektverwaltung die Unit hinzufügen. |
Hallo. Also entweder bin ich zu doof, oder wir reden aneinander vorbei.
Die Sources die ich habe, beinhalten die Files VideoCap.pas und VideoMci.pas und diese sind ja auch im Projektverzeichnis, mitsamt allen anderen Projekt-Dateien. Eingebunden sind sie im Projekt über den Uses-Teil. Und als Titel haben sie Unit VideoCap und Unit VideoMci.
Gruss
Chris
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Sa 06.11.04 18:38
Dann:
a. Im Menü Projekte auf "Projekt neu ompilieren". Wenn nicht da, dann
b. Im Menü Projekte auf "Compilieren".
Alternativ:
c. Alle DCUs im Projektordner und Unterordenrn löschen. Dann wird automatisch neu kompiliert und alle DCUs werden neu erstellt.
Ich weiß nicht ob es das Problem ist, aber gelegentlich weigert sich Delphi alles neu zu kompilieren, weil es glubt, daß an einer DCU nichts verändert wurde. Wurde die DCU aber gelöscht, dann fehlt sie. DCU ist eine komplieret PAS.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 18:52
Hi wieder.
Ich stecke immernoch fest.
A. funktioniert nicht, weil "neu compilieren" nicht existiert.
B. funktioniert nicht, denn Delphi beschwert sich, dass VideoCap.dcu nicht gefunden wurde.
C. verursacht das gleiche Problem. Obwohl alle DCU´s gelöscht sind, bleibt der Debugger im Uses-Teil bei "VideoCap" stehen.
Vermutlich würde es helfen, wenn ich alles neu compilieren könnte. Doch die Option bietet sich nicht.
Gruss
Chris
P.S. ich gebs gleich auf. 
|
|
Phantom1
      
Beiträge: 390
|
Verfasst: Sa 06.11.04 19:53
Wenn alles nicht funktioniert, kannst du ja mal diesen komplett anderen code probieren, es werden dabei auch keine andere units benötigt:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm) Panel1: TPanel; PaintBox1: TPaintBox; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private public handle : tHandle; end;
var Form1: TForm1;
Const WM_CAP_DRIVER_CONNECT = WM_USER + 10; WM_CAP_EDIT_COPY = WM_USER + 30; WM_CAP_SET_PREVIEW = WM_USER + 50; WM_CAP_SET_OVERLAY = WM_USER + 51; WM_CAP_SET_PREVIEWRATE = WM_USER + 52;
implementation
{$R *.dfm}
function capCreateCaptureWindow(lpszWindowName : LPCSTR; dwStyle : DWORD; x, y, nWidth, nHeight : integer; hwndParent : HWND; nID : integer ): HWND; stdcall; external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';
procedure TForm1.FormCreate(Sender: TObject); begin handle:=capCreateCaptureWindow('Video', ws_child + ws_visible, 0, 0, 320, 240, Panel1.Handle, 1); SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0 ); SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0 ); SendMessage(handle, wm_cap_set_preview, 1, 0 ); end;
procedure TForm1.Timer1Timer(Sender: TObject); begin SendMessage( handle, WM_CAP_EDIT_COPY, 1, 0 ); image1.Picture.LoadFromClipboardFormat( cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap),0) end;
end. |
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 22:45
Hallo Phantom.
Vielen Dank
Werde es mal probieren.
Gruss
no-one
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Sa 06.11.04 23:01
Wenn er an "VideoCap" stehen bleibt, dann feht das wahrscheinlich. Wahrscheinlich glaubst du, daß es für den Compiler ereichbar ist. Vielleicht hast du die Unit kopiert, sie in eine Textdatei geschreiben und da steht "VideoCap.txt.pas". Also irgendwas stimmt mit deiner Datei nicht.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 06.11.04 23:50
Hi.
Nein, also ganz unfähig bin ich auch nicht
Habe nichts umbenannt, kopiert oder sonstwas gemacht.
Nur das Zip-Archiv entpackt und die Button/XP-Style Komponenten installiert, das DPR-File gestartet, und dann versucht in Delphi zu compilieren.
Aber wer will, kann sich ja gern mal selbst überzeugen:
www.planetsourcecode...eId=707&lngWId=7
Gruss
Chris
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: So 07.11.04 00:31
Die ABC sollte kein Ablaufplan sein, sondern eines von drei Möglichkeiten.
Aber wie schon gesagt: irgendwas stimmt mit deiner Datei nicht. Und zwar liegt das an der Projektdatei:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program CapMci;
uses Forms, WVideo in 'WVideo.pas' , VideoCap in '..\..\Programmeerimine\capmci\VideoCap.pas', VideoMci in '..\..\Programmeerimine\capmci\VideoMci.pas', mmaoi in '..\..\Programmeerimine\Kalender uusim\mmaoi.pas' ;
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TVideo, Video); Application.CreateForm(TForm1, Form1); Application.Run; end. |
Wie du siehst sind da Pfade und die Pfade gibt es nicht. Die "VideoCap.pas" ist gleich in deinem Projektordner. Also das ganze kürzen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| program CapMci;
uses Forms, WVideo in 'WVideo.pas' , VideoCap in 'VideoCap.pas', VideoMci in 'VideoMci.pas', mmaoi in 'mmaoi.pas' ; {$R *.RES}
... |
Allerdings fehlt dennoch eine Datei. Die mmaoi.pas. Es ist die Unit des Form1 Formulars. Da mußt du dich selbst drum kümmern.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: So 07.11.04 00:42
Allerdings sind die Fehlenden Teile anscheinend nicht wichtig. Man kann sie löschen oder auskommentieren:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program CapMci;
uses Forms, WVideo in 'WVideo.pas' , VideoCap in 'VideoCap.pas', VideoMci in 'VideoMci.pas'; {$R *.RES}
begin Application.Initialize; Application.CreateForm(TVideo, Video); Application.Run; end. |
Danach funktioniert das Programm.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
no-one 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 07.11.04 01:01
Hallo bms.
Hatte es auch nicht als Ablaufplan gesehen. Nachdem Möglichkeit 1 nicht in Betracht kam, machte ich bei 2 weiter.
Danach kam ich dann zwangsläufig auch zu 3.
Das die Pfade nicht stimmten, merkte ich vorhin auch. Soweit war ich nach meinem letzten Beitrag dann doch noch gekommen.
Als ich dann feststellte, dass doch noch eine weitere Datei fehlt, hatte ich es dann aber aufgegeben.
Du hast Recht, denn der Code übersteigt mein Delphi-Wissen und ich dachte, es macht wenig Sinn, da weiterzumachen wenn onehin was fehlt.
Jetzt habe ich zwei funktionierende Codes (wobei der von Phantom1 deutlich einfacher zu verstehen ist) und bin sehr zufrieden. Vielen Dank für eure unermüdliche Hilfe.
Der Grundgedanke ist auch ein anderer gewesen:
Bei uns in der Firma kam es in letzter Zeit zu nicht unerheblichen Diebstählen und eine Überwachung bestimmter Bereiche, für die ich verantwortlich bin, erscheint mir sinnvoll. Webcams haben wir, sowie das restliche Equiment in Form von PC´s. Mir fehlt nur die passende Software. Kaufen ist eine Möglichkeit, doch selbstgecodet ist natürlich schöner und günstiger.
Doch ich sehe schon, dass das nicht so einfach zu realisieren ist.
Danke und Gruss
Chris
|
|
|