AGB  ·  Datenschutz  ·  Impressum  







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

Override-Problem bei WMMoving

Ein Thema von SebE · begonnen am 2. Jan 2005 · letzter Beitrag vom 2. Jan 2005
Antwort Antwort
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#1

Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:04
Morgen Leute.

Hab ein Programm mit 2 Fenstern.
Wollte, dass das eine, wenn es in die Nähe des Anderen kommt, "angezogen" wird.
Wie bei WinAmp.
Am Bildschirmrand gibt es ja die Eigenschaft ScreenSnap, und genau das möchte ich mit 2 Fenstern versuchen.

Hab es mit:
Code:
procedure WMMOVING(var Msg: TWMMoving); message WM_MOVING; override;
versucht -> Fehlermedlung: "Felddefinition nicht erlaubt nach Methoden oder Eigenschaften"

Grund für das Override ist, ich dachte mir, dass ich erst meine Procedure aufrufe und mit inherited die Original-Prozedur, da es ohne override immer nicht 100% funzt.

Kann mir jemand sagen, wie ich das schreiben muss, damit es geht?



Bin euch allen sehr dankbar
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:06
Hi!

Anscheinend stört ihn die Stelle, an der es steht:
Zeig mal das drumherum.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#3

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:06
Code:
type
  TfmBar = class(TForm)
    btOeffnen: TSpeedButton;
    edFarbe: TEdit;
    edAktuelleFarbe: TEdit;
    edPosition: TEdit;
    OpenPictureDialog: TOpenPictureDialog;
    XPMenu: TXPMenu;
    procedure btOeffnenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
    procedure WMMOVING(var Msg: TWMMoving); message WM_MOVING; override; //<- Hier steht's
  public
    { Public-Deklarationen }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;
Sebastian
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:18
Moin Sebe,

lass' mal das override weg.
In TForm gibt es keine Methode WMMOVING.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#5

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:19
Zitat von SebE:
Wollte, dass das eine, wenn es in die Nähe des Anderen kommt, "angezogen" wird.
Wie bei WinAmp.
Benutze WMWindowPosChanging und setzte die neuen Werte, wenn es in die Nähe deines Fenster kommt. Und wenn nicht dann rufe inherited auf.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#6

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:21
Aber ich will des doch überschreiben, damit erst mein Zeug abläuft und dann erst die Original-Anweisungen.

Die Prozedur soll ungefähr so aussehen:

Code:
procedure TfmBar.WMMOVING;
begin

//Mein Zeugs
...

inherited
end;
Ohne Override funktioniert das nicht so, wie ich das will (nur teilweise)
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:23
In der Klasse gibt es keine Methode WMMOVING. Da gibt es also auch nichts zum Überschreiben. Und wenn es nicht so funktioniert, wie du willst, dann hast du einen Fehler in deinem Code.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#8

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:28
Hab im Moment keinen Plan, wie ich das machen könnte.

Hab schon etwas rumprobiert:

Code:
...
procedure WMWindowPosChanging(var Msg: TWMWindowPosChanging); message WM_WindowPosChanging;
...
implementation
...
procedure TfmBar.WMWindowPosChanging;
begin
if (Msg.WindowPos.x>=fmMain.Top-10) and (Msg.WindowPos.x<=fmMain.Top+10)
then Msg.WindowPos.x:=fmMain.Top;

inherited
end;
Weis nicht was der Code eigentlich macht.

@Sprint: Wie kann ich denn neue Werte setzen?
Sebastian
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#9

Re: Override-Problem bei WMMoving

  Alt 2. Jan 2005, 16:48
Hab's man muss im obrigen Code nur Msg.WindowPos.x durch Msg.WindowPos.y ersetzen

Danke für eure Hilfe
Sebastian
  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 18:12 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