EvtPosChanged
EvtPosChanged
Änderung der Position/Größe des Objekts
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aRect:
rectGröße des Fensters - aClientSize:
pointGröße des Client-Bereichs - aFlags:
intAktion - Resultat:
logicWird nicht ausgewertet - Siehe: Liste , Objekte , Ereignisbefehle
Das Ereignis wird ausgelöst, wenn das Objekt in der Position oder Größe verändert wird. Dieses Ereignis dient der Anpassung bzw. Ausrichtung von Unterobjekten des auslösenden Objekts.
Befindet sich in einem Frame -Objekt ein FrameClient -Objekt, wird das Ereignis bis einschließlich zur Version 5.7.08 nicht beim Frame , sondern nur beim FrameClient ausgelöst. Um das Ereignis beim Frame -Objekt auszulösen, muss das Ereignis beim Frame -Objekt gesetzt, und der Dialog nach der 5.7.08 erneut gespeichert worden sein. Dynamisch erzeugte Dialoge müssen nicht gespeichert werden.
Definition des Funktionskopfs:
sub EvtPosChanged
(
aEvt : event; // Ereignis
aRect : rect; // Größe des Fensters
aClientSize : point; // Größe des Client-Bereichs
aFlags : int; // Aktion
)
: logic; // Wird nicht ausgewertet
{
return(true);
}
aEvt
Die Funktion hat einen Übergabeparameter vom Typ event. In aEvt wird unter anderem der Deskriptor des auslösenden Objekts, d. h. das Objekt, in dem die Ereignisfunktion eingetragen wurde, übergeben.
aRect
In aRect werden die neuen Ausmaße des Objekts angegeben. Dies sind die Außenmaße des Objekts (bei einem Frame zum Beispiel inklusive Rand, Titel usw.). Wird das Fenster minimiert stehen in left und top - 32000.
aClientSize
In aClientSize wird die Größe des Innenbereichs des Objektes übergeben. Bei Frame -Objekten ist der Innenbereich die Größe des Fensters abzüglich der Titel- und Menüleiste, sowie des Randes. Die neue Breite und Höhe sind die entscheidenden Werte zur Positionierung und Größenveränderung von untergeordneten Objekten. Sichtbare Objekte müssen zwischen den Werten ( 0 , 0 ) und x liegen.
aFlags
Hier wird die Aktion angegeben, welche durchgeführt wurde:
_WinPosSized: Objekt wurde in der Größe geändert_WinPosMoved: Objekt wurde verschoben_WinPosMinimized: Objekt wurde minimiert_WinPosMaximized: Objekt wurde maximiert
Resultat
Der Rückgabewert der Funktion wird nicht ausgewertet.
Eine Veränderung des auslösenden Objektes darf nicht in dieser Funktion erfolgen, da es sonst zu Rekursionen kommt.
Beispiel:
sub EvtPosChanged
(
aEvt : event; // Ereignis
aRect : rect; // Größe des Fensters
aClientSize : point; // Größe des Client-Bereichs
aFlags : int; // Aktion
) : logic; // Wird nicht ausgewertet
local
{
tFrame : int;
tObject : int;
tRect : rect;
}
{
if (aFlags & _WinPosSized != 0)
{
tObject # aEvt:obj->WinInfo(_WinFirst);
// Objekt anpassen
if (tObject > 0)
{
tRect # tObject->wpArea;
tRect:right # aClientSize:x - 16;
tRect:bottom # aClientSize:y - 16;
tObject->wpArea # tRect;
}
}
...
return(true);
}