kmkg
Membros-
Total de itens
40 -
Registro em
-
Última visita
Sobre kmkg
kmkg's Achievements
0
Reputação
-
Pessoal, quando aloco memória para um Pointer: ... private p:Pointer; ... procedure TForm1.Button1Click(Sender: TObject); begin p := AllocMem(65536); end;Em outro ponto do programa gostaria de saber quanto foi alocado para p. Teria algum jeito de saber pelo próprio ponteiro ?
-
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. 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.
-
acho que assim é mais simples: for i := 1 to 15 do vet1[i] := i; Abs. Progr'amador. É mais simples, mas nunca dará um número negativo
-
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));