Jump to content

NelsonFS

uniGUI Subscriber
  • Posts

    108
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by NelsonFS

  1. Olá Flávio Dá para fazer sim! Tenho já projetos com dezenas de forms no unigui. Funciona bem, só que algumas coisas você terá que adaptar pois não funciona exatamente como no desktop. Mas tudo tem um jeito, é só se adaptar. te+
  2. Já pensei realmente em fazer esse conversor. Só que de uma forma diferente, seria dois clientdataset em memoria que salvaria os dados em arquivos .DAT. O segundo, teria relação com o primeiro, indicando para cada tipo de objeto, aquelas propriedades que seriam removidas ou definidas como padrão. Depois em cada form, seria incluso as classes do unigui. Para retirar as classes que não seriam mais necessárias, aí é mais complicado pois poder ter dezenas, então poderia sim ter uma configuração para listar as que seriam removidas. Por fim, recriaria a cláusula de inicialização, basta localizar a clausula de inicialização, colocar antes a variavel (corrigir a que estava) e depois da inicialização incluir o codigo que instância a variavel. Basicamente é isso. Se você quiser ver dessa forma, posso te dar uma mão. Não é tão difícil assim, nada que vários loops em um objeto memo que carregou os dados não resolva. Ou então fica como uma ideia. Abração..
  3. Hi, Everytime we recompile application, you must close in traybar and refresh browser page. The tip will automatically close application and start a new page in default browser. In Project, Options, Build Events,Pre-Build, write command: taskkill /F /IM program.exe /T procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject); begin if self.StandAloneServer then //if you need this, if not, remove it. ExploreWeb('http://localhost:8077'); //auto start browser end; procedure ExploreWeb(page:PChar); var Returnvalue: integer; begin ReturnValue := ShellExecute(0, 'open', page, nil, nil,SW_SHOWNORMAL); if ReturnValue <= 32 then begin case Returnvalue of 0 : MessageBox(0,'Error: Out of memory','Error',0); ERROR_FILE_NOT_FOUND: MessageBox(0,'Error: File not found','Error',0); ERROR_PATH_NOT_FOUND: MessageBox(0,'Error: Directory not found','Error',0); ERROR_BAD_FORMAT : MessageBox(0,'Error: Wrong format in EXE','Error',0); else MessageBox(0,PChar('Error Nr: '+IntToStr(Returnvalue)+' inShellExecute'),'Error',0) end; end; end; procedure TFMainForm.UniFormShow(Sender: TObject); begin //show frame/form to login only if we are not debuging... if (DebugHook = 0) then begin FLogin.ShowModal; ... end; end;
  4. Use attached unit to start and stop service by name. Functions_Services_u.rar
  5. try to adjust property AlignWithMargins in all objects
  6. Varias situações podem levar a esse tipo de erro. 1 - Acesso a pagina inicial/login com o banco já aberto. Na verdade deve ser aberto a conexão com o banco somente depois digitado o usuário e senha e dado em OK. Nesse caso, o usuário pode simplesmente ter deixado a tela aberta e não feito login, assim a sessão expira por não ter concluido. 2 - Atingido o tempo limite, passou muito tempo sem mexer no sistema, ai é desconectado automaticamente a sessão. Tente deixar uma sessão aberta muito tempo em uma máquina na mesma rede do servidor, sem mexer nela, até várias horas, depois veja se fechou. 3 - Excesso de conexões simultâneas, nesse caso, a demora em responder uma sessão por outras estarem sobrecarregando, expira a sessão que não esta pedindo uma tarefa, talvez por uma conexão lenta ou mesmo travamento da aplicação em determinado momento por estar fazendo uma tarefa pesada. 4 - Bug no sistema, pode ter alguma instrução que derrube a conexão por ter ocorrido uma excessão.. acredito que não seja seu caso. 5 - Parâmetros do windows/firewall, verifique se tem algo no sistema que possa estar derrubando. Tente deixar sem firewall por um tempo. Também outros programas como antispywares podem influenciar por filtrarem conexões TCP. 6 - Crie um teste pequeno: Crie um programa pequeno no UNIGUI que escute outra porta (logico) e verifique se ele também cai depois de várias conexões. Em resumo.. tem que verificar tudo.. te+
  7. Você poderia usar uma VPN. Existe softwares gratís que criam a mesma e outros que mantem ela conectada, caso caia. Assim você consegue até melhor compactação(velocidade) nas transmissões e segurança.
  8. dá uma olhada no meu post http://forums.unigui.com/index.php?/topic/1741-formatted-input-for-uniedit/ lá tem como formatar a mascara. t+
  9. Simple way to use Formatted Input Mask in 0.9x and 0.8x Open the attached project, read instructions in example. Long live to UniGui.. I love it!!! 2013-04-01 => Link's on!!! PrjMaskEdit.rar
  10. I really need this too !!! Please .. Zilav .. fix to 0.9 version!! Will be better if compatible with UniDBEdit
  11. when the fixes will come out? I need it very much. In a database is very important to have a search on the grid and save correctly in the database.
  12. That would be very interesting indeed. Send us an example ... how you did it! It would be nice to see working.
  13. try this.. unit Funcoes_Traducao_u; { Objetivo: Traduzir automaticamente todas as mensagens do inglês Motivo: O UniGUI da versão atual não tem função de localização das mensagens internas do Delphi No TUniServerModule tem a propriedade ExtLocate que tem que ficar pt_BR para tradução de algumas mensagens para portugues, mas isso será somente para algumas e para Web. Usar o tradutor do delphi vai duplicar o projeto e complicar o processo de desenvolvimento. Fonte: http://leandropiga.nothus.com.br/?p=38 Forma de utilização: Basta adicionar essa unit no projeto. Atualizações: Para traduzir outras mensagens, deve-se buscar nos arquivos de constantes do delphi (Windows, Consts, DBConsts, VDBConsts) a identificação da mensagem e substituir ela conforme abaixo pelo novo nome. } interface uses Windows, Consts, DBConsts, VDBConsts; procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar); const SNewMsgDlgConfirm: PChar = 'Confirmação'; SNewMsgDlgYes: PChar = 'Sim'; SMewMsgDlgNo: PChar = 'Não'; SNewMsgDlgOK: PChar = 'Ok'; SNewMsgDlgCancel: PChar = 'Cancelar'; SNewDeleteRecordQuestion: PChar = 'Excluir Registro?'; SNewDeleteRecord: PChar = 'Excluir Registro?'; implementation procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar); var POldProtect: DWORD; begin VirtualProtect(AResString, SizeOf(AResString^), PAGE_EXECUTE_READWRITE, @POldProtect); AResString^.Identifier := Integer(ANewValue); VirtualProtect(AResString, SizeOf(AResString^), POldProtect, @POldProtect); end; initialization SetResourceString(@SMsgDlgConfirm, SNewMsgDlgConfirm); SetResourceString(@SMsgDlgYes, SNewMsgDlgYes); SetResourceString(@SMsgDlgNo, SMewMsgDlgNo); SetResourceString(@SMsgDlgOK, SNewMsgDlgOK); SetResourceString(@SMsgDlgCancel, SNewMsgDlgCancel); SetResourceString(@SDeleteRecordQuestion, SNewDeleteRecordQuestion); SetResourceString(@SDeleteRecord, SNewDeleteRecord); end.
×
×
  • Create New...