Español
Bugs y vermeintliche

XProfan X2

GroupBox überlagert UpDown-Control uno Spin-Edits, no aber Edit-Feld

 

Nico
Madysa

 $H Windows.ph
cls
var Largo upDownIsVisible = Crear("SpinEdit", %hWnd, "0;0;10", 25, 25, 100, 20)
var Largo hidesUpDownControlsAfterIt = Crear("GroupBox", %hWnd, "a", 0, 0, 200, 200)
var Largo upDownIsHidden = Crear("SpinEdit", %hWnd, "0;0;10", 25, 50, 100, 20)
Crear("Text", %hWnd, "Press any key to repair the second spin edit", 230, 5, 100, 100)
waitinput
RescueLostUpDown(upDownIsHidden)
waitinput
end

proc RescueLostUpDown

    parámetros Largo spinEdit
    ' Retrieve handle of updown control
    var Largo theLostOne = GetHandle(%hWnd, ItemID(spinEdit) + 1)
    ' move groupbox behind updown control
    ~SetWindowPos(hidesUpDownControlsAfterIt, theLostOne, 0, 0, 0, 0, ~SWP_NOMOVE | ~SWP_NOSIZE)
    ' this line shouldn't even be necessary.
    SendMessage(theLostOne, $469, spinEdit, 0)' UDM_SETBUDDY

ENDPROC






Man beachte, dass el UpDown-Control en el ersten Bild siempre todavía como es.
Lo kann angeklickt voluntad, IsWindowEnabled  y IsWindowVisible  liefern beide true , el einzig Auffälige es, dass el Nutzer no sehen kann.

14 kB
Kurzbeschreibung: Ventana antes el Tastendruck
Hochgeladen:20.02.2014
Ladeanzahl156
Descargar
15 kB
Kurzbeschreibung: Ventana después de el Tastendruck
Hochgeladen:20.02.2014
Ladeanzahl152
Descargar
 
20.02.2014  
 




E.T.
it's not a bug, it's a feature 
...
var Largo upDownIsVisible = Crear("SpinEdit", %hWnd, "0;0;10", 25, 25, 100, 20)
var Largo upDownIsHidden = Crear("SpinEdit", %hWnd, "0;0;10", 25, 50, 100, 20)
var Largo hidesUpDownControlsAfterIt = Crear("GroupBox", %hWnd, "a", 0, 0, 200, 200)
...

... y ya passt lo
 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
20.02.2014  
 




Nico
Madysa
Dieser Método el Problemlösung bin Yo durchaus bewusst. Deswegen Yo el beiden SpinEdits en mi Ejemplo así angeordnet: Um a zeigen, dass lo el Groupbox es, que en el Z-Achse zwischen Editar y UpDown-Control mogelt.

Mir fällt lo sólo gelinde dijo schwer, una Anwendungsbereich para así una "Feature" para encontrar.

Außerdem fühlt lo no gerade konsistent a, dass el Groupbox en el Z-Achse gerade zwischen zwei muy stark  zusammengehörige Controls schiebt.

Außerdem  se el Code auch no gerade lesbarer, si todos Groupboxen después de allen Spinedits ereugt voluntad.

Außerdem ha mich dieser Mist mehrere Stunden Debugging gekostet y ha me moderat aufs Gemüt geschlagen.
 
21.02.2014  
 




E.T.
Hm, el el UpDown-Control después de el RescueLostUpDown  en el Editar des SpinEdits liegt es aber auch no Sinn el el Sache, oder
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
21.02.2014  
 




Nico
Madysa
Lo liegt no en el Editar-Feld, pero el Editar campo se verkürzt, en Platz para el UpDown-Control a hacer. ¿Puede du nachprüfen, en el du el Message mehrmals versendest. Das MSDN [...] sagt auch:


An up-down control with the UDS_ALIGNLEFT or UDS_ALIGNRIGHT style aligns with the left or right edge of its buddy window. The width of the buddy window is decreased to accommodate the width of the up-down control.


Und klar es sólo una muy krude Solución. Für mich funktioniert ellos aber, porque Yo para mein größenveränderbares Ventana sowieso regelmäßig SetWindowPos  el Editar campo anwenden muss y el UpDown-Control esta igual con en el Rechnung einbeziehen kann.
' Ausschnitt: mainwindow.inc
/* <...> */

proc ?_Init

    /* <...> */
    Ventana x, y - dx, dy
    /* <...> */
    ?_form.intervalEdit& = Crear("SpinEdit", %hWnd, intervalEditCaption, 0, 0, 0, 0)
    ?_intervalUpDown = GetHandle(%hWnd, ItemID(?_form.intervalEdit&) + 1)
    /* <...> */
    ' Workaround for updown control being overlaid by groupbox!
    SetWindowPos(mainwindow.advancedGroup, mainwindow.intervalUpDown, 0, 0, 0, 0, ~SWP_NOSIZE | ~SWP_NOMOVE)
    /* <...> */
    Subclass %hWnd, 1

ENDPROC

/* <...> */

proc ?_AdjustContents

    parámetros Largo width, height
    declarar Largo currentX, currentY, currentHeight
    /* <...> */
    var Largo tracker = BeginDeferWindowPos(controlCount)
    casenot tracker: volver 0
    /* <...> */
    ' Das Editar campo nimmt hier el gesamte a
    ' Disposición stehende Breite una.
    tracker = DeferWindowPos(tracker, ?_form.intervalEdit&, 0, \
    currentX, currentY, groupInnerWidth, editHeight, flags)
    /* <...> */
    var Int resultado = EndDeferWindowPos(tracker)
    ' Hier se el Editar campo así verkürzt, dass el UpDown-Control genug Platz ha.
    SendMessage(?_intervalUpDown, ~WM_USER + $69, ?_form.intervalEdit&, 0)' UDM_SETBUDDY
    volver resultado

ENDPROC


Dass en una SetWindowPos  el SpinEdit el zugehörige UpDown-Control no  mitverschoben se, es todavía así una Gag, el Todavía no veces erwähnt habe ...
 
21.02.2014  
 




RGH
Dummerweise son beide Controls getrennte Controls y el una weiß nichts vom otro. Nur el Programmierer incluso, weiß, dass ellos zusammengehören.
Yo sehe como en el Moment no sinnvolle Möglichkeit, el con erträglichem Aufwand a ändern.

Saludo
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.09.2014  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.641 Views

Untitledvor 0 min.
KJ06.12.2015
Heltal04.11.2015
XpKurt21.01.2015
Sascha Haak20.01.2015
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

Nico Madysa (3x)
E.T. (2x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie