AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Resize und Maustasten-Ereignis verknüpfen

Resize und Maustasten-Ereignis verknüpfen

Ein Thema von Dunkelbunt27 · begonnen am 7. Jan 2011 · letzter Beitrag vom 7. Jan 2011
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 17:27
Hallo Delphi Praxis,

ich habe Folgendes Problem:
Ich möchte die Größe meiner Paintbox nach dem Resize-Ereignis der Form verändern (anpassen.) Allerdings soll dies erst dann passieren, wenn ich die linke Maustaste wieder loslasse (quasi das resizen beendet habe). Jedoch weiß ich nciht so recht wie ich das anstellen soll. Ich möchte nicht bei jedem Linke-Maustaste-Druck die Paintbox neu zeichnen, es müsste also eine Abfrage dazu in das Resize-Ereignis rein, oder?

Und genau da weiß ich nicht weiter, mir fehlt praktisch eine If-Then Abfrage ob gerade die linke Maustaste losgelassen wurde.

Ich hoffe auf schnelle Hilfe,
FG Dunkelbunt
  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
 
#2

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 18:01
Setze ein Flag im FormResize und werte dieses beim MouseUp aus.
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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 18:54
Wenn ich es richtig verstanden habe, könnte man auch einen Handler für MSDN-Library durchsuchenWM_SIZE schreiben.
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
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#4

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 19:09
Danke für die Antworten.
Das mit dem WM_Size les ich mir mal genau durch.

Nur weiß ich leider nicht was ein Flag ist, und wie man das setzt. Könntest du das kurz am Beispiel erklären?

EDIT:
Zu WM_Size habe ich unter http://www.rudolf-software.de/delphitips.html gefunden, dass man damit das minimieren des Fensters unterbinden kann. Ist es das was du meinst?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 19:11
Er meinte eine Boolean-Variable, die Du bei Beginn der Größenänderung auf true setzt und nach dem MouseUp und Neuzeichnen wieder auf false.

[edit] Ich habe den MSDN-Artikel doch verlinkt. [/edit]
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
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 19:17
Danke,
das mit dem Flag hab ich nun auch herausgefunden (1x Google hätte die Frage vielleicht erspart, aber Fragen kann ja nicht falsch sein).
Ich werde es ausprobieren.

Das mit dem WM_Size hab ich noch nicht ganz begriffen, ich weiß nicht ganz was ich damit bewirken kann.
Werd es mir noch zu Gemüte führen.

[edit]
Zur Flag-Methode:
Ich habe die Flag im OnResize auf True gesetzt(globale Variable), im OnMouseUp wird die Variable wieder auf False gesetzt. In der OnMouseUp Prozedur wird wenn die Flag False ist die Paintbox neu gezeichnet.
-> funktioniert nicht...
[/edit]

[edit2]
Muss ich noch angeben welche Maustaste losgelassen wird?
if shift = [ssLeft] then ... oder etwas in der Art?
[/edit2]

Geändert von Dunkelbunt27 ( 7. Jan 2011 um 19:57 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
 
#7

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 20:59
Sorry für den schlechten Rat, aber so geht's
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  procedure WMExitSizeMove(var Message: TMessage); message WM_EXITSIZEMOVE;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMExitSizeMove(var Message: TMessage);
begin
   DeinRepaint;
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
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#8

AW: Resize und Maustasten-Ereignis verknüpfen

  Alt 7. Jan 2011, 22:00
Hallo,
Zitat:
Sorry für den schlechten Rat
Ich weiß nich ob euch 2 das schonmal einer gesagt hat, aber immer wenn ich ein Problem geäußert habe, seid ihr 2 es die mir zuerst antworten und mich meist zur Lösung bringen!
An dieser Stelle ein großes Lob und Dankeschön an Bummi und DeddyH!

Also jetzt zum Vorschlag:
- es hat genau das gemacht was es sollte
- super funktioniert

Vielen Dank und FG Dunkelbunt

Geändert von Dunkelbunt27 ( 7. Jan 2011 um 22:03 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:42 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