1. Diese Seite verwendet Cookies. Wenn Sie sich weiterhin auf dieser Seite aufhalten, akzeptieren Sie unseren Einsatz von Cookies. Weitere Informationen

Skript Dialoggröße anpassen

Dieses Thema im Forum "Skriptingbereich" wurde erstellt von Mecki14, 08.03.17.

  1. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Normalerweise entspricht beim FF-Skriptdialoge 1 unit 2 px. Ein Freund von mir hat aber einen Monitor bei dem 1 unit 2,5 px entspricht. Ich habe versucht eine automatische Größenanpassung des Dialogs und der Steuerelemente zu programmieren. Es ist mir nicht gelungen.

    Kann mir jemand von den Skriptern helfen? Am schönsten wäre ein Beispielskript.
     
  2. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Hallo,
    da gab's mal eine Funktion, um die Dialog-Unitgröße zu ermitteln. Hatte was mit Windows-API zu tun. Mit dem Dialogeditor habe ich aber dann nicht mehr darauf geachtet und ich finde die Funktion nun nicht mehr...
     
  3. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Doch noch gefunden:
    Code:
     Public Sub GetDlgUnits(ByRef dlgXFaktor, ByRef dlgYFaktor)
     Const SM_CXSCREEN = 0
     Const SM_CYSCREEN = 1
     Const SM_CYCAPTION = 4
     Const SM_CXDLGFRAME = 7
     Const SM_CYDLGFRAME = 8
     Const SM_CXFULLSCREEN = 16
     Const SM_CYFULLSCREEN = 17
     Dim lUnits
     Dim lxScale
     Dim lyScale
     lUnits = CLng(FF_GetDialogBaseUnits())
     lxScale = lUnits And 65535
     lyScale = lUnits \ 65536
     dlgXFaktor = lxScale / 8
     dlgYFaktor = lyScale / 16
     End Sub
    
     
  4. praetor

    praetor Mitglied

    Dabei seit:
    24.10.04
    Beiträge:
    2.033
    Zustimmungen:
    1
  5. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Vielen Dank für die Antworten, aber wie kann ich einen vorhandenen Dialog mit seinen Steuerelementen anpassen?
     
  6. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Koordinaten mit den Werten multiplizieren
     
  7. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Da bin ich auch gerade drauf gekommen - und es funktioniert. Nochmals danke!
     
  8. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Die Konstanten kannst du dir sparen. Die Daten wurden vorher mit einer anderen Funktion abgerufen. Ist noch ein Überbleibsel davon.
     
  9. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Zum Eintragen der Faktoren in einen vorhandenen Dialogtext habe ich ein kleines FF-Hilfsskript erstellt. Die Vorgehensweise ist folgende:
    • Dialogtext in die Zwischenablage kopieren
    • Skript Dialoganpassung aufrufen
    • Nach 'Start' befindet sich der Dialogtext mit den Faktoren in der Zwischenablage
    Vielleicht kann einer der Skripter das mal gebrauchen, denn es kann bei umfangreichen Dialogen sehr mühsam sein die Faktoren manuell einzutragen.
     

    Anhänge:

  10. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Mit den Faktoren klappt die Anpassung gut bis auf die Länge von Texten, ausgegeben beispielsweise mit dem STATIC-Element. Da muss man von vornherein reichlich Platz einkalkulieren.

    Aber ich habe plötzlich ein anderes Problem:
    Bei umfangreichen Dialogen kann ich die Größe nicht mehr ändern. Welche Werte auch immer ich in FF_AddDialog definiere - die Darstellung des Dialogs erfolgt immer in gleicher Größe.
    Kennt jemand dieses Phänomen? Was kann die Ursache sein und wie beseitigt man das Problem?
     
  11. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Wohl mehrfach definiert und mit On Error Resume Next den Fehler übergangen?
     
  12. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Nein, das ist es leider nicht.
     
  13. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Hm, habe nichts mehr groß mit Dialogen gemacht. Aber alle werden korrekt in der richtigen Größe angezeigt, soweit ich es beurteilen kann.
    Kann mir nur vorstellen, dass du irgendwo einen Denkfehler drin hast. Z. B. Variable vs. Konstante vs. String oder so.
    Solche Dinge können äußerst vertrackt sein, habe sie selber oft überlesen und bin fast verzweifelt daran. Irgendwann: Klick und man hat die Lösung. Meist eine Variablenschreibweise oder Ähnliches. Bin so fast an LittleCMS und dessen DLL-Definitionen gescheitert bis es endlich lief.
     
  14. Mecki14

    Mecki14 Mitglied

    Dabei seit:
    15.03.06
    Beiträge:
    2.417
    Zustimmungen:
    11
    Ich habe die Übeltäter.

    FF_SaveDialogState - Speichert die aktuelle Dialogposition
    FF_LoadDialogState - Lädt die letzte gespeicherte Dialogposition​

    Diese Befehle hatte ich irgendwann eingebaut. Mit FF_SaveDialogState wird anscheinend nicht nur die Position des Dialogs abgespeichert sondern auch dessen Größe. Mit FF_LoadDialogState wird dann wieder beides hergestellt.

    Ich warne hiermit dringend alle Skripter vor der Verwendung dieser Befehle.
     
  15. W.P.

    W.P. Mitglied

    Dabei seit:
    16.10.02
    Beiträge:
    4.911
    Zustimmungen:
    2
    Die kenne ich gar nicht. Aber egal. Wenn man weiß, dass es sie gibt, kann man sie ja auch sinnvoll einsetzen. Nach der Neuinstallation muss man halt erst mal einen Reset fahren, wenn man an der Dialoggröße was geändert hat.
     

Diese Seite empfehlen