AGB  ·  Datenschutz  ·  Impressum  







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

Fenstergröße an eigenem Rahmen ändern...

Ein Thema von Ares · begonnen am 7. Jul 2004 · letzter Beitrag vom 7. Jul 2004
Antwort Antwort
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Fenstergröße an eigenem Rahmen ändern...

  Alt 7. Jul 2004, 20:03
Hallo!

Ich habe den eigentlichen Rahmen eines Forms ausgeblendet (Form1.Borderstyle := bsNone und durch einen selbst gezeichneten ersetzt. Dazu habe ich TImages an die Fensterränder gesetzt und mit den entsprechenden Rahmen-Bilder ausgesatattet. Soweit alles kein Problem.

Da das Fenster nun aber keine Rahmen mehr hat, kann ich es nicht mehr größer oder kleiner ziehen. Wie kann ich diese Eigenschaft nachbilden?

Besten Dank
Ares
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fenstergröße an eigenem Rahmen ändern...

  Alt 7. Jul 2004, 20:44
vor einiger zeit hab ich die frage auch mal gestellt und hab folgendes erhalten:
Delphi-Quellcode:
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;

[...]

procedure TSBMainForm.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  DefaultHandler(Msg);
  with Msg do
        // TOP
    if PtInRect(Rect(0, 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTop
        // LEFT
    else if PtInRect(Rect(0, 0, 4, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htLeft
        // BOTTOM
    else if PtInRect(Rect(0, Height - 4, Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottom
        // RIGHT
    else if PtInRect(Rect((Width - 4), 0, Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htRight
        // TOPLEFT
    else if PtInRect(Rect(0, 0, 4, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTopLeft
        // TOPRIGHT
    else if PtInRect(Rect((Width - 4), 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTopRight
        //BOTTOMLEFT
    else if PtInRect(Rect(0, (Height - 4), 4, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottomLeft
        // BOTTOMRIGHT
    else if PtInRect(Rect((Width - 4), (Height - 4), Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottomRight

      // Bewegen ohne Titlebar
    //else if RESULT = HTCLIENT then
    // RESULT := htCaption
    else
      inherited;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#3

Re: Fenstergröße an eigenem Rahmen ändern...

  Alt 7. Jul 2004, 21:18
Danke für den Tipp! Aber wie genau muss ich das Einbinden? Ich hab das ganze einfach in Quelltex eingefügt, danach funktioniert das jedoch noch nicht. Muss ich sonst noch was machen?

Besten Dank
Ares
  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 10:06 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