Ir para conteúdo
Fórum Script Brasil

Micheus

Veteranos
  • Total de itens

    3.189
  • Registro em

  • Última visita

Tudo que Micheus postou

  1. Micheus

    Scroller

    Churc, eu tenho a impressão que você consegue este efeito se colocar neste seu form vazio um TImage, no canto superior esquerdo, com a propriedade Align=alNone (default) e mudar a propriedade AutoSize para True. Agora se precisar de outros recursos, daí, além da dica do s3c, tem também um post do Paulo Nobre de maio, com recurso diferenciado - link. []s
  2. Cleverson, descupe mas não entendi. Parece que falta algo nesta sua query.E esse lance de nomes repetidos??? Que banco de dados você utiliza? []s
  3. Micheus

    Componente Table

    s3c, quando utilizava Paradox, realmente fazia bastante diferença utilizar TTable. Mas, quando passei a utilizar "banco de dados de verdade", realmente componentes to tipo TTable (depende da paleta que você utiliza - IB, ZEOS, MDO) não fazem mais falta. []s
  4. Micheus

    Dbgrid

    Pablo, faltam informações. Que banco de dados você está utilizando?
  5. Pirambu!, está faltando mais informações para auxiliá-lo. Em formCliente, o campo cliente é a descrição ou o código que você vai armazenar? O que você espera receber como retorno de formPesquisaCliente? Eu costumo utilizar algo mais ou menos assim: no formPesquisaCliente - declaro uma variável na sessão public que será do tipo de dado a ser retornado; - no evento do botão OK (ou equivalente) inicializo esta variável; O botão que valida a consulta deve ter sua propriedade ModalResult setada para mrOK no formCliente - crio o formPesquisaCliente ao ser feita a consulta; - chamo testo o retorno da função criada em formPesquisaCliente e se for mrOK; - destruo o formPesquisaCliente após a consulta; Ex.: em formPesquisaCliente: type TformPesquisaCliente = class(TForm) ... public CodCliente :LongInt; end; ... procedure TformPesquisaCliente.btnOKClick(Sender :TObject); begin CodCliente := qryPesquisaClienteCODIGO.AsInteger; end; em formCliente:procedure TformCliente.btnSelecionaCliente(Sender :TObject); begin formPesquisaCliente := TformPesquisaCliente.Create(Self); try if formPesquisaCliente.ShowModal = mrOk then tabQualquerCOD_CLIENTE.AsInteger := formPesquisaCliente.CodCliente; finally formPesquisaCliente.Free; end; end; []s
  6. python??? Acho que o post está no lugar errado.:blink: aqui diríamos: viva Delphi e Windows :D Mesmo assim, acho que não tem como impedir tal atitude. Exceto se houver deficinições de segurança (no SO) que impessam determinados usuários de acessarem a pasta/arquivos. []s
  7. Fiz este quebra galho praver se você consegue dar um start ok?! Baixe o arquivo exemplo neste link (SnapShot - DSPK-paradox.zip). Tem uma tela simples, com um DBGrid, um DBImage, e dois botões onde você inclui uma nova foto ou altera uma existente. Estes botões chamarão uma segunda tela. Esta é a que viabiliza a seleção da WebCam e através do botão SnapShot uma foto é tirada. Daí é clicar em Gravar no banco para gravar a foto. Como esta tela recebe o campo TBlobField (Grapic no caso do paradox) como parâmetro, ela poderá ser aproveitada e melhorada para ser utilizada com qualquer banco de dados. Tem muita coisa para melhorar, mas falta tempo. :D []s
  8. Num outro forum, aprendi que há uma forma bem simples de evitar que uma janela seja movida (apenas): basta definir a proporiedade Align do form para alCustom. Combinada com a a sugestão do Chrc de utilizar a propriedade BorderStyle com bsSingle - resolvem o problema de forma rápida. E apenas para dar mais uma opção (que eu havia sugerido naquele forum), similar a do Churc, dá para interceptar a mensagem WM_WINDOWPOSCHANGING. Ela ocorre antes que a movimentação ou resize sejam aplicados a janela: type TForm1 = class(TForm) private procedure WMWinPosChanging(var Msg :TMessage); message WM_WINDOWPOSCHANGING; ... end; implementation {$R *.DFM} procedure TForm1.WMWinPosChanging(var Msg :TMessage); begin PWindowPos(Msg.LParam)^.flags := PWindowPos(Msg.LParam)^.flags OR SWP_NOMOVE; Msg.Result := 1; end; ...O que se faz é modificar o flag para conter a opção SWP_NOMOVE, impedindo que a janela seja movida de sua posição. Msg.Result = 1 diz ao processador de mensagens do windows que não tratamos esta mensagem, de modo que ela seguirá e será processada com nossa alteração. Se quizer que o tamanho da janela não mude, também, acrescente "OR SWP_NOSIZE". []s
  9. Isto ocorre porque quando você abre seu DataSet (Open ou Active = True), ele é posicionado no primeiro registro da sua tabela. Neste momento você está em modo visualização (state = dsBrowse). O termo certo não é: cria um novo cadastro, mas sim: "insere um novo registro na tabela" Agora dei um nó na cabeça. :D Ele não sabe nada, a menos que você diga a ele. Então, primeiro você chama o dataset.Append/Insert (normalmente através do acionamento de um botão) para daí então os DBEdits ficarem em branco (porque agora você colocou o dataset no modo Insersão - state = dsInsert) para que o usuário informe tudo que for solicitado. Chega um momento em que o usuário dirá que acabou e quer salvar as informações. Isto normalmente é feito atravé de um botão que chama o método dataset.Post. Se não quizer gravar, então pode cancelar a insersão chamando o método dataset.Cancel. Quando quizer realizar uma alteração, daí você posiciona no registro desejado e utiliza o método dataset.Edit para colocar a tabela em modo edição (state = dsEdit). Se o código é auto-increment, cada vez que vd postar (Post) o novo registro, um novo código será gerado. Sendo do tipo auto-increment, você só vai saber qual o novo código apenas após o Post. Com essa abordagem, não dá para saber com certeza antes do post.
  10. Que componente você está utilizando? Os da paleta ADO? Quais? Algum motivo especial para utilizar TEdit's no lugar de TDBEdit's? Porque este último já vai fazer este "trabalho sujo" por você.Bastará então utilizar um dataset.Append ou dataset.Insert para criar um novo registro e ao final, quando clicar em cadastrar, dataset.post. dataset.delete, e não esqueça de mostrar uma caixa de diálogo antes pedindo a confirmação do usuário. onde dataset é o componente que você configura na propriedade DataSet do DataSource ligado ao DBGrid ou DBEdit's. []s
  11. Micheus

    Componente Table

    Aghata, Para não haver problemas (de comunicação) no futuro, é interessante que você busque saber a diferença entre propriedades e métodos dos objetos (classes). Destes três apenas IndexName é uma propriedade, os demais são métodos. ;)
  12. Nesse post falava-se da propriedade AlphaBlend do Form, e não da função AlphaBlend da GDI. Tá bom, lá tem um link para uma página da microsoft onde se menciona essa função, mas aí já é querer demais. Era só falar "Thales, dê uma olhada na função AlphaBlend". Tem que olhar com mais carinho as referências postadas. :D Essa parte do papel celofane eu não captei direito. Dá pra desenhar? :rolleyes: A parte da inversão do fonte você consegue com o BitBlt (com NOTSRCCOPY), mas a subtração acho qeu não tem como - só na mão. Mas, isso não pode resultar em cores "estranhas" ao invés de transparência?
  13. Thales, parece que você não leu um post do dia seguinte (08/Set/2006). Não retornei a questão porque parecia resolvida e porque você sempre dá uma lida nos posts sobre o assunto. Bastava segir o link mensionado neste post. []s
  14. você está falando do componente ComboBox ou DBComboBox. Observe que há diferença entre os dois e fará diferença na hora de uma sugestão. Os componentes da paleta Data Controls (caso do DBComboBox) são chamados data aware por "possuirem um link" direto com a base de dados. Já os da paleta Standard (caso do ComboBox), não possue este recurso e ao utilizá-lo com o mesmo fim, temos que programar um pouco mais (p.e.: popular a lista a partir de uma consulta). Se a resposta for DBComboBox, então a sugestão do colega Erso pode resolver seu problema. Caso contrário poderia sugerir outro o artifício. []s
  15. É sempre bom saber o que ocorre de verdade. Tudo o que você vê em um DBGrid é proveniente de dataset associado ao DataSource que você ligou a ele. A linha atualmente selecionada no DBGrid é exatamente a linha correntemente selecionada neste dataset. Assim, se o dataset permite exclusão (não sei que componente você está utilizando), basta que você acione o método Delete deste dataset que a linha sumirá do DBGrid (às vezes é preciso um refresh/update - algo assim). As coisas só mudam um pouquinho, se você estiver falando em multi-seleção e exclusão destes itens selecionados. []s
  16. Micheus

    Problem Com Data

    Progr'amador, permita-me "fazer um parênteses" neste item. Um cuidado que deve-se ter quando trabalhamos com campos que armazenam data e hora juntamente (como o TimeStamp), e justamente em situações como esta: você faz um filtro onde o campo deve encontrár-se entre duas datas e que neste caso é a mesma. Bom, se está sendo armazenada a hora juntamente com a data, passar para esta consulta apenas a data, implica que o campo hora estará sendo referenciado com 00:00hs. Assim, para registros com o campo data contenha a data filtrada mas que tenha em sí um registro de hora diferente de 00:00hs não serão listados! Ex. data = 15/11/2006 00:25 -> não será listado para a consulta no exemplo do colega kartter. E este pode ser também o problema que ele aponta. Nestas condições, tendo em mente a questão da hora, é conveniente que seja concatenada a data, as referidas horas de início e fim do dia em questão: Ex. DataInicio = 15/11/2006 e DataFim = 15/11/2006 23:59:59 kartter, você pode fazer uso da função DateTimeToTimeStamp(DateTime: TDateTime) - SysUtils, quando precisar fazer a conversão. Particularmente, sou avesso a utilização do método de concatenação de variáveis para montar uma cláusula SQL. Prefiro a utilização de parâmetros. No caso especíifico de data, acho ainda mais interessante, já que existem diferentes formas de concatenar este tipo de campo para cada banco que você utiliza (ou seja não há um padrã). No Access por ex. você deve delimitar o texto da data utilizando o # (data between #15/11/2006#) em outros, a ordem mm/dd/aaaa é esperada. E assim vai. Quando você utiliza parâmetros, esta "preocupação" fica por conta do drive que acessa o banco. Dá uma olhada neste outro post se tiver enteresse. []s
  17. Micheus

    Dblookupcombobox

    Observe que estes itens do seu DBLookupComboBox são provenientes do dataset em ListSource certo?! Há um campo chamado KeyField, que normalmente é o campo chave, que será atribuído ao DataField quando você seleciona um item da lista. Certo?! Então, há duas opções de você fazer o que quer: 1) Atribui o campo chave (valor em KeyField proveniente do ListSource) correspondente ao item desejado à propriedade KeyValue (Ex. DBLookupComboBox1.KeyValue := DatasetAnimaisCODIGO.Value); 2) Atribui o campo chave diretamente ao DataField do seu DataSource (Ex. DatasourceITEMCODIGO.Value := DatasetAnimaisCODIGO.Value). Consegui lhe passar a idéia da coisa? Se não, coloque o nome dos dataset's (datasource e listsource) com os respectivos campos que você está utilizando que faço os exemplos utilizando eles. []s
  18. spooky, dá uma olhada nestes links:Componente - com demos Utilizando Assync32, e outros
  19. Neste caso, já tentou reinstalar o BDE na máquina do seu cliente? Quem sabe seja uma saída. :unsure:
  20. você utiliza D7? Que versão que você está utilizando? Dê uma olha neste link que tem um atalho para a última atualização - versão D7 (não precisa ser rgistrado não, tem apenas que informar um e-mail e praís para baixar) []s
  21. Não. Fiz porque estava justamente trabalhando com o CreateIconIndirect. Estava utilizando uma imagem de entrada de 24bits de cor, mas a saída ficava uma porcaria. Logo após a criação eu associava a um TImage para visualizar na tela também. O estranho é que na tela estava correto, mas o do disco não.
  22. Paulo Nobre, mas está conseguindo gerar um icone com 256 cores, ou está ficando aquela coisa estranha, tipo, como se fosse em apenas 16 cores?
  23. Uma boa pergunta. Acho que teria que utilizar mciSendCommand e definir o dispositivo desejado. Alguém tem como testar?
  24. Não diria difícil ,porque temos as informações necessárias para fazê-lo. Diria trabalhoso. Não entendí não. :unsure: Do ponto de vista de quem acessa um site, normalmente, quando clicamos em um documento pdf o navegador inicia o aplicativo adequado a leitura deste (normalmente um plugin da Adobe).
  25. luizf, utilizo a função mciSendString que, comumente é utilizada para abrir CD's, funciona perfeitamente em meu gravador de DVD.Dê uma olhada se está sendo retornado algum erro: utilize mciGetErrorString para verificar. Ex.: procedure TForm1.Button1Click(Sender: TObject); var Erro :LongInt; Texto :array[0..128] of char; begin if Boolean(Button1.Tag) then Erro := mciSendString('set cdaudio door closed wait', nil, 0, handle) else Erro := mciSendString('set cdaudio door open wait', nil, 0, handle); if mciGetErrorString(Erro, Texto, SizeOf(Texto)) then ShowMessage(Texto); Button1.Tag := Ord(not Boolean(Button1.Tag)); end; []s
×
×
  • Criar Novo...