AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stretch bei Panel?

Ein Thema von ReDoX · begonnen am 28. Dez 2004 · letzter Beitrag vom 30. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
ReDoX
(Gast)

n/a Beiträge
 
#1

Stretch bei Panel?

  Alt 28. Dez 2004, 18:49
Hi,
gibt es eine Möglichkeit stretch bei einem Panel zu benutzen?
Ich das ganze soll dann so wie bei einem Image funktionieren.
Mfg MrScholz
  Mit Zitat antworten Zitat
Karlson

Registriert seit: 12. Apr 2004
92 Beiträge
 
#2

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 13:55
Für was sollte das denn gut sein? Das Panelskin wird ja immer der aktuellen Grösse angepasst, da bracuhst du doch kein stretch
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#3

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:32
Also ich möchte das bild meine WebCam auf dem panel darstellen das funktioniert auch ganz gut aber hat nicht in der größe vom panel.
Deswegen stretch!
Mfg MrScholz
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:44
Wie wäre es mit einem TImage auf dem Panel zum Anzeigen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:45
Hallo,

ich hab mal ein Test-Programm ausgegramt und hab das mit dem Panel so gemacht:

Code:
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;

function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';

procedure TForm1.Button1Click(Sender: TObject);
var
  handle:THandle;
  Video_Width, Video_Height: Integer;

begin
  Video_Width  := 320;
  Video_Height := 240;

  Panel1.Width := Video_Width;
  Panel1.Height := Video_Height;

  handle := capCreateCaptureWindow('Video',ws_child + ws_visible, 0,
  0, Video_Width, Video_Height, Panel1.Handle, 1);
  SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle, wm_cap_set_preview, 1, 0);
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#6

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:55
@ Helmi Danke aber diese Variante stretcht das Bild der WebCam ja nicht wirklich sie stretcht eher das panel...
Das ganze soll so wie ein TImage funktionieren aber da ein Image kein Handel hat muss ich das auf dem Panel machen aber beim panel gibt es kein Panel1.stretch.
Mfg MrScholz
Edit: @ Lukie ich wie soll das gehen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:57
In dem du ein TImage auf das Panel packst.

Bist du sicher, dass du ein Handle brauchts und keinen Devicecontext? Für Zeichenoperationen wird meistens ein DC benötigt, selten ein Handle.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 14:58
aber du musst doch herausfinden können, wie groß das Video ist.
Und dann setzt einfach das panel auf die Größe des Videos (vielleicht noch überall + 1 Pixel,dann schauts besser aus)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#9

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 15:00
Ich benutze die funktion

Delphi-Quellcode:
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;

function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLLname 'capCreateCaptureWindowA';

procedure GetPic(Panel: TPanel);
begin
  Picture := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 640, 480, Panel.Handle, 1);
  SendMessage(Picture, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(Picture, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(Picture, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(Picture, wm_cap_set_preview, 1, 0);
end;
Und da muss ich

Picture := capCreateCaptureWindow('Video',ws_child+ws_visible , 0,
0, 640, 480, Panel.Handle, 1);

das handle angeben.
Mfg MrScholz

Edit: @ helmi Ich möchte ja das panel klein halten also nur 320x240 und da soll alles drauf zu sehen sein.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Stretch bei Panel?

  Alt 30. Dez 2004, 15:05
also irgendwie schaut mein Code sehr ähnlich deinem aus

mit 640 (Width) und 480 (Height) weisst du ja die Größe deines Videos.

Jetzt kannst du ja einfach die Größe des Panels auf diese Werte setzen.

[edit] ich war zu langsam:

Wenn du das Video klein halten willst, dann schreib anstatt den 640 und 480
einfach 320 und 240.

Und das Panel auf auf diese Width- und Height-Werte!

Also so:
Code:
Picture := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Panel.Handle, 1);

Panel.Width := 320;
Panel.Height := 240;
Das 0, 0, 320, 240 ist X, Y, Width, Height
[/edit]
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:41 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