AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Vergrößern der Form

Ein Thema von Andreas L. · begonnen am 27. Sep 2006 · letzter Beitrag vom 27. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2   
Andreas L.
(Gast)

n/a Beiträge
 
#1

Vergrößern der Form

  Alt 27. Sep 2006, 18:54
Hi,
ich habe mein Form auf BorderStyle:=bsNone. In der rechten, unteren Ecke habe ich ein kleines Bild. Wenn man drauf klickt und mit der Maus draufbleibt und diese bewegt soll sich das Form vergrößern. Ich wollte das im OnmouseDown-Ereignis so machen, geht aber nicht:
Delphi-Quellcode:
 Width := X - Left;
 Height := Y - Top;
Welche Möglichkeiten gibt noch?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Vergrößern der Form

  Alt 27. Sep 2006, 18:58
Hi,

Delphi-Quellcode:
Top := Top - 100;
Left := Left - 100;
Width := Width + 100;
Hegiht := Height + 100;
Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: Vergrößern der Form

  Alt 27. Sep 2006, 19:23
Zitat von Florian Bernd:
Hi,

Delphi-Quellcode:
Top := Top - 100;
Left := Left - 100;
Width := Width + 100;
Hegiht := Height + 100;
Florian
Ähhhhhhh, hast du die Frage genau gelesen? Ich möchte die Form anhand der Cursor-Position vergrößern.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Vergrößern der Form

  Alt 27. Sep 2006, 19:43
Naja... dann musst du eben im OnMouseMove-Ereignis deines Sizegrip (btw ich bin mir zu 100% sicher dass es sowas schon gibt, inkl. frei auswählbarem bild) den Shiftstate auf vorhandensein von ssLeft überprüfen und falls alles zu deiner zufriedenheit ausfällt das hier machen:

Delphi-Quellcode:
Width := (Sender as TControl).ClientToParent(X,0).X + (Sender as TControl).Width - X;
Height := (Sender as TControl).CLientToParent(0,Y).Y +(Sender as TControl).Height - Y;
So sollte das hinhauen, und das hätte man auch selber rausfinden können sollen... extl. musst du beim clienttoparent die parameter noch durch point() jagen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Vergrößern der Form

  Alt 27. Sep 2006, 19:52
Zitat:
Ähhhhhhh, hast du die Frage genau gelesen?
Ja, aber deine Frage ging nicht so wirklich daraus hervor ...
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

Re: Vergrößern der Form

  Alt 27. Sep 2006, 20:00
@Lukas: Erstmal Danke. Ich werde das gleich mal ausprobieren.

Ich habe jetzt das MSDN und die Delphi-Sources durchsucht. Ich habe ja bereits den folgenden Code:

Delphi-Quellcode:
   ReleaseCapture;
   perform(WM_SysCommand, $F012, 0);
Dieser lässt ja das Formular verschieben. Es gibt doch bestimmt aucht eine Message für Resize, oder? Leider habe ich bei den Konstanten in Controls.pas nicht finden können. Weiß die jemand? Das wäre wohl einfach und übersichtlicher... Danke
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#7

Re: Vergrößern der Form

  Alt 27. Sep 2006, 20:14
Delphi-Quellcode:
 Width := (Sender as TControl).ClientToParent(point(X,0)).X + (Sender as TControl).Width - X;
 Height := (Sender as TControl).CLientToParent(point(0,Y)).Y +(Sender as TControl).Height - Y;
Wenn ich das ins OnMouseDown packe und während der Laufzeit am Eck ziehe passiert nichts. Hab ich was vergessen?
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Vergrößern der Form

  Alt 27. Sep 2006, 20:25
Ich hab da was mit WM_HITTEST oder WM_NCHITTEST im Hinterkopf, wo man der Form vorgaukeln kann, der User hätte auf ihre Titelleiste oder Border geklickt. Die Form reagiert dann auch entsprechend mit Verschiebdn/Vergrößern. Googel halt mal.

HTH, Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#9

Re: Vergrößern der Form

  Alt 27. Sep 2006, 20:42
Den Code von Lukas habe ich jetzt mal im OnMouseMove probiert. Dort geht er auch nicht.

Die Konstante WM_HITTEST ist ein undefinierter Bezeichner. Mit WM_NCHITTEST kompiliert Delphi. Jedoch funktioniert das resizen weder in OnMouseDown noch OnMouseOver. Ich google mal...

Schon seltsam, habe mir innerhalb 30 min. eine komplette Skinfähige GUI "from scratch" gebastelt. Alles funktioniert, nur nicht das SizeGrip. Muss ich wohl noch ein bisschen üben
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#10

Re: Vergrößern der Form

  Alt 27. Sep 2006, 21:02
Über Google habe ich nichts gefunden. Also habe ich jetzt im MSDN gesucht. Über WM_SYSCOMMAND werden sämtliche Fensteraktivitäten gesteuert. Ich bin auf den wParam SC_SIZE gestoßen. Habe mal fix folgendes im OnMouseDown des images eingebaut
Delphi-Quellcode:
   ReleaseCapture;
   perform(WM_SYSCOMMAND, SC_SIZE, 0);
Wenn ich dann klicke springt der Mauszeiger in die Mitte der Form und nichts passiert. Was habe ich da vergessen? Oder ist SC_SIZE gar der falsche wParam?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 15:39 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