Ir para conteúdo
Fórum Script Brasil

Churc

Veteranos
  • Total de itens

    1.198
  • Registro em

  • Última visita

Tudo que Churc postou

  1. opa Cara talvez eu esteja dizendo besteira, mas eu acho que a melhor forma de se fazer backup é copiando o arquivo de banco de dados, ou compactando-o em um arquivo... Exemplo, vamos supor que seu arquivo de banco de dados é: C:\SISBM\SISBM.GDB bom então se você criar uma pasta Backup dentro da pasta C:\SISBM\ e assim fazer exemplo Function MakeBackup: Boolean; begin ForceDirectories('C:\SISBM\Backup\'); Result := CopyFile(PChar('C:\SISBM\SISBM.GDB'), PChar('C:\SISBM\Backup\' + FormatDateTime('ddmmyy-hhmm', now) + '.gdb'), False); end; O arquivo de backup vai ganhar um nome tipo assim, com base na data de hoje, 05 de Fevereiro e a hora agora é 14:20 seria 050207-1420.gdb Ai pra usar só fazer if (MakeBackup) then ShowMessage('O Backup foi efetuado com sucesso!') else ShowMessage('Houve um erro ao tentar fazer o Backup'); Detalhe O ideal é fazer com os componentes de ligação com o banco de dados fechados... Pra restaurar é só copiar um arquivo de backup de determinada data devolta para o original... 'C:\SISBM\SISBM.GDB' Quanto a seu problema, acredito eu que você tenha que fechar todos os componentes ligados ao banco de dados para não dar este erro... Active := False; ou Close; abraço
  2. opa Juniorboll eu dificilmente sei responder tópicos envolvendo banco de dados porque mexo pouco tenho pouco conhecimento mas para ajudar as outras pessoas que podem te ajudar, acho eu que você deveria ser mais específico, da maneira que você escreveu não da pra saber, por exemplo, qual o banco de dados, e qual campo e seu tipo que está ocorrendo o erro... ?¿Mostre mais ou menos parte do código que você fez a transformação e de pesquisa... Ai fica mais fácil as pessoas entenderem pra te ajudar... abraço
  3. opa Acho que de VB pra qualquer outra linguagem não muda, então se for esse caso consegue sim sem problemas, porque senão por exemplo, o Windows por padrão "oculta" os arquivos do sistema, incluindo DLLs, sendo assim os programas funcionam normalmente, resumindo, trabalha sim eheh abraço
  4. Ok! Então... tópico fechado! ;)
  5. opa var Outlook: OleVariant; vMailItem: variant; begin try Outlook := GetActiveOleObject('Outlook.Application'); except Outlook := CreateOleObject('Outlook.Application'); end; vMailItem := Outlook.CreateItem(olMailItem); vMailItem.Recipients.Add('email@algumsite.com'); vMailItem.Subject := 'Teste'; vMailItem.Body := 'Apenas um teste!'; vMailItem.Attachments.Add('Caminho do Arquivo'); vmailItem.Execute; vMailItem.Display; Se você trocar o Display por Send ele até envia só que vai mostrar uma mensagem de aviso pro usuário que outro programa está tentando enviar emails... Outra solução é usar o MAPI, da uma olhada nesse link. abraço
  6. Churc

    Problemas Com Canvas

    opatente colocar no Evento OnCreate do Form DoubleBuffered := True; talvez funcione... Se não funcionar ou não for o que deseja responda a pergunta do Micheus talvez seja o que você precisa! Eu sempre usei o DoubleBuffered mas em alguns casos pode não funcionar rs abraço
  7. Churc

    Problemas Com Canvas

    opa tenta assim, primeiro no evento OnCreate do Form você coloca DoubleBuffered := True; se só isso não resolver o que acho pouco provável então deve ter no TImage essa mesma propriedade então você faz o mesmo... Image1.DoubleBuffered := True; to sem o delphi aqui... abraço
  8. opa cara se pode tentar assim function isjpeg(source: tpersistent): boolean; var _jpeg: tjpegimage; begin result := true; _jpeg := tjpegimage.Create; try _jpeg.assign(Source); except result := false; end; _jpeg.free; end; fiz fora do delphi não sei se está totalmente certo mas teste ai, ai pra usar só jogar nos parametros a variavel que você carregou a imagem tipo if isjpeg(bla) then é jpeg else é bitmap abraço
  9. ashuhsuahusa historia interessante, mundo peqno mesmo rs...
  10. opa fera o Interbase gera arquivos .fdb não gera? O Backup neste caso é só você copiar esses arquivos .fdb pra algum lugar, ou compactá-los, e pra restaurar é só copiar devolta e substituir... você pode usar a função CopyFile para isso... abraço
  11. opa Olha acho que você encontrar isso ai muito difícil, difícil não, no meu ponto de vista impossível... principalmente esta parte: E o DreamWeaver se não for o, é um dos mais completos programas para desenvolvimento de webpages e ele não suporta só HTML, e ele suporta sim PHP, XHTML, DHTML, etc... Se fosse tão simples não teria concorrência e qualquer um saberia fazer eheh a vida é uma concorrência você só tem que estar adepto para competir abraço
  12. Churc

    Pegar Usuarios Da Rede

    opa Seus problemas acabaram!! asuhsuha você pode usar esta rotina pra detectar se o usuário é Admin no Windows... retirada do código fonte do Inno setup rs Function isAdmin: Boolean; const DOMAIN_ALIAS_RID_ADMINS = $00000220; function IsMemberOfGroup(const DomainAliasRid: DWORD): Boolean; const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; SE_GROUP_ENABLED = $00000004; SE_GROUP_USE_FOR_DENY_ONLY = $00000010; var Sid: PSID; CheckTokenMembership: function(TokenHandle: THandle; SidToCheck: PSID; var IsMember: BOOL): BOOL; stdcall; IsMember: BOOL; Token: THandle; GroupInfoSize: DWORD; GroupInfo: PTokenGroups; I: Integer; begin if Win32Platform <> VER_PLATFORM_WIN32_NT then begin Result := True; Exit; end; Result := False; if not AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DomainAliasRid, 0, 0, 0, 0, 0, 0, Sid) then Exit; try { Use CheckTokenMembership if available. MSDN states: "The CheckTokenMembership function should be used with Windows 2000 and later to determine whether a specified SID is present and enabled in an access token. This function eliminates potential misinterpretations of the active group membership if changes to access tokens are made in future releases." } CheckTokenMembership := nil; if Lo(GetVersion) >= 5 then CheckTokenMembership := GetProcAddress(GetModuleHandle(advapi32), 'CheckTokenMembership'); if Assigned(CheckTokenMembership) then begin if CheckTokenMembership(0, Sid, IsMember) then Result := IsMember; end else begin GroupInfo := nil; if not OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,Token) then begin if GetLastError <> ERROR_NO_TOKEN then Exit; if not OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, Token) then Exit; end; try GroupInfoSize := 0; if not GetTokenInformation(Token, TokenGroups, nil, 0, GroupInfoSize) and (GetLastError <> ERROR_INSUFFICIENT_BUFFER) then Exit; GetMem(GroupInfo, GroupInfoSize); if not GetTokenInformation(Token, TokenGroups, GroupInfo, GroupInfoSize, GroupInfoSize) then Exit; for I := 0 to GroupInfo.GroupCount-1 do begin if EqualSid(Sid, GroupInfo.Groups[I].Sid) and (GroupInfo.Groups[I].Attributes and (SE_GROUP_ENABLED or SE_GROUP_USE_FOR_DENY_ONLY) = SE_GROUP_ENABLED) then begin Result := True; Break; end; end; finally FreeMem(GroupInfo); CloseHandle(Token); end; end; finally FreeSid(Sid); end; end; begin Result := IsMemberOfGroup(DOMAIN_ALIAS_RID_ADMINS); end; pra usar if isAdmin then é admin else não é; lembrando que só a partir do windows 2000 existe isso de Administrador, pra windows 9x/ME sempre vai retornar true... abraço
  13. opa sauhasu valeu... pelo menos deu pra entender né rsr os dom de ensinar tem o Micheus que escreve um livro em cada post dele kkk eu só "tento" explicar rsr mas valeu ai e que bom que deu certo! :D abraço
  14. Churc

    Fechar Programa

    procedure TForm1.Image2Click(Sender: TObject); begin If not (FileExists('main.jpg')) then begin showmessage('Arquivo não existe'); Application.Terminate; end else Winexec('teste.exe',SW_SHOWNORMAL); end;
  15. opa Seguinte...A função Pos retorna a posição(Index) do que for passado nos parâmetros, por exemplo var x: String; i: Integer; begin x := 'Brasil'; 123456 Sendo assim i := Pos('s', x]; Então i = 4No seu caso você tinha uma linha exemplo C;NOME DO CLIENTE;08.211.298/0001-90;ENDEREÇO ;BAIRRO ;78643000;( ) ;QUERENCIA ;muito;31/10/2006;133229963 Repare que inscrição estadual é o último campo... o que ficaria depois de passar pelo delete: 133229963 Você tava fazendo Table1.FieldByName('inscr.').Value := Copy(Entrada,1, Pos(PathSep, Entrada) - 1); Ueh mais cade o Pathsep nisso: 133229963 ? Não tem, daria certo se fosse isso: 133229963; Sendo assim a função Pos retornava uma index = -1 e assim como não existe index -1 significa que não encontrou e por isso não copiava... Então a função Length retorna o tamanho total de uma string, ou seja, quantos caracteres tem... então dando o Copy você vai estar copiando do caracter 1 até o tamanho total da string... Resumindo copia ela toda... O que você tem que entender é Copy(String, X, Y); X = Qual caracter você quer começar copiar, se você colocar 1 ele começa copiando desde a primeira letra, se colocar 2 ele copia desde a segunda e assim por diante... Y = A quantidade de caracter que você quer copiar a partir do X ou seja vamos supor que você quer copiar da palavra Churc só o urc então seria Copy('Churc', 3, 2); ou Copy('Churc', 3, Length('Churc')); vai dar na mesma, porque ele vai começar a copiar a partir da letra u que é a index número 3 e vai contar mais 5 caracteres, mas como não existe mais cinco caracteres a partir da letra u então ele copia até a última letra... entendeu mais ou menos? abs
  16. opa depende o componente não é possível... os que são iniciados junto com a aplicação por exemplo... de qualquer forma, qual componente você está se referindo? abs
  17. Churc

    Fechar Programa

    procedure TForm1.Image2Click(Sender: TObject); begin If not (FileExists('main.jpg')) then showmessage('Arquivo não existe') else Winexec('teste.exe',SW_SHOWNORMAL); Application.Terminate; end;
  18. opa que bom cara :D só um detalhe, a parte de inscrição estadual, por ser o último registro ele não contém em seu final um ; (PathSep) então acho que o mais correto é Table1.FieldByName('inscr.').Value := Copy(Entrada,1, Length(Entrada)); abraço
  19. opa Cleverson você está se referindo em fazer seu programa Shareware ou seja, com limite de uso, ou somente com uma chave poderem usá-lo? o fernando_vip está se referindo a automação comercial, mas o que você está querendo é um controle de vendas automação comercial ou fazer seu programa shareware? abs
  20. Churc

    Me Ajudem Amigos

    opa cara testei aqui agora PItemIDList é declarado em ShlObj é só adicionar em uses... passe este código seu dos favoritos pra ver exatamente o que ele faz e se o erro está nele ou você não soube usar... abraço
  21. Churc

    Me Ajudem Amigos

    opa tenta adicionar em uses ShlObj ou ComObj ou Activex não sei qual é o certo to sem Delphi aqui... Adiciona um e tenta se não for apaga e coloca o outro e assim por diante... é um dos 3 rs abraço
  22. opa Não é isso eheh, os ícones ficam de uma DLL poiso Windows considera como um arquivo do sistema, e como o arquivo não possue um ícone padrão, então ele atribui como se fosse um arquivo de sistema... DLL só tem utilidade quando ela for usada por mais de um programa ou quando você atualiza seu programa direto, e pra não ficar tendo que atualizar o .EXE você atualiza somente as DLLs... Digo usada por mais de um programa, porque uma vez carregada na memória ela será compartilhada com os outros programas... Vamos supor que você vai criar um SDK do seu programa pra permitir que outros programadores façam recursos (Extensões/Add-Ons/Plugins) para seu programa, ai sim você deve utilizar DLLs e disponibilizar uma API... e como o Micheus falou, DLLs são multi-linguagens, você pode criar uma DLL em C, Delphi, VB, etc... e utilizá-las tanto quanto em um quanto no outro... Também é útil pra se criar resources, exemplo guardar imagens nela, ou outros dados... abraço
  23. opa este processo se chama CSV... da uma olhada nesse tópico. abs
  24. Churc

    Install Shield V12

    Movido para Demais programas e S.O Esta seção é somente para Tutoriais e Dicas e relacionadas a Delphi / Kylix abraço
×
×
  • Criar Novo...