kmkg
-
Total de itens
40 -
Registro em
-
Última visita
Posts postados por kmkg
-
-
Não sei se pelo Writeln na lpt1 você consegue comandar a impressora; se conseguir é só mandar #27 mais o controle. Se não conseguir, neste link tem um exemplo de como enviar os comandos Esc/P.
-
Você tem que enviar os comandos de controle da matricial (comandos Esc/P).
-
Existe a função GetEditText de TCustomDBGrid, mas ela é protegida.
Então uma forma seria você criar uma classe que descenda de TDBGrid e sobrescrever essa função.
-
Eu não e passo longe do Assembly.Não me digam que vocês entenderam esse assembly que o Micheus escreveu.Este foi um erro sutil que me aconteceu e fiquei algumas horas para achá-lo porque tenho que utilizar o Move no recebimento de dados de uma classe que trabalha com Sockets; então de acordo com o tipo de dado vindo pelo SendBuf, alimento os campos Double, Integer, Smallint, Boolean, etc . . .
O que aconteceu foi o envio de um tipo Byte com valor 8 que joguei para um Boolean e com isso a condição não satisfazia true e nem false.
-
Micheus, baixo nível mesmo hein ?
Haja paciência para descer tanto; eu não iria tão longe.
Acredito que se você não achasse explicação no asm, iria até os circuitos eletrônicos.
Parabéns ! ! !
-
Acho que é isso mesmo, ele efetua a comparação pelo valor binário do campo.
quanto ao título é porque fiquei umas 4 horas pra achar este erro(erro meu de programa), depois ví num outro fórum a mesma coisa entitulado: Variável Boolean nem true, nem false. Aconteceu com outro também a mesma coisa.
-
Entendo que o compilador interpreta um terceiro valor para a variável Boolean.
Se testar: if b2 then ... Resultará em true, mas if b1 and b2 then ... O compilador não resolve.
-
Colega, não trabalho com Paradox (ainda bem), mas pelo que andei lendo em tópicos, ele é muito instável e costuma perder índices. Lhe aconselho e não esperar chegar nesse tal limite e mudar de Banco rapidinho.
-
Para as horas vagas
var b1,b2:Boolean; Baiti:Byte; begin Baiti := 8; b1 := true; Move(Baiti, b2, 1); if b1 and b2 then ShowMessage('b2 é true') else if b1 and not b2 then ShowMessage('b2 não é true') else if b1 then ShowMessage('O compilador ficou meio maluco') else ShowMessage('O compilador ficou maluco'); end;
-
Ainda assim tenho lá minhas dúvidas. Se o msdn disse que só estava no XP, talvez no 2000 foi implementado em algum SP; parece-me que o 2000 está no SP4, talvez o do Micheus esteja também e pode ser que os 2000 desatualizados não tenham essa função na dll.
-
beleza, não conhecia CopyFileEx. Isso poupa muito código.
-
Mas uma das vantagens do SHFileOperation na cópia é a barra de progresso.
Se for um arquivo ou diretório muito extenso, o usuário teria uma previsão de término, ao passo que escrevendo rotinas específicas, você teria que fazer uma recursão para saber o total de size dos arquivos e depois outra recursão para copiá-los pelo BlockRead e BlockWrite para implementar a barra.
-
É mais simples, mas nunca dará um número negativo
acho que assim é mais simples:Vai ver que ele quer números + e -
Pode fazer assim também:
Randomize; for i := 1 to 15 do Vet1[i] := Random(High(DWord));
for i := 1 to 15 do vet1[i] := i;
Abs. Progr'amador.
-
Vai ver que ele quer números + e -
Pode fazer assim também:
Randomize; for i := 1 to 15 do Vet1[i] := Random(High(DWord));
-
O problema do Guzenhu continua desde o dia 18
-
é é é, movido ou não movido; com ou sem símbolo ? :D
Não esqueceram de um pequeno detalhe ?
-
Na ajuda do Turbo Delphi, também diz a mesma coisa. Alguém se enganou.
-
Então deve existir a mesma função em 2 units, porque esse link diz que ela só está incluída no XP.Na documentação do Windows diz que essa função está presente desde o Windows 95. -
Só vejo um empecilho quanto à portabilidade. Essa função só funciona em WinXP e existem muitos Windows 2000/2003 no mercado.Thales e kmkg, apenas para ampliar o assunto, não poderia ser utilizada a função timeSetEvent . . . -
Sim, ProcessMessages processa todas as msgs da aplicação; tanto da Thread principal, quanto das secundárias.
Particularmente, utilizo Timers em Threads, mas prefiro fazer isso numa outra Thread pelo GetTickCount.
Não sei porque, mas não gosto muito de utilizar o ProcessMessages.
-
Se for colocado Application.ProcessMessages a cada iteração do loop, o callback será executado.E quanto a função de callback, ela só roda quando a aplicação está em idle, nesse caso a sua thread está sempre rodando um código dentro daquela repetição while, então se ela está rodando aquele código ela não pode rodar ao mesmo tempo a procedure de callback, certo? ;)Afinal as Threads servem justamente para rodar processos em concorrência.
-
Verifique quantas vezes você executa SetTimer dentro do método Execute.
Pode ser que ele esteja sendo executado a cada iteração do looping e isso faz com que o Timer seja zerado.
Ou seja, como seu idTimer é sempre 1, o tempo começa a ser contado a partir do último SetTimer executado.
-
Olá, defina a callback:
procedure Timer_Proc(H:Thandle; Msg,Event,Time:DWord); stdcall; begin if Msg = WM_Timer then {evento onTimer} end;
Depois para ativar o Timer:SetTimer(0, 1, 3000, @Timer_Proc); // Executa a cada 3 segundos
-
Só para complementar as informações fornecidas pelos colegas deste tópico; se alguém tiver alguma dúvida quanto às funções, mensagens ou constantes referentes hibernação, shutdown, boot ou qualquer outra coisa ligada à power management, vocês podem obtê-las no site oficial da Microsoft:
http://msdn.microsoft.com/library/default....t_reference.asp
Espero ter ajudado.
Pointer
em Delphi, Kylix
Postado
Pessoal, quando aloco memória para um Pointer:
Em outro ponto do programa gostaria de saber quanto foi alocado para p. Teria algum jeito de saber pelo próprio ponteiro ?