Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form setzt sich nicht wie angegeben (https://www.delphipraxis.net/88288-form-setzt-sich-nicht-wie-angegeben.html)

EWeiss 13. Mär 2007 10:01


Form setzt sich nicht wie angegeben
 
Warum setzt sich meine Form nicht auf die von mir aus einer
anderen *.pas übergebenen position.

Ich möchte das sich diese auf die größe meines Viewport setzt.

Delphi-Quellcode:
procedure ReSizeGLScene(glsWidth : GLsizei; glsHeight: GLsizei);
begin
    If glsHeight = 0 Then                    // Prevent A Divide By Zero By
        glsHeight := 1;                      // Making Height Equal One

    glViewport(0, 0, glsWidth, glsHeight);   // Reset The Current Viewport
    glMatrixMode(GL_PROJECTION);             // Select The Projection Matrix
    glLoadIdentity;                          // Reset The Projection Matrix

    gluPerspective(45, glsWidth / glsHeight, 0.1, 100);
    glMatrixMode(GL_MODELVIEW);               // Select The Modelview Matrix
    glLoadIdentity;                           // Reset The Modelview Matrix
    fWidth := glsWidth;
    fHeight := glsHeight;

    if not assigned(VisForm) then
      VisForm := TVisForm.Create(nil);

    VisForm.width := fWidth;
    VisForm.height := fHeight;
End;
Der Viewport nimmt die richtige größe an die Form aber nicht.

gruss Emil

himitsu 13. Mär 2007 10:09

Re: Form setzt sich nicht wie angegeben
 
ist in deiner Form eventuell etwas enthalten, welches den ert nachher (z.B. beim Anzeigen) ändern könnte?

Code im OnCreate, OnShow, OnActiate, OnResize ...

oder etwas in den Eigenschaften der Form:
wie Position <> poDesigned (welches z.B. die Position beim ersten Anzeigen nochmals ändert)
...



Ist das auch noch so, wenn du ReSizeGLScene nach dem Erstellen und Anzeigen der Form aufrufst?

EWeiss 13. Mär 2007 10:17

Re: Form setzt sich nicht wie angegeben
 
Zitat:

Zitat von himitsu
ist in deiner Form eventuell etwas enthalten, welches den ert nachher (z.B. beim Anzeigen) ändern könnte?

Code im OnCreate, OnShow, OnActiate, OnResize ...

oder etwas in den Eigenschaften der Form:
wie Position <> poDesigned (welches z.B. die Position beim ersten Anzeigen nochmals ändert)
...



Ist das auch noch so, wenn du ReSizeGLScene nach dem Erstellen und Anzeigen der Form aufrufst?

Jo das ist ja mein problem!
Selbst wenn die Form schon sichtbar ist positioniert sie sich nicht neu.
Nur der Viewport wird geändert

Habs mit ClientWidth , Width versucht. Tut sich nichts.

gruss Emil

himitsu 13. Mär 2007 10:36

Re: Form setzt sich nicht wie angegeben
 
Hast du vielleicht die Größe begrenzt?
z.B.: VisForm.Constraints (im OI, oder anderswo)

EWeiss 13. Mär 2007 10:39

Re: Form setzt sich nicht wie angegeben
 
Zitat:

Zitat von himitsu
Hast du vielleicht die Größe begrenzt?
z.B.: VisForm.Constraints (im OI, oder anderswo)

Nein ist ein ToolWindow mit resize eigenschaft.
Die Winproc ändert nur den Vieport also den bereich auf dem gezeichnet wird
innerhalb der form.

Resitzen tut sich die Form, selbst nach aufforderung, aber nicht.

gruss

himitsu 13. Mär 2007 11:04

Re: Form setzt sich nicht wie angegeben
 
tja, nun gehn mir auch langsam die Ideen aus :oops:

matashen 13. Mär 2007 11:14

Re: Form setzt sich nicht wie angegeben
 
Hallo,

Du könntest es mal testweise probieren ob sich was mit der API-Funktion Sendmessage tut

Delphi-Quellcode:
SendMessage(deineform.handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
kannst ja mal probieren ob sich das Fenster ,maximiert, wenn ja könntest du ja bei msdn nach der genauen sendmessage suchen um die Parameter für beliebeige größeneinstellung raus zu bekommen.

Gruß Matthias

[EDIT]

hab noch was gefunden. Vielleicht besser...
http://msdn.microsoft.com/library/de...twindowpos.asp

EWeiss 13. Mär 2007 12:41

Re: Form setzt sich nicht wie angegeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von matashen
Hallo,

Du könntest es mal testweise probieren ob sich was mit der API-Funktion Sendmessage tut

Delphi-Quellcode:
SendMessage(deineform.handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
kannst ja mal probieren ob sich das Fenster ,maximiert, wenn ja könntest du ja bei msdn nach der genauen sendmessage suchen um die Parameter für beliebeige größeneinstellung raus zu bekommen.

Gruß Matthias

[EDIT]

hab noch was gefunden. Vielleicht besser...
http://msdn.microsoft.com/library/de...twindowpos.asp

Danke für die Infos und ratschläge.

Habe herausbekommen woran es liegt ..
Der Urheber war mein BassVis AddOn dieses hat immer die einstellungen ´von meinen Vis_Plugin
mißachtet weil eine Abfrage 'IPC_SETVISWND' im AddOn gefehlt hat.

jetzt läufts ;)
Show pic .. mein neues OpenGl Plugin (nicht das beschwerden kommen) dann muss ich es direkt wieder löschen!


gruss Emil


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