AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Form die „BorderStyle := bsNone“ ist, in der Größe ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Form die „BorderStyle := bsNone“ ist, in der Größe ändern?

Ein Thema von Code · begonnen am 5. Okt 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#1

Form die „BorderStyle := bsNone“ ist, in der Größe ändern?

  Alt 5. Okt 2007, 11:18
Hallo Alle!

Kann man eine Form die „BorderStyle := bsNone“ ist, trotzdem in der Größe ändern?

Gruß
Heike
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 11:26
Aber ja. Du musst nur den entsprechenden Code selbst schreiben. Wenn du eine randlose Form hast und schon ans Vergrößern denkst, hast du vermutlich schon den Code zum Verschieben geschrieben. Der Code zum Vergrößern ist dann auch nicht viel komplizierter.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 11:33
Zitat von OregonGhost:
Aber ja. Du musst nur den entsprechenden Code selbst schreiben. Wenn du eine randlose Form hast und schon ans Vergrößern denkst, hast du vermutlich schon den Code zum Verschieben geschrieben. Der Code zum Vergrößern ist dann auch nicht viel komplizierter.
Ja, zum verschieben habe ich:
Delphi-Quellcode:
  ReleaseCapture;
  SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);
Aber mit vergrößern - Verkleinern komme ich nicht weiter.

Gruß
Klaus
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 11:50
Zitat von Code:
Ja, zum verschieben habe ich:
Delphi-Quellcode:
  ReleaseCapture;
  SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);
Aber mit vergrößern - Verkleinern komme ich nicht weiter.
Weil Du den Code, den Du zum Verschieben nutzt, irgendwo kopiert, aber nicht verstanden hast, was er eigentlich tut.

Tipp: Setze Dich mit wParam auseinander...
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#5

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 11:52
Oh, ich dachte jetzt gar nicht an diesen Syscommand-Kram. Wie s-off schreibt, solltest du den Code erstmal verstehen lernen. Was ich jedoch meinte, ist ein popeliger Code, der beim MouseDown Position und IsMoving speichert, beim MouseUp IsMoving aufhebt und im MouseMove im Falle von IsMoving die Koordinaten aktualisiert. Das ist sehr einfach, sobald man es einmal raushat, und dann kannst du es im Prinzip ohne größere Schwierigkeiten auf das Vergrößern erweitern. Ob es auch so ein Syscommand gibt fürs Vergrößern, weiß ich jedoch nicht.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 11:53
So gehts:

Delphi-Quellcode:
.
.
.
private
    { Private-Deklarationen }
    procedure NCHIT(var Msg : TWMNCHITTEST); message WM_NCHITTEST;
.
.
.
Und dann die eigentliche Prozedur:

Delphi-Quellcode:
procedure TForm1.NCHIT(var Msg : TWMNCHITTEST);
var p : Tpoint;
const a = 9;
var r,u : integer;
begin
     p.x := msg.XPos;
     p.y := msg.YPos;
     p := screentoclient(p);
     msg.Result := HTCLIENT;
     {-}
     r := self.width - a;
     u := self.height - a;
     {-}
     if p.x > r then msg.Result := HTRIGHT;
     if p.y > u then msg.Result := HTBOTTOM;
     if PtInRect(Rect(r,u,self.width,self.height),p) then msg.Result := HTBOTTOMRIGHT;
end;
Mit der Konstante a kann eingestellt werden, ab welchem Abstand des Cursors zum Rand vergrößert/verkleinert werden kann. In diesem Beispiel wird nur auf unten, rechts und die Ecke rechts-unten überprüft. Andere Seiten/Ecken gehen äquivalent. (ungetestet, sollte aber gehen)

P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 12:24
Zitat von s-off:
Weil Du den Code, den Du zum Verschieben nutzt, irgendwo kopiert, aber nicht verstanden hast, was er eigentlich tut.

Tipp: Setze Dich mit wParam auseinander...
Das habe ich mir aus der MSM gesucht. Was sollte ich daran verstehen? Es verschiebt Fenster, mehr brauche ich nicht wissen. Wenn ich mir einen Button auf eine Form ziehe, muss ich auch nicht unbedingt verstehen wie Delphi das macht. Das ist ja einer der Gründe warum ich mir Delphi zugelegt habe. Ich kenne mich allerdings noch nicht so gut aus wie Ihr und muss noch viel Erfahrungen sammeln.

Gruß
Klaus
  Mit Zitat antworten Zitat
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 12:26
Zitat von OregonGhost:
Oh, ich dachte jetzt gar nicht an diesen Syscommand-Kram. Wie s-off schreibt, solltest du den Code erstmal verstehen lernen. Was ich jedoch meinte, ist ein popeliger Code, der beim MouseDown Position und IsMoving speichert, beim MouseUp IsMoving aufhebt und im MouseMove im Falle von IsMoving die Koordinaten aktualisiert. Das ist sehr einfach, sobald man es einmal raushat, und dann kannst du es im Prinzip ohne größere Schwierigkeiten auf das Vergrößern erweitern. Ob es auch so ein Syscommand gibt fürs Vergrößern, weiß ich jedoch nicht.
Habe ich versucht, ist zu abgehackt. Ruckelt beim ziehen.

Gruß
Klaus
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#9

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 12:27
Zitat:
Habe ich versucht, ist zu abgehackt. Ruckelt beim ziehen.
Ich hab das schon öfter in verschiedenen Fenstersystemen eingesetzt. Da ruckelt überhaupt nichts.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#10

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 12:27
Zitat von OregonGhost:
Ob es auch so ein Syscommand gibt fürs Vergrößern, weiß ich jedoch nicht.
Wie bereits gesagt genügt es vollkommen, sich mit den Werten von wParam auseinander zu setzen.
Der Aufruf, ist der Gleiche, wie auch beim Verschieben der Form.

Überprüfen, an welcher Position der Form sich der Cursor gerade befindet, macht man dann, wie schon von patti beschrieben über die WM_NCHITTEST
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:24 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