Stackgröße Windows

Startseite Foren Deutsches LiveCode-Forum Stackgröße Windows

Schlagwörter: 

Ansicht von 10 Antwort-Themen
  • Autor
    Beiträge
    • #6256
      pustewind
      Teilnehmer

      Hallo zusammen,

      hab mal wieder eine Frage 🙂

      Ich habe im Stack die Fenstergröße auf 1400 x 800 eingestellt und bei resizable ist der Haken drin.
      Außerdem habe ich das Browser-Widget ebenfals auf 1400 x 800 eingestellt. Das Ganze läuft unter Windows7. Soweit so gut.

      Jetzt meine Frage:

      Wenn der User die Fenstergröße an seinen Bildschirm anpasst bleibt das Browser-Widget auf seiner ursprünglichen Größe – was so nicht gewünscht ist. Wie muss ich es anstellen das sich das Browser-Widget automatisch an die Fenstergröße anpasst ?

      Vielen Dank für Eure Hilfe

    • #6258
      Klaus Major
      Verwalter

      Hallo pustewind,

      entschuldige bitte die Verspätung, ich war noch im Bad! 😀

      OK, das ist simpel, Du musst ein „resizestack“ Skript hinzufügen.
      Pack das ins Skript der Karte mit dem Browser:

      on resizestack
        set the rect of widget "Dein Browser Widget hier..." to the rect of this cd
      end resizestack

      Es kommen bei „resizestack“ noch vier Parameter (neueBreite,neueHöhe,alteBreite,alteHöhe) mit,
      aber die brauchen wir in Deinem Fall hier nicht.

      Da funktioniert übrigens auch bei „Stackgröße Mac/Linux“ 😉

      Gruß

      Klaus

    • #6260
      pustewind
      Teilnehmer

      Hallo Klaus,

      vielen Dank für deine schnelle Antwort – das hat schon mal super funktioniert.
      Jetzt müsste ich aber den TOP-Wert (ober Abstand zum Fenster) auf einen festen Wert setzen (60).
      ist das möglich?

      Gruß

      pustewind

    • #6262
      Klaus Major
      Verwalter

      Ja, das ist möglich.

    • #6264
      Klaus Major
      Verwalter

      Kleiner Scherz, aber es ist wichtig, daß Du alles genau verstehst und nicht einfach „abschreibst“.

      Was definiert „the rect of this cd“?
      Das sind vier Koordinaten x1, y1, x2, y2 in einem XY Koordinatensystem, wobei x1 und y1 die obere linke Ecke definieren, und dementsprechend x2 und y2 die untere rechte Ecke definieren.

      Bei einer Karte (= Stack) ist das immer 0,0, Breite der Karte, Höhe der Karte.

      Also wo müsstest du nun ansetzen, um beim Browser OBEN einen Abstand von 60 Pixel zum oberen Fensterrand zu erzeugen?

      Um bei Deinem Beispiel zu bleiben, was müsste das Rect des Browser sein, wenn die Karte 0,0,1400,800 hat?

    • #6266
      Klaus Major
      Verwalter

      Ein weiterer Hinweis:
      xy = links
      y1 = oben
      x2 = rechts
      y2 = unten

      Ich weiß, Du hasst mich dafür! 😀

    • #6268
      pustewind
      Teilnehmer

      Hallo Klaus,

      alles gut – sehe ich genau so 🙂

      ich würde sagen 0,60,1400,800

      bin auch schon am testen aber es will nicht…

      on resizestack
      set the rect of widget „browser1“ to the rect of this (0,60,1400,800)
      end resizestack

    • #6270
      Klaus Major
      Verwalter

      the rect of this(0,60,1400,800)
      Echt jetzt? Du musst zugeben, daß Dir das selber komisch vorkommt. 🙂

      Das geht natürlich nicht so, wir müssen das vorhandene RECT zuerst bearbeiten und dann für den Browser setzen. Hinweis:

      put the rect of this cd into tRect
      add 60 to item X of tRect
      set the rect of widget „…“ to tRect

      Was ist X hier?

      Es gibt hier mehrere Möglichkeiten, das gewünschte RECT zusammen zu basteln.
      Du weisst ja nun schon wie LINKS und OBEN definiert werden muss und ich habe Dir erzählt, was ein RECT definiert.

      Du schaffst das schon 🙂

    • #6272
      pustewind
      Teilnehmer

      Danke Klaus :-;

      on resizestack
      set the rect of widget „browser1“ to the rect of this cd
      put the rect of this cd into tRect add 60 to item 2 of tRect
      set the rect of widget „browser1“ to tRect
      end resizestack

      Gruß

      pustewind

    • #6274
      Klaus Major
      Verwalter

      Naja, fast 🙂

      on resizestack
        ## Unnötig, der User könnte sogar ein kurzes Aufblitzen sehen!
        ## set the rect of widget "browser1" to the rect of this cd
        put the rect of this cd into tRect 
        ## Das muss natürlich in eine neue Zeile
        add 60 to item 2 of tRect
        ## Jetzt das Rect setzen
        set the rect of widget "browser1" to tRect
      end resizestack

      Eine weitere Möglichkeit, die die mitgelieferten Parameter nutzt:

      on resizestack neueB,neueH,alteB,alteH
        put "0,60," & neueB & "," & neueH into tRect
        set the rect of widget "browser1" to tRect
      end resizestack

      Capisce?

    • #6276
      pustewind
      Teilnehmer

      Hallo Klaus,

      ja so ist es perfekt 🙂 – vielen Dank!

      Variante 1 gefällt mir irgendwie besser – finde ich übersichtlicher.

      Gruß

      pustewind

Ansicht von 10 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.