Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Form.top, Form.left ändern.. (https://www.delphipraxis.net/69702-form-top-form-left-aendern.html)

Corpsman 18. Mai 2006 18:58


Form.top, Form.left ändern..
 
Ich weis das in NONVCL das nicht Form heist.

Also

Ich habe in Non VCL ein Programm gebastelt.

und das functioniert auch alles supi

nun würde ich gerne meine Form ein bischen einstellen wie ich das von der NonVCL Version her gewöhnt bin.

Im Speziellen will ich

Form.top,
Form.left,
Form.width,
Form.height,
Form.borderstyle,
Form.bordericons,
Form.Icon <-- Mache ich normalerweise über Project -> Optionen -> Anwendung -> Symbol

setzen bzw verändern.
width und Height werden ja beim erstellen auch schon gesetzt, aber wenn ich mein Fenster mit der MAus Groß und Klein zeihe dann kann man das ja eigentlich auch aus dem Code machen, nur wie ?

Das Befragen der Delphi Hilfe gibt zwar die Info das es wohl zum Teil solche Functionen gibt, nur leider kenne ich mich viel zu wenig aus als das ich verstehe für was man da immer so viele Parameter braucht.

Wäre echt net wenn ihr mir ein paar oder alle Functionen Verraten würdet.

sniper_w 18. Mai 2006 19:20

Re: Form.top, Form.left ändern..
 
Zitat:

The MoveWindow function changes the position and dimensions of the specified window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area.

BOOL MoveWindow(

HWND hWnd, // handle of window
int X, // horizontal position
int Y, // vertical position
int nWidth, // width
int nHeight, // height
BOOL bRepaint // repaint flag
);


Parameters

hWnd

Identifies the window.

X

Specifies the new position of the left side of the window.

Y

Specifies the new position of the top of the window.

nWidth

Specifies the new width of the window.

nHeight

Specifies the new height of the window.

bRepaint

Specifies whether the window is to be repainted. If this parameter is TRUE, the window receives a WM_PAINT message. If the parameter is FALSE, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of moving a child window. If this parameter is FALSE, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing.



Return Values

If the function succeeds, the return value is nonzero.

Corpsman 18. Mai 2006 22:04

Re: Form.top, Form.left ändern..
 
Das functioniert tatsächlich danke,

nu mus ich nur noch rauskriegen wie ich mein Applicationicon

und die Borderstyle sachen mache.

Vjay 18. Mai 2006 22:41

Re: Form.top, Form.left ändern..
 
Den machst du bei createWindow WS_XXXX. Hilfe von createWindow / createWindowEx mal anschauen.

Das Icon setzt du in der Windoclass, sofern du eine eigene verwendest. "SetWindowLong" sollte auch zum ändern des Icons herhalten können wenn ich mich recht erinnere. Mit diesen Schalgworten solltest du es selber "erbastelt" bekommen. Und gewöhn dich ans "erbasteln" wenn du weiterhin ohne VCL arbeiten willst ;)

Gruss

Corpsman 19. Mai 2006 07:09

Re: Form.top, Form.left ändern..
 
THX erst mal , ich werde es versuchen.

Und eigentlich hoffe ich das ich nicht mehr NONVCL Programmierern mus.

Es ging bei der Aktuellen Anwendung nur leider nicht anders.

Corpsman 19. Mai 2006 07:58

Re: Form.top, Form.left ändern..
 
So nu habe ich doch fast alles gefunden.

Mit CreateWindowEx kann man ganz schön viel machen ;)

nur habe ich es leider nicht geschafft die TitelBar Komplett verschwinden zu lassen.

Ala Form1.Borderstyle := bsNone;

weis da zufällig jemand wie's geht ?

Vjay 19. Mai 2006 09:40

Re: Form.top, Form.left ändern..
 
Jep,

indem du bei createWindow WS_BORDER komplett weg lässt.
Aber Achtung: Einige Styles wie WS_CAPTION implizieren (:D) WS_BORDER.

Versuch mal den Style WS_POPUP, wenn ich es recht in Erinnerung habe, dürfte der genau das tun was du möchtest.

Schade eigentlich, so manchem Delphi-Programmierer würde ich gerne ein paar Tage nonVCL aufzwingen.
Ein Verständnis dessen, was dahinter liegt, hat in den seltensten Fällen geschadet.

sniper_w 19. Mai 2006 16:54

Re: Form.top, Form.left ändern..
 
Ich verweisse an dieser Stelle auf nonVCL Maker. ;)

Corpsman 19. Mai 2006 21:39

Re: Form.top, Form.left ändern..
 
@ Vjay:
Ich würde jedem Hyndy besitzer auch gerne mal die Grundlagen in E-Technik auf's Auge drücken, aber ob das dann sinn macht ?

WS_POPUP erstellt in der Tat die anwendung ohne Titlebar.

Nu leider klappt das was ich forhatte immer noch nicht.

Ich habe mir momentan eine Exe zusammengebastelt mit der ich ein OpenGL Spiel Laufen Lass.

Das will ich als Fullscreen laufen lassen.

Dank euren Beuträgen könnte ich das nun Theoretisch, nur wenn ich es Praktisch mache dann geht mein Opendialog ( habe ihn auch nur aus nem Sample Kopiert) leider nicht mehr.

Und den Brauche ich unbedingt da ich sonst ja keine Level's laden kann.

Weis einer woran das liegt das der Dialog 1 a Functioniert wenn ich in Fenster Modus bin und der Dialog mal so gut wie gar nicht geht wenn ich im Fullscreen Mode bin.

Momentan sehe ich mich eher gezwungen einen eigenen Dialog mit OpenGL zu bauen, aber Lust habe ich eigentlich keine da das Spiel die Hauptaufgabe sein hätte sollen und nicht der Dialog.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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