AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein OnMouseDown and Parent Weiterleiten
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseDown and Parent Weiterleiten

Ein Thema von jacky213 · begonnen am 27. Jun 2019 · letzter Beitrag vom 28. Jun 2019
Antwort Antwort
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#1

OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:30
Ich kann alle Panels mit einem Bestimmten Namen während der Laufzeit verschrieben solange eine Checkbox Checked ist. Nun habe ich aber auf einigen dieser Panels ein TImage mit dem Align auf alClient, sodass das TImage das komplette Panel bedeckt.

Wie schaffe ich es, dass ich den OnMouseDown Event des Panels auslöse wenn ich den OnMouseDown auf dem TImage auslöse?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:32
Einfach den Händler des Panels zuweisen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#3

AW: OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:33
Hättest du vielleicht ein kleines Beispiel zur Hand?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:35
Image anklicken, auf dem „Ereignisse“-Reiter OnMouseDown auswählen und da denselben Handler nehmen, den Du auch dem dazugehörigen Panel zugewiesen hast.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#5

AW: OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:48
also ich habe im OnCreate der Form folgenden Code um auch später erzeugte Panels verschieben zu können

Delphi-Quellcode:
procedure TfrmMain.ControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
const
minWidth = 20;
minHeight = 20;
var
newPos: TPoint;
frmPoint : TPoint;
begin
if frmMain.inReposition then
begin
with TWinControl(Sender) do
begin
GetCursorPos(newPos);
if ssShift in Shift then
begin //resize
Screen.Cursor := crSizeNWSE;
frmPoint := ScreenToClient(Mouse.CursorPos);
if frmPoint.X > minWidth then
Width := frmPoint.X;
if frmPoint.Y > minHeight then
Height := frmPoint.Y;
end
else //move
begin
Screen.Cursor := crSize;
Left := Left - frmMain.oldPos.X + newPos.X;
Top := Top - frmMain.oldPos.Y + newPos.Y;
frmMain.oldPos := newPos;
end;
end;
end;
end; (*ControlMouseMove*)

procedure TfrmMain.ControlMouseUp(
Sender: TObject;
Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if frmMain.inReposition then
begin
Screen.Cursor := crDefault;
ReleaseCapture;
frmMain.inReposition := False;
end;
end; (*ControlMouseUp*)

procedure TfrmMain.ControlMouseDown(
Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if (MoveControls=true) AND
(Sender is TWinControl) then
   begin
   frmMain.inReposition:=True;
   SetCapture(TWinControl(Sender).Handle);
   GetCursorPos(frmMain.oldPos);
   end;
end;

Procedure CM;
var
i : integer;
begin
    for I:=0 to frmMain.ComponentCount-1 do
    if frmMain.Components[I] is TPanel then
    if Copy(TPanel(frmMain.Components[I]).Name,0,4)='PanConthen
       begin
       TPanel(frmMain.Components[I]).OnMouseDown := frmMain.ControlMouseDown;
       TPanel(frmMain.Components[I]).OnMouseMove := frmMain.ControlMouseMove;
       TPanel(frmMain.Components[I]).OnMouseUp := frmMain.ControlMouseUp;
       end;
end;
auf den Panels befinden sich auch die TImages
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: OnMouseDown and Parent Weiterleiten

  Alt 27. Jun 2019, 20:57
Dann schau doch einfach nach, ob der Parent des jeweiligen Images ein TPanel ist und rufe in dem Fall dessen Handler auf, wobei Du den Sender-Parameter auf das Panel selbst setzt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
258 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: OnMouseDown and Parent Weiterleiten

  Alt 28. Jun 2019, 08:45
Wie schaffe ich es, dass ich den OnMouseDown Event des Panels auslöse wenn ich den OnMouseDown auf dem TImage auslöse?
Wenn bei einem Control "Enabled" = false ist, wird es bei der Mausabfrage ignoriert. Vielleicht hilft dies ja bereits.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#8

AW: OnMouseDown and Parent Weiterleiten

  Alt 28. Jun 2019, 19:00
Habe das ganze nun auf einen Frame gesetzt und schneller voran zu kommen und stehe wieder vor dem selben Problem

Nur heißt es jetzt wie ich den OnMouseDown an den Frame weitergebe. Wenn ich das auf dem selben weg wie mit dem Panel anstellen möchte, dann sagt er mir das es sich nicht um ein WinControl handelt (soweit ich mich erinnere).

Der Vollständigkeit halber, hier gleich meine Lösung:

FrameMouseDown(self,Button,Shift,x,y);

Geändert von jacky213 (28. Jun 2019 um 19:06 Uhr)
  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:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz