Bom dia a todos, estou criando uma window por código más o botão fechar não está funcionando! alguem pode me dar uma ajudinha! Código: DEFINE VAR Win-foto AS WIDGET-HANDLE NO-UNDO. DEFINE IMAGE Foto-max FILENAME "adeicon/blank":U SIZE 79.5 BY 15.5. DEFINE FRAME Frame-foto Foto-max AT ROW 1 COL 1 WIDGET-ID 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 80 BY 16 WIDGET-ID 100. /* ************************* Create Window ************************** */ IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW Win-foto ASSIGN TITLE = "Visualização Foto" HEIGHT = 16 WIDTH = 80 MAX-HEIGHT = 16 MAX-WIDTH = 80 VIRTUAL-HEIGHT = 16 VIRTUAL-WIDTH = 80 RESIZE = no SCROLL-BARS = no STATUS-AREA = no KEEP-FRAME-Z-ORDER = yes THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE Win-foto = CURRENT-WINDOW. /* END WINDOW DEFINITION */ /* ************************ Control Triggers ************************ */ ON END-ERROR OF Win-foto OR ENDKEY OF Win-foto ANYWHERE DO: /* This case occurs when the user presses the "Esc" key. In a persistently run window, just ignore this. If we did not, the application would exit. */ IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. END. ON WINDOW-CLOSE OF Win-foto DO: /* This event will close the window and terminate the procedure. */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(Win-foto) THEN DELETE WIDGET Win-foto. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. RETURN NO-APPLY. END. /* *************************** Main Block *************************** */ /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */ ASSIGN CURRENT-WINDOW = Win-foto THIS-PROCEDURE:CURRENT-WINDOW = Win-foto. /* Best default for GUI applications is... */ PAUSE 0 BEFORE-HIDE. MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: VIEW FRAME Frame-foto IN WINDOW Win-foto. ENABLE Foto-max WITH FRAME Frame-foto IN WINDOW Win-foto. /* Foto-max:LOAD-IMAGE(dm-visitante.path_foto). */ Foto-max:LOAD-IMAGE("C:\TesteFoto\111.jpg"). VIEW Win-foto. END. END PROCEDURE. [CODE]
Veja se te ajuda! DEFINE VAR Win-foto AS WIDGET-HANDLE NO-UNDO. DEFINE IMAGE Foto-max FILENAME "adeicon/blank":U SIZE 79.5 BY 15.5. DEFINE FRAME Frame-foto Foto-max AT ROW 1 COL 1 WIDGET-ID 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 80 BY 16 WIDGET-ID 100. /* ************************* Create Window ************************** */ IF SESSIONISPLAY-TYPE = "GUI":U THEN CREATE WINDOW Win-foto ASSIGN TITLE = "Visualização Foto" HEIGHT = 16 WIDTH = 80 MAX-HEIGHT = 16 MAX-WIDTH = 80 VIRTUAL-HEIGHT = 16 VIRTUAL-WIDTH = 80 RESIZE = no SCROLL-BARS = no STATUS-AREA = no KEEP-FRAME-Z-ORDER = yes THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE Win-foto = CURRENT-WINDOW. /* END WINDOW DEFINITION */ /* ************************ Control Triggers ************************ */ ON END-ERROR OF Win-foto OR ENDKEY OF Win-foto ANYWHERE DO: /* This case occurs when the user presses the "Esc" key. In a persistently run window, just ignore this. If we did not, the application would exit. */ IF THIS-PROCEDUREERSISTENT THEN RETURN . END. ON WINDOW-CLOSE OF Win-foto DO: /* This event will close the window and terminate the procedure. */ IF SESSIONISPLAY-TYPE = "GUI":U AND VALID-HANDLE(Win-foto) THEN DELETE WIDGET Win-foto. IF THIS-PROCEDUREERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN. END. /* *************************** Main Block *************************** */ /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */ ASSIGN CURRENT-WINDOW = Win-foto THIS-PROCEDURE:CURRENT-WINDOW = Win-foto. /* Best default for GUI applications is... */ PAUSE 0 BEFORE-HIDE. MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: VIEW FRAME Frame-foto IN WINDOW Win-foto. ENABLE Foto-max WITH FRAME Frame-foto IN WINDOW Win-foto. /* Foto-max:LOAD-IMAGE(dm-visitante.path_foto). */ /*Foto-max:LOAD-IMAGE("C:\TesteFoto\111.jpg").*/ VIEW Win-foto. WAIT-FOR CLOSE OF THIS-PROCEDURE. END.
Boa tarde Pessoal, Para não abrir outro tópico por ser parecido o assunto, resolvi escrever aqui mesmo. Estou com um problema, na verdade nunca fiz e gostaria de uma dica de onde começar. Estou criando um botão via UPC, e para posicionar o botão peguei o handle de um botão já existente na tela, até aí tudo bem. Mas a tela pode ser Maximizada, e com isso o meu botão que criei via UPC não reposiciona, fica no meio da tela. Como posso resolver essa situação?
Boa tarde, eu já tive este problema e já o resolvi, mas não lembro como e nem tenho como consultar! kkkk mas lembro que sempre que havia uma iteração com a tela o botão criado recebia a posição e tamanho do original! Desculpe não pode ser mais preciso! rsrsr