Startseite › Foren › Deutsches LiveCode-Forum › Grröße Stack › Antwort auf: Grröße Stack
April 15, 2020 um 09:43 Uhr
#20159
Hi Oliver und Klaus,
aufgrund von Klaus Vorschlag mit RECT habe ich habe gestern zwei Handler gebaut, die das Problem lösen:
Hier ist der Code, der in das Stack-Skript kopiert wird:
-------------------------------------------------------------------
-- Diese Konstante bestimmt den Namens-Prefix für die
-- Stack-Properties. Dieser Name ist im Prinzip beliebig
-- und kann nach eigenem Ermessen/Geschmack geändert werden.
constant kSizePrefix = "Sizeposition_"
-------------------------------------------------------------------
command save_control_positions
## Ermittlung der aktuellen Größe des Fensters, um den Größenparameter zu setzen
put the width of this stack & "_" & the height of this stack into tActualSize
## Name für die Größen-Property erstellen, z.B. "Sizeposition_800_400"
put kSizePrefix & tActualSize into tSizeProperty
## Speicherung der aktuellen Position und Größe jedes Bedienelements /Control)
repeat with i = 1 to the number of controls of the current card
set the tSizeProperty of control i to the rect of control i
end repeat
end save_control_positions
-------------------------------------------------------------------
command set_control_positions pSize
put kSizePrefix & pSize into tSizeProperty
put the tSizeProperty of control 1 into tNewSize
if tNewSize is empty then
put the customKeys of control 1 into tCustomProperties
filter lines of tCustomProperties with kSizePrefix & "*"
replace kSizePrefix with empty in tCustomProperties
if tCustomProperties is empty then
answer "Keine Auflösungen verfügbar!"
exit set_control_positions
else
put empty into tButtonListe
repeat for each line i in tCustomProperties
put quote & i & quote & " OR " after tButtonListe
end repeat
put "Cancel" after tButtonListe
put "answer " & quote & "Folgende Auflösungen sind verfügbar:" & quote && " with" && tButtonListe into tAuswahl
do tAuswahl
if it is "Cancel" then
exit set_control_positions
else
set_control_positions it
end if
end if
else
put the loc of this stack into tStackLoc
set itemdelimiter to "_"
set the width of this stack to item 1 of pSize
set the height of this stack to item 2 of pSize
set the loc of this stack to tStackLoc
repeat with i = 1 to the number of controls of the current card
set the rect of control i to the tSizeProperty of control i
end repeat
end if
end set_control_positions
-------------------------------------------------------------------
Freue mich auch Kommentare!
LG
Torsten