AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Panel

Ein Thema von Neuling13 · begonnen am 8. Sep 2011 · letzter Beitrag vom 11. Sep 2011
Antwort Antwort
Neuling13

Registriert seit: 8. Sep 2011
3 Beiträge
 
#1

Probleme mit Panel

  Alt 8. Sep 2011, 15:34
Hallo zusammen!

Ich habe eine Frage zum Thema Panel.
Ich stelle das Livebild einer Kamera auf einem Panel dar. Nun wollte ich die Mausposition auf dem Panel, also die zugehörigen Koordinaten des Mauspfeils anzeigen lassen und anschließend speichern, bis mir ein Problem auffiel.
Ich kann kein Ereignis mehr im Panel anwenden, weder ein OnCLick, MouseMove usw. bzw. anwenden schon, nur dabei passiert nichts. Da ich aber wie oben angedeutet die Position speichern will, wenn der Benutzer auf das Livebild klickt, wäre ich euch dankbar wenn ihr mir einen Tipp geben könntet.

Vielen Dank schon mal...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme mit Panel

  Alt 8. Sep 2011, 16:04
Wie stellst du das Bild dar?

Vermutung: Es wird ein weiteres Anzeigecontrol in das Panel eingeblendet, welches die Mausereignisse empfängt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Neuling13

Registriert seit: 8. Sep 2011
3 Beiträge
 
#3

AW: Probleme mit Panel

  Alt 8. Sep 2011, 16:18
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;


implementation

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

{$R *.DFM}

procedure TForm1.Bildzeigen;  
begin
  connect := capCreateCaptureWindow('Kamera',ws_child+ws_visible, 0,
  0, 600, 450, Panel1.Handle, 1);
  SendMessage(connect, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(connect, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(connect, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(connect, WM_CAP_SET_PREVIEW, 1, 0);
end;
Auf diese Weise wird das Bild/Handle in einem Panel dargestellt.
Habe noch zusätzliche Funktionen, wie Abspeichern der Bilder usw. aber daran sollte es nicht liegen.
Du meinst ein zusätzlich Anzeigecontrol könnte helfen? Aber mich würde es trotzdem interessieren, warum das Panel in diesem Fall Probleme macht.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Probleme mit Panel

  Alt 9. Sep 2011, 05:42
Du meinst ein zusätzlich Anzeigecontrol könnte helfen? Aber mich würde es trotzdem interessieren, warum das Panel in diesem Fall Probleme macht.
Du hast nicht richtig verstanden!

Es WIRD durch die DLL-Funktion eine zusätzliche Anzeigekomponente auf dem Panel erzeugt.
Wenn die Anzeigekomponente ein Haus wäre, gibst du die Hausnummer (Panel.Handle) und die Ausmaße des Grundstücks an (x, y, nWidth, nHeight) an, auf dem gebaut werden soll.
Wenn du auf einen Panel einen Button legst und auf den Button, anstatt auf dem Panel drückst, wird ja auch das OnClick-Event des Buttons und nicht des Panels ausgelöst.

Geändert von TiGü ( 9. Sep 2011 um 05:53 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Probleme mit Panel

  Alt 9. Sep 2011, 06:34
Weil dein Panel mit dem Aufruf CreateCaptureWindow zum Parent wird.
hwndParent: HWND; Das übergibst du ja auch in dieser zeile.

Es liegt also hinter dem CaptureWindow ..

PS:
Das kannst du nur ändern wenn du anstelle von CreateCaptureWindow
eine möglichkeit hast auf ein DC zu zeichnen..

gruss

Geändert von EWeiss ( 9. Sep 2011 um 06:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Probleme mit Panel

  Alt 9. Sep 2011, 07:24
Nicht schön, aber auf die Art könntest Du Dir was basteln .....

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
   if (msg.hwnd=connect) and (msg.message = WM_MouseMove) then DeinCode

end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Neuling13

Registriert seit: 8. Sep 2011
3 Beiträge
 
#7

AW: Probleme mit Panel

  Alt 11. Sep 2011, 10:20
Danke für die Antworten, werde das Einbinden der Cam evtl. anders lösen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:29 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