Ir para conteúdo
Fórum Script Brasil

Arlon

Membros
  • Total de itens

    371
  • Registro em

  • Última visita

Posts postados por Arlon

  1. Eu sempre vejo as pessoas falando sobre essa propriedade, principalmente setada em FsMDIChild, mas não sei pra que ela e suas opções servem: FsNormal (que é a default), MDIChild, MDIForm e StayOnTop. Se alguém puder me explicar eu agradeço .

  2. Adicionando Zeros a esquerda
    A dica que irei mostrar é uma função que adiciona zeros a esquerda de um número. Esta função pode ser bastante utilizada em aplicativos de banco de dados, onde o campo código que possui três casas se não chegar até o valor 100, os seus valores vão ser preenchidos com zero a esquerda. Por exemplo, se for digitado o valor 2, o campo código irá receber o valor 002. 
    
        Veja como funciona: No form adicione um componente button e um componente edit. No editor de código, após a seção implementation escreva a seguinte função: 
    
    function ZeroEsquerda(const I: integer; const Casas: byte): string;
    var     Ch: Char;
    begin
        Result := IntToStr(I);
        if Length(Result) > Casas then
        begin
            Ch := '*';
            Result := '';
        end
        else
            Ch := '0';
        while Length(Result) < Casas do
            Result := Ch + Result;
    end; 
    
    No evento OnClick do botão escreva o código abaixo: 
    
        edit1.text := ZeroEsquerda(strtoint(edit1.text), 3);
    
    
        A função possui dois parâmetros: o primeiro idêntifica o local que será adicionado zero a esquerda, o segundo indica quantas casas terá o valor, que no nosso exemplo é três. Execute a aplicação, digite 1 no edit, clique no botão. A propriedade text do edit será alterada para 001. 
    

    Fonte: Clube Delphi - www.clubedelphi.net

  3. Pelo que eu pude entender sendo um leigo, acho que o windows não tá reconhecendo a partição mesmo. A respeito dakele lance do Painel de Controle aparece isso aqui:

    Volume: (C:)

    Layout: Partção

    Tipo: Básico

    Sistema de arquivos: NTFS

    Status: Íntegro(Sistema)

    Capacidade: 27,53 GB (Meu HD é de 40 GB, mas veio com 37 GB e a outra partição que eu criei é de 10 GB)

    Espaço Livre: 26,13 GB

    % Livre: 94%

    Tolerância a falhas: Não

    Overhead: 0%

    Disco 0 ---------------- (C:)

    Básico ---------------- 27,53 GB NTFS

    37,31 GB On-line ---- Íntegro(Sistema)

    ----------------------------------------------

    (Isso aqui aparece ao lado do que está aí acima).

    9,77 GB

    Não Alocado

    ______________________________________________

    Cd-Rom 0

    Cd-Rom (D:)

    Nenhuma mídia

    ______________________________________________

    Deu pra entender aí galera?? E obrigado pela ajuda.

  4. O Windows que eu instalei é o XP, e eu criei a partição na hora em que fui instalá-lo.

    Quando você instala aparece a partição inteira, ou seja, o tamanho todo do hd, aí é só apertar a letra "C" pra criar a partição e informar o tamanho dela.

    É difícil de me explicar como entrar aí nesse tal de FDISK, eu não entendo nada dessas paradas cara, aí depois que eu entro, como deletar e depois recriar a partição?

  5. Bem galera, peço aqui a ajuda de vocês porque sou um inútil quando o assunto é hardware. Eu tinha um hd na minha mákina, o infeliz queimou e eu comprei outro. Coloquei o novo hd e tal... na hora em fui instalar o Windows criei outra partição, aí quando o Windows inicializa que eu abro o Meu Computador só aparece uma partição, a outra que eu criei com o cd na hora de instalar não aparece. O certo não seria ficar:

    Disco Local ( C), Disco Local (D), Unidade de cd-rom (E)

    Mas só que tá assim:

    Disco Local ( C), Unidade de cd-rom (D)

    Cadê a partição que eu criei?? blink.gif

  6. Era isso mesmo que eu queria, valeu por me ajudar mais uma vez, cara.

    Eu tava fazendo assim ó (não tava colocando uns bagulhinhos ali antes e depois das variáveis):

    DM.QrAlterarNome.Close;

    DM.QrAlterarNome.Sql.Clear;

    DM.QrAlterarNome.Sql.Add('Update Pecas Set Nome = 'NovoNome');

    DM.QrAlterarNome.Sql.Add(Where Nome = 'NomeAtual');

    DM.QrAlterarNome.ExecSql;

    Porquê que precisa colocar os +#39??

  7. Eu fiz uma busca aqui no fórum mas não encontrei a resposta que queria.

    Imaginem vocês que eu tenho duas tabelas: CLIENTES e PECAS. Na tabela CLIENTES obviamente eu cadastro as pessoas que colocarão suas peças a serem vendidas na loja. A aplicação tem um esquemazinho simples de consulta de peças pelo nome do cliente (não existe uma maneira de eu chamar a tela de cadastro de peça direto; eu tenho que estar editando o cliente ou fazedo uma busca para incluir a peça. Dessa forma se eu estiver fazendo uma busca eu coloco TBPecas.Nome_Cliente := QrClientesNome_Cliente.Value... se bem que isso não vem ao caso...). O que eu quero saber é como fazer um Update na tabela Pecas toda vez que o nome do cliente for mudado. Eu sei que é usando algo mais ou menos assim:

    DM.QrAlterarNome.Close;

    DM.QrAlterarNome.Sql.Text := 'Update Pecas set ..............

    O que eu quero fazer é exatamente o que o fórum faz com a nossa assinatura, por exemplo. Toda vez que mudamos nossa assinatura ou nosso avatar, todos os nossos posts do primeiro ao último são atualizados (update).

  8. Enviar até dá, o problema é que todos os servidores de e-mail agora (até os grátis) estão exigindo autenticação pra enviar, ou seja, em muitos casos só do site do provedor pra consuguir enviar. Em alguns casos nem pelo Outlook é mais possível. Eu passei por um problema desses, enviei um e-mail pro Hotmail perguntando se havia alguma possibilidade de enviar e-mail pelo outlook com o código abaixo e eles disseram que agora só com o tal do Hotmail Plus (aquele que você paga 60 conto por ano, a caixa tem 2 GB e você pode enviar e receber anexos de até 20 MB), isso porque eles dizem que assim vai diminuir a "spameação", mas se você tiver um e-mail do Hotmail que tenha sido feito antes de setembro é possível enviar com essa rotina ou então teste com o e-mail do seu provedor, talvez dê certo.

    function TFrmEnvioPedido.EnviarEmailPadrao(const De, Para, Assunto, Texto,
      Arquivo: string; Confirma: Boolean): Integer;
    var 
      Msg: TMapiMessage; 
      lpSender, lpRecepient: TMapiRecipDesc;
      FileAttach: TMapiFileDesc; 
      SM: TFNMapiSendMail; 
      MAPIModule: HModule; 
      Flags: Cardinal;
    begin 
      // cria propriedades da mensagem 
      FillChar(Msg, SizeOf(Msg), 0); 
      with Msg do 
        begin 
          if (Assunto <> '') then 
            lpszSubject := PChar(Assunto); 
    
          if (Texto <> '') then 
            lpszNoteText := PChar(Texto); 
    
          // remetente 
          if (De <> '') then 
            begin 
              lpSender.ulRecipClass := MAPI_ORIG; 
              lpSender.lpszName := PChar(De); 
              lpSender.lpszAddress := PChar(De); 
              lpSender.ulReserved := 0; 
              lpSender.ulEIDSize := 0; 
              lpSender.lpEntryID := nil; 
              lpOriginator := @lpSender; 
            end; 
    
          // destinatário 
          if (Para <> '') then 
            begin 
              lpRecepient.ulRecipClass := MAPI_TO; 
              lpRecepient.lpszName := PChar(Para); 
              lpRecepient.lpszAddress := PChar(Para); 
              lpRecepient.ulReserved := 0; 
              lpRecepient.ulEIDSize := 0; 
              lpRecepient.lpEntryID := nil; 
              nRecipCount := 1; 
              lpRecips := @lpRecepient; 
            end 
          else 
            lpRecips := nil; 
    
          // arquivo anexo 
          if (Arquivo = '') then 
            begin 
              nFileCount := 0; 
              lpFiles := nil; 
            end 
          else 
            begin 
              FillChar(FileAttach, SizeOf(FileAttach), 0); 
              FileAttach.nPosition := Cardinal($FFFFFFFF); 
              FileAttach.lpszPathName := PChar(Arquivo); 
              nFileCount := 1; 
              lpFiles := @FileAttach; 
            end; 
        end; 
    
      // carrega dll e o método para envio do email 
      MAPIModule := LoadLibrary(PChar(MAPIDLL)); 
    
      if MAPIModule = 0 then 
        Result := -1 
      else 
        try 
          if Confirma then 
            Flags := MAPI_DIALOG or MAPI_LOGON_UI 
          else 
            Flags := 0; 
    
          @SM := GetProcAddress(MAPIModule, 'MAPISendMail'); 
    
          if @SM <> nil then 
            Result := SM(0, Application.Handle, Msg, Flags, 0) 
          else 
            Result := 1; 
        finally 
          FreeLibrary(MAPIModule); 
    
    end;
    Código do botão enviar:
    EnviarEmailPadrao('seuemail@provedor.com.br','emaildestino@provedor.com.br','Assunto','Mensagem','arquivo anexo',false);

  9. So que o que eu precisa fazer agora é criar uma classe com a resoluçao pra depois criar um objeto no meu form principal chamando essa classe...

    Mas porque você precisa fazer isso, se calculando da forma como eu falei você mesmo já havia feito e deu certo?

  10. Quando eu fecho meu programa após ele ser rodado pelo Delphi acontece o seguinte:

    Application Error

    Exception EAccess Violation in module Programa.exe at 000A8D45.

    Access violation at adress 004A8D45 in module 'Programa.exe'. Read of adress 009FB39E.

    Aí quando eu fecho essa tela de erro aparece outra:

    Debugger Exception Notification

    Project Programa.exe raised exception class EAccess Violation with message 'Access violation at adress 004A0D45 in module 'Programa.exe'. Read of adress 009FB39E. Process stopped. Use step or run to continue.

    Quando eu rodo o programa fora do Delphi acontece o seguinte:

    Aquela tela de padrão do Windows

    Programa.exe

    O Programa.exe encontrou um problema e precisa ser fechado. é aquela tela que pergunta se deseja enviar um relatório de erros à Microsoft.

    depois:

    Application Error

    Exception EAccess Violation in module Programa.exe at 000A8D45.

    Access violation at adress 004A8D45 in module 'Programa.exe'. Read of adress 009FB39E.

    Surge a tela padrão do Windows novamente para enviar relatório de erros.

    E depois disso uma espécie de ShowMessage() assim:

    Error

    Runtime eror 216 at 0043CC91.

    =====//=====//=====

    Certa vez ouvi dizer que isso é problema do Windows, algum arquivo corrompido ou falha na instalação do mesmo, só que a pessoa que me informou tb não tinha muita certeza quanto à isso, e coincidência ou não, meu computador tá travando toda hora, eu já verifiquei os coolers e estão todos funcionando e não tem nada esquentando na placa-mãe. semana passada tava acontecendo o mesmo problema só que em outro sistema, aí o s3c me aconselhou a ver se em algum formulário tava sendo usado os eventos OnClose e/ou OnDestroy, mas eu não uso esses eventos em nenhum form nem em nenhum componente. Minhas perguntas são: isso já aconteceu com alguém aqui e é problema do Windows mesmo?

    Valeu galera.

  11. você quer criar componentes pra fazer isso? Bem, sem necessitar de componentes adicionais eu pensei no seguinte:

    3 Edits e em cada um você informa um número, assim como na equação do segundo grau. Por exemplo:

    4X2 + 2X - 2 (nem sei se dá pra tirar raízes disso), mas no primeiro edit seria informado A (4), no segundo edit B (2) e no terceiro edit C (2), o resto você já sabe né, Delta e Báskhara.

    É uma coisa meio sem noção, mas foi o que veio à cabeça do Joselito aqui agora.

×
×
  • Criar Novo...