Página 1 de 1
Uma função p/ o sistema todo como salvar as telas
Enviado: 31 Ago 2009 21:55
por jcsprog
tenho uma main()
e uma função que utilizo en todas as telas gostaria de saber como utilizar esta função salvando a tela que estou no momento pois , dela tambem tem uma define windows opcao , so que quando chamada retorna na main() principal e depois que escolha a opção ela retorna na tela que estava
agradeço a atenção
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 31 Ago 2009 22:11
por Maligno
Não entendi a questão. Pode explicar melhor?
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 01 Set 2009 11:36
por sygecom
Realmente ficou um pouco complicado de entender, nós de mais detalhes para poder lhe ajudar.
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 03 Set 2009 23:06
por jcsprog
uso a funcao da biblioteca minigui msoptions={ } , informo mensgens e opcoes tudo ok funciona e devolve o botao selecionado numerico sem problema so que quando estou em outra tela a nao ser main() ao chamar a funcao ele retorna p/ a main() ativa a funcao quando seleciono o botao alterar ele volta p/ a tela de cadastro que que ele fique na tela que fou chamado olha a funcao :
agradeco a ajuda
Código: Selecionar todos
#Include "minigui.ch"
/*
* MsgOptions([cText], [cTitle], [cImage], aOptions, [nDefaultOption], [nSeconds])
*/
Function MsgOptions(cText, cTitle, cImage, aOptions, nDefaultOption, nSeconds )
Local nItem:=0, nBtnWidth:=0, aBtn:=Array(Len(aOptions)), aImgInfo
Local nBtnPosX:=10, nBtnPosY:=85, cOption:=""
Default cText To "SELECIONE UMA OPÇÃO"
Default cTitle To "P E S Q U I S A "
Default cImage To ""
Default nDefaultOption To 1
Default nSeconds To 0
DEFINE FONT _Font_Options FONTNAME "MS Sans Serif" SIZE 11
//Calcular anchura máxima de un botón para igualarlos todos
For nItem:=1 To Len(aOptions)
aOptions[nItem]:=Alltrim(aOptions[nItem])
nBtnWidth:=Max( GetTextWidth(, aOptions[nItem], GetFontHandle("_Font_Options")), nBtnWidth )
Next
nBtnWidth+=5
DEFINE WINDOW _Options ;
AT 0,0 ;
WIDTH (Len(aOptions)*(10+nBtnWidth))+15 ;
HEIGHT 155 ;
TITLE cTitle ;
ICON "BUSCAR.ICO" ;
MODAL ;
NOSIZE ;
ON RELEASE IF( IsControlDefined( Timer_1, _Options ), _Options.Timer_1.Release, )
ON KEY ESCAPE ACTION _Options.Release
If !Empty(cImage)
aImgInfo := BmpSize(cImage)
If !Empty(aImgInfo [BM_WIDTH])
@ 20, 10 IMAGE _Image PICTURE (cImage) WIDTH aImgInfo [BM_WIDTH] HEIGHT aImgInfo [BM_HEIGHT]
@ 40, 55 LABEL _Label VALUE cText WIDTH (Len(aOptions)*(10+nBtnWidth))-50 HEIGHT 30 ;
TRANSPARENT CENTERALIGN FONT "_Font_Options"
Endif
Else
@ 40, 10 LABEL _Label VALUE cText WIDTH (Len(aOptions)*(10+nBtnWidth))-10 HEIGHT 30 ;
TRANSPARENT CENTERALIGN FONT "_Font_Options"
Endif
For nItem:=1 To Len(aOptions)
aBtn[nItem]:="_Btn_"+Ltrim(Str(nItem))
cOption:=aBtn[nItem]
@ nBtnPosY, nBtnPosX BUTTON &cOption CAPTION aOptions[nItem] WIDTH nBtnWidth HEIGHT 25 FONT "_Font_Options" ;
ACTION ( cOption:=GetProperty("_Options", This.Name, "Caption"), _Options.Release )
nBtnPosX+=nBtnWidth+10
Next
DoMethod("_Options", aBtn[nDefaultOption], "SetFocus")
If nSeconds>0
DEFINE TIMER Timer_1 Interval nSeconds*1000 ;
ACTION ( cOption:=aOptions[nDefaultOption], _Options.Release )
Endif
END WINDOW
CENTER WINDOW _Options
ACTIVATE WINDOW _Options
RELEASE FONT _Font_Options
Return Ascan(aOptions,Alltrim(cOption))
---
Nota da Moderação (Maligno):
A presente mensagem foi editada para conversão do texto principal, originalmente escrito totalmente em MAÍUSCULAS, para letras minúsculas. Além disso, também foi necessário incluir o código postado entre as tags de indentação. Por favor, leia o conjunto de normas do fórum clicando aqui e dedique especial atenção à cláusula 7, que lembra que texto em MAIÚSCULAS é equivalente a GRITAR, o que pelas regras de netiqueta, universalmente aceita na Internet, é algo pior que péssimo. E por favor, no futuro, quando for postar código, tome o cuidado de postá-lo entre as tags de indentação, a fim de facilitar sua leitura. Ler o código alheio já é uma tarefa muito aborrecida. Sem a devida indentação, fica muito pior, o que naturamente acaba destimulando qualquer colega a ajudá-lo em seu problema.
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 04 Set 2009 14:13
por sygecom
Você não postou nada com botão ALTERA, para sabermos o que está sendo executado. Se está começando com Minigui olhe as pastas samples que tem muitos exemplos praticos.
E pelo que vi, você está querendo utilizar a minigui em linux, isso não é possivel, de uma olhada na Hwgui que é uma otima LIB e tem versão Linux.
telas em mingui
Enviado: 19 Set 2009 09:47
por jcsprog
estou usando harbour x minigui p/ windows
meu problema e o seguinte tenho uma
define main() chamo outra
define ped_1 que por ventura tem uma funcçao que esta uma funcao de opçoes , exemplo altera,
excluir ,retorna
funciona quando é chamada ela sai da define ped_1 , e aparece na main() , com os botoes e tudo ai escolho a
qualquer opção ela retorna p/ define pedi_1 , com as variaveis p/ alteração , funciona perfeitamente so
que nao pode volar para a tela do main() pois pretendo utilizala no sistema todo
a funcao que estou utilizando tirei dos exemplos da minigui / samples / basic / msgedit a funcao e msgoptions
agradeço a atenção
OBS: ja utilizei msgyes() funciona direitinho
jcsprog
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 20 Set 2009 01:13
por sygecom
Confesso que ainda não entendi muito bem o que você deseja fazer e onde esta o problema, testei o exemplo que citou e pareceu tudo certo, sem problema algum.
Mas mesmo assim vou tentar dar um palpipe, tire fora o _Options.Release que está no ACTION da função MsgOptions() que pelo que entendi é o que você esta querendo.
telas AGRADEÇO
Enviado: 20 Set 2009 13:18
por jcsprog
Nota da Moderação (Maligno):
O texto da presente mensagem foi APAGADO, uma vez que o texto foi redigido totalmente em letras MAIÚSCULAS. Aguardamos, portanto, que o colega reenvie sua mensagem, mas desta vez observando as regras do fórum, conforme JÁ HAVIA SIDO PEDIDO em sua segunda mensagem neste tópico.
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 20 Set 2009 14:51
por Maligno
<lock>
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 22 Set 2009 08:57
por jcsprog
fiz o que falou nao deu certo + percebi que ao retirar a modal da define funcionou gostaria de saber
qual melhor forma de trabaçhar com as defines depois da main() principal
agradeço a atenção
Re: Uma função p/ o sistema todo como salvar as telas
Enviado: 23 Set 2009 19:56
por sygecom
jcsprog escreveu:fiz o que falou nao deu certo + percebi que ao retirar a modal da define funcionou gostaria de saber
qual melhor forma de trabaçhar com as defines depois da main() principal
agradeço a atenção
Existe varias maneiras, como DIALOG Normal, modal, MDI e etc...Tudo depende de como você quer que cada uma delas execute, no caso de janelas MDI, você pode abrir varias vez a mesma janela dentro da Janela PAI(no seu exemplo a MAIN). Imagine a seguinte situação, que você tenha um cadastro de fornecedor que você abre um janela de cadastro e esta no meio do cadastro , você para esse cadastro no meio e começa um outro do zero sem perder as informações desse que parou no meio, isso é uma possibilidade das MDI de abrir diversas janelas, você teria que da uma estudada e testada em cada uma desses tipos de janelas disponíveis nessa LIB e ver a que melhor lhe serve ou usar um pouco de cada também, no caso da DIALOG normal ela não deixa sair da janela em quanto não fechar ela.
Uma agora entendi telas
Enviado: 24 Set 2009 17:40
por jcsprog
valeu obrigado