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 não tenho certeza, se ninguém responder amanhã no serviço eu corrijo, mas tente colocar em uses ShellAPI abraçox
  2. Opa Não não, ele entendeu errado mesmo, não existe essa aba de compatibilidade no Windows 95... Não creio também que seja por causa de nomes extensos 8.3 sendo que isto só entra em vigor em modo DOS... já tentou colocar a DLL libmysqldll.dll na pasta do programa? junto com o exe... Já tentou colocá-la na pasta do Windows? São alternativas... mas nossa seu cliente precisa dar uma atualizada nos pcs hein pelo amor ahuahua Se não der nada certo convence ele a dar um upgrade rs abraçox
  3. Ehehe começa a estudar Delphi... Porque amigo, sua dúvida, não é uma dúvida não tem como te ajudar deste jeito... então acho que primeiro você deve se familiarizar com o Delphi para depois começar a fazer suas aplicações... Até porque não é tão simples assim, só o usuário colocar informações de SMTP e tal, você vai ter que trabalhar com envio de emails etc etc etc... Outra coisa "'Agora clique aqui para criar o Server q você vai enviar pra vitima'" Supostamente você quer que seu programa "crie" um executável com as informações que o usuário colocou, isso é bem difícil... Então acho importante sim você ir fuçando, mas este tipo de dúvida não tem como te ajudar, a não ser que alguém faça pra você... Outra coisa, vou verificar com a administração pois não é permitido nenhum conteúdo relacionado a "Hacker" e etc... e Keyloggers são considerados sim estes tipos de programa... abraçx
  4. Opa Apenas complementando, uma máquina em rede tem o IP diferente de 127.0.0.1 ou 0.0.0.0 e nem por isso quer dizer que ela esteja conectada a Internet... Se você quiser fazer algo bem preciso, faça um TClientSocket se conectar na porta 80 em algum site conhecido, ou até mesmo pingar algum site... abraçox
  5. Opa Pra copiar arquivos só utilizar o CopyFile(PChar('Caminho de origem'), PChar('Caminho de destino'), Ignorar se existir); Em ignorar se existir, voce coloca True se não quiser sobreescrever o arquivo caso ele já exista, ou coloca False pra ele sobreescrever... CopyFile(PChar('C:\miolo.gdb'), PChar('C:\_miolo.gdb'), False); abraçox
  6. Opa veja se isso te ajudar... Procedure AcheSubstitua (const Enc, subs: String; Var Texto: TMemo); Var i, Posicao: Integer; Linha: string; Begin For i:= 0 to Texto.Lines.count - 1 do begin Linha := Texto. Lines[i]; Repeat Posicao:=Pos(Enc,Linha); If Posicao > 0 then Begin Delete(Linha,Posicao,Length(Enc)); Insert(Subs,Linha,Posicao); Texto.Lines[i]:=Linha; end; until Posicao = 0; end; end; Ai voce pode fazer... AcheSubstitua('á', 'á', mmfinal); Adapte as suas necessidades abraçox
  7. Opa Então, acho não, tenho quase certeza que você vai ter que usar o velho processo onde você exporta e importa através de arquivos CSV da uma olhada neste post. bjs
  8. Opa Tenta tirar o 'open' também e passar mais coisas... Digo porque eu já passei por isso, mas não era só com arquivos do Office, e a merda do problema tava no 'open' acredite ou não auhauha Passe o Handle da janela também pro Windows saber quem é o owner da execução Quando testei eu percebi que, no Windows 98 precisava do Open já no Windows 200/NT/XP se os programas que abrissem o atalho não tivesse seu Path absoluto e sim ClassIDs então com o Open não abria, é o que acontece com o Office... Repare, clique em Iniciar, Programas, Acessórios, clica com o botão direito emcima do atalho do bloco de notas... você vai ver algo como %SystemRoot%\system32\notepad.exe Este é o caminho absoluto do Bloco de notas... Agora faça o mesmo com o atalho de qualquer programa do Office... Repare que não tem um caminho absoluto, e sim ele é executado através de CLASSID... Então tente o seguinte, foi o que eu fiz pra resolver... const PLATFORM_WINDOWS_UNKNOW = 0; PLATFORM_WINDOWS_98 = 1; PLATFORM_WINDOWS_ME = 2; PLATFORM_WINDOWS_2000 = 3; PLATFORM_WINDOWS_XP = 4; Function GetPlatform: Integer; var OsVerInfo: TOSVersionInfo; begin Result := PLATFORM_WINDOWS_UNKNOW; ZeroMemory(@OsVerInfo, SizeOf(OsVerInfo)); OsVerInfo.dwOSVersionInfoSize := SizeOf(OsVerInfo); GetVersionEx(OsVerInfo); case (OsVerInfo.dwPlatformId) of VER_PLATFORM_WIN32_WINDOWS: begin //Windows 98 if ((OsVerInfo.dwMajorVersion >= 4) and (OsVerInfo.dwMinorVersion >= 10) and not (OsVerInfo.dwMinorVersion >= 90)) then Result := PLATFORM_WINDOWS_98 else //Windows ME if ((OsVerInfo.dwMajorVersion >= 4) and (OsVerInfo.dwMinorVersion >= 90)) then Result := PLATFORM_WINDOWS_ME; end; VER_PLATFORM_WIN32_NT: begin //Windows 2000 if ((OsVerInfo.dwMajorVersion >= 5) and not (OsVerInfo.dwMinorVersion >= 1)) then Result := PLATFORM_WINDOWS_2000 else //Windows XP if ((OsVerInfo.dwMajorVersion >= 5) and (OsVerInfo.dwMinorVersion >= 1)) then Result := PLATFORM_WINDOWS_XP; end; end; //end case end; ... var szBuff: String; begin szBuff := 'C:\eventos\contratos\contratoarea.doc'; case GetPlatform of PLATFORM_WINDOWS_98, PLATFORM_WINDOWS_ME: ShellExecute(Handle, 'open', PChar(szBuff), nil, nil, SW_SHOWNORMAL); PLATFORM_WINDOWS_2000, PLATFORM_WINDOWS_XP: ShellExecute(Handle, nil, Pchar(szBuff), nil, nil, SW_SHOWNORMAL); end; end; Adapte as suas necessidades... abraçox
  9. Churc

    Backup

    Da uma olhada neste tópico... http://scriptbrasil.com.br/forum/index.php?showtopic=106822 abraçx
  10. Opa fiz aqui um código seguindo o que o Micheus disse e acho que te ajuda... testei aqui e funcionou... adicione em Uses Registry, ShellAPI; Function ControlFBSvr(bStart: Boolean): Boolean; var szBuff: String; begin with TRegistry.Create do begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey('SOFTWARE\Firebird Project\Firebird Server\Instances', False); if Result then begin szBuff := ReadString('DefaultInstance') + 'bin\instsvc.exe'; Result := FileExists(szBuff); if Result then case bStart of True: ShellExecute(0, nil, PChar(szBuff), '-s start', nil, SW_HIDE); False: ShellExecute(0, nil, PChar(szBuff), '-s stop', nil, SW_HIDE); end; CloseKey; end; Free; end; end; Pra usar só fazer ControlFBSvr() Como parâmetro você passa: True - Você inicia o serviço False - Você para ele aquele -s antes de Start e Stop no ShellExecute é que só com Start/Stop não tava dando, ai testei e ele pede pra você escolher -s pra SuperServer -c pra ClassicServer Agora tem que ver o seguinte, a versão do seu Firebird... se é completa e tal... a que instalei aqui é 2.0... Faça os testes... abraçox
  11. Opa Você comentou sobre o SAMBA, então esta máquina servidor é Linux? Se for, veja os privilégios de acesso pra esta pasta que está o .gdb chmod 777 - muda os privilégios para acesso total Outra coisa, no SAMBA também sei que quando compartilha uma pasta tem umas opções lá... Bom faz muito tempo que não mexo com Linux, a idéia é, se o servidor for Linux pode te ajudar a achar a solução através doq falei rs abraçox
  12. Opa Mas você fez errado, você deu um SELECT * O * (Asterisco) vai selecionar todos os campos e supostamente todos os usuários, e assim é claro, vai retornar um número de registros maior do que 0, você tem que passar no SELECT apenas o usuário informado... Faz o seguinte, da uma olhada neste vídeo de como é feito uma tela de Login a nível de não iniciar o sistema caso não há sucessso no login... http://www.sunsetsolutions.com.br/ranilson/ E então se você usar o código que lhe passei with dtmiza do begin qryiza.Close; qryiza.SQL.Clear; qryiza.SQL.Add('SELECT Usuarios, Senha, Nivel from NOME_DA_TABELA'); qryiza.SQL.Add('WHERE Usuarios =:u'); qryiza.ParamByName('u').asString := TxtUsu.Text; qryiza.Open; if qryiza.RecordCount = 0 then ShowMessage('Usuário inválido') else if (LowerCase(TxtSen.Text) = LowerCase(qryiza.FieldbyName('Senha').asString)) then Close else ShowMessage('Senha inválida!'); end; Vai funcionar perfeitamente, mas é claro você tem que adaptá-lo as suas necessidades... abraçox
  13. Opa Bom o Erro acho que não é ai não... A lógica parece estar certa, mas não testei... RecordCount retorna em Integer quantos registros foram encontrados, como vocêdeu um SELECT passando o usuário, então se não houver registros quer dizer que o usuário não existe mesmo... else ao contrário disso Se o usuário existe e a senha digitada no TEdit TxtSen for igual ao do campo Senha referente a este usuário então ele fecha a tela de login Está fechando a tela de login? abraçox
  14. Opa Coloque a propriedade Style pra csDropDown algo assim não lembro de cor rsr ou csDropDownList abraçox
  15. Opa Eu não sou bom com banco de dadosss rs Mas acho que antes de você dar um locate talvez você precise abrir um SELECT passando os campos que deseja, parece ser isso o erro, desde que Empty quer dizer que está em branco a Query... tente colocar antes do Open tipo dtmiza.qryiza.Close; dtmiza.qryiza.SQL.Clear; dtmiza.qryiza.SQL.Add('SELECT Usuarios, Senha, Nivel from NOME_DA_TABELA'); dtmiza.qryiza.Open; if dtmiza.qryiza.Locate('Usuarios', TxtUsu.Text, []) Then begin .... ou o que você pode fazer também é dar um select já passando o nome do usuário tipo with dtmiza do begin qryiza.Close; qryiza.SQL.Clear; qryiza.SQL.Add('SELECT Usuarios, Senha, Nivel from NOME_DA_TABELA'); qryiza.SQL.Add('WHERE Usuarios =:u'); qryiza.ParamByName('u').asString := TxtUsu.Text; qryiza.Open; if qryiza.RecordCount = 0 then ShowMessage('Usuário inválido') else if (LowerCase(TxtSen.Text) = LowerCase(qryiza.FieldbyName('Senha').asString)) then Close else ShowMessage('Senha inválida!'); end; da pra melhorar e adaptar ao seu código... foi só outra ideia rs se for usar essa outra ideia, tira o LowerCase caso queira fazer uma senha case sensitive ou seja, com diferenciação de maiúsculas para minúsculas... abraçox
  16. Churc

    Rotina Que Trata Erros

    Opa Isso verdade... provavelmente não está no form principal o componente que da o erro então colocando o form que possue este componente para avaliable realmente não vai parar o erro mais pelo menos vai abrir o programa rs Mas mesmo assim muito estranho isso, se for o Fortes Report ele não é opensource ai complica um pouco... rs abraçox
  17. Opa Mas qual sua dúvida? Coloque um RadioGroup no Form, va na propriedade Items dele e coloque os items que deseja pulando uma linha, no caso: Código Mercadoria Depois você faz no botão de imprimir case RadioGroup1.ItemIndex of -1: //Nada foi selecionado mas você pode deixar algum item abaixo como padrão em Checked; 0: //A opção código foi selecionada...; 1: //A opção Mercadoria foi selecionada...; end; abraçox
  18. Opa Se eu entendi bem, você quer criar um relatório? Bom se for, você terá que usar um componente para isso, existem vários Quick Report, Fortes Report, Cristal Report, etc... Recomendo o Fortes Report porque é gratuito, simples e trabalha como um quickreport... o Cristal já é bem mais avançado e tal da de 10x0 mas é bem mais avançado e tal, se o seu for simples não é preciso... Fortes Report Se não quiser utilizar componentes de relatório da uma olhada nisto. abraçox
  19. Churc

    Rotina Que Trata Erros

    Opa Certo entendi, bom o erro acontece quando inicia o programa, normalmente quando é criado o Form principal... até ai tudo bem, mas o que busca pela impressora é um componente, um código seu? O que faz esta busca pela impressora? Se for um componente, você possue o código fonte dele? assim já da pra resolver o problema pela raiz rs abraçox
  20. Churc

    Rotina Que Trata Erros

    Opa Use o Try e Except antes do código que induz ao erro... exemplo try print; except ShowMessage('Não foi possível imprimir...'); end; Lembrando que dentro da IDE do Delphi o erro sempre acontecerá, você terá que rodar o programa fora... abraçox
  21. Opa Então, os outros dados não aparece porque no SELECT você somente seleciona o campo Dat_Exa No caso ou você começa o select com SELECT * FROM Exame ... onde * representa a seleção de todos os campos desta tabela... ou SELECT Dat_Exa, Nome, Idade FROM Exame ... os outros campos foram somente uma suposição, coloque os campos que deseja que apareça no registro separados por vírgula... abraçxxx
  22. Opa No caso você quer fazer uma busca entre datas? Se for o correto... procedure TFrmRExames.spbexiClick(Sender: TObject); begin With DtmIza.qryIza do Begin Close; Sql.Clear; Sql.Add('Select Data From Exame'); Sql.Add('where (Data >= :d1) and (Data <= :d2)'); ParambyName('d1').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatIn.Text)); ParambyName('d2').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatfin.Text)); Open; End; With TFrmRelExames.Create(Application) do Try QuickRep1.Preview; Finally Free; End; end; O campo data é que tipo, Date? DateTime? Varchar?... Acredito que seja Varchar né já que o FormatDateTime retorna String... Digo porque se for do tipo Date voce pode trocar o .Value por .asDate e se for VarChar trocar para .asString... Veja se é isto... abraçox
  23. Opa No Object Inspector ajuste as propriedades dele... BorderStyle := bsSingle; e em BorderIcons você tira o biMaximize... abraço
  24. No menu "Project > Build All" A diferença é que Build All compila "todas" as units de um projeto, inclusive as Units de componentes que fazem parte e tal... enquanto Compile apenas compila as que foram modificadas ou que estão abertas... abraço
  25. Opa Um dica, se você só usa número "inteiros" troque o Real por Integer... Outra que se o cara não digitar nada no edit então trate sempre antes um erro... var Numero1: Real; Begin try Numero1 := StrToFloat(edit1.Text); except ShowMessage(Edit1.text + ' não é um valor válido'); Exit; //não continua pra não precisar tratar abaixo end; if (StrtoFloat(Edit1.Text) > 100) then Numero1 := Numero1 + 2; edit2.Text := FloatToStr(Numero1 + 30); end; Seria isso? abraçox
×
×
  • Criar Novo...