
s3c
Membros-
Total de itens
817 -
Registro em
-
Última visita
Tudo que s3c postou
-
Meu conselho é o seguinte: 1-Vá na linha do if após o repeat. 2-Digite F5(Break Point) nessa linha. 3-Digite F9. 4-Quando parar no Break Point, verifique a variável aux_str. 5-Repita os passos 3 e 4, contando o número de vezes que você digitou F9. 6-Quando a variável aux_str apresentar sujeira, re-inicie o programa e digite F9 o número de vezes que você contou - 1. Por ex se aux_str apresentar sujeira na 21 vez, digite F9 20 vezes e depois vá debugando pelo F8, sempre checando aux_str a cada linha executada. Assim você saberá em que instrução e registro/campo da tabela que aux_str se perdeu.
-
Está estranho a string que você postou no início com o código que você diz gerar a string. você postou no início: TIT_PED deve ser seu FieldName e você faz: TIT_PED =... or TIT_PED = ...Note que tem um or, mas no seu código aux_str := aux_str + ' and ' +Tabela.Fields[i].FieldName + ' = ''' + QR_Geral.FieldbyName(Tabela.Fields[i].FieldName).AsString + '''';você coloca um and. Outra coisa, sua variável aux_str é local ou global ? Poderia postar seu código completo ?
-
você não disse se todos os campos da sua tabela são Strings.Uma string pode ocupar até 2GB de memória e não escreve lixo a toa. Se você não colocar o First, sua string só é preenchida para o primeiro campo; os demais não entrarão no While porque sua QR_Geral estará na condição de Eof.
-
Isso quer dizer que todos os campos da sua tabela são Strings, certo ? Tem um furo de lógica no seu loop: A string é preenchida corretamente quando i = 0. Depois disso, a tabela chegou ao final e você não volta para o início. Após o repeat coloque: QR_Geral.First; Outra coisa: quando você testa: if (not Tabela.Fields.IsNull) para depois entrar no While, você está testando o campo do primeiro registro da tabela e se for null, você não está lendo os demais registros. É isso mesmo que você quer ?
-
i:=0; aux_str := ''; if (not Tabela.Fields[i].IsNull) while QR_Geral.EOF <> TRUE do begin aux_str := aux_str + ' and ' +Tabela.Fields[i].FieldName + ' = ''' + QR_Geral.FieldbyName(Tabela.Fields[i].FieldName).AsString + ''''; QR_Geral.Next; end; i:=i+1;Se for só este o código, a variável i só recebe o valor 0 e quando você faz: i := i+1; a tabela já chegou ao final.
-
você está indexando os TFields pela variável i. Como você está manipulando essa variável ?
-
O $ é a representação hexadecimal(base 16); sem o $ é a representação decimal(base 10).$41 = 1 + (4*16) = 65 = 5 + (6*10)
-
Poste o código como você faz o append.
-
Não neste caso; RegisterHotKey pede a VK(Virtual Key); ou seja; a tecla 'a' ou 'A' é sempre a $41(Hexadecimal) ou 65(Decimal). Tanto faz maiúscula ou minúscula, seu código VK no teclado é sempre o mesmo. Acho que não porque são teclas diferentes; 65 = $41 e $65 = 101
-
Agora você me pegou; comigo ele completa normalmente. Não sei o que pode ser; assim como comigo dá um erro URW3537 e até hoje não achei explicação plausível para isto.
-
Bom, no seu primeiro SQL, você dá Open no Dataset e se RecordCount = 0 então você coloca seu Dataset em modo de inserção e depois dá o Post. Note que seu Dataset está vazio e provavelmente ele está gravando o código por ser um campo de auto-incremento. No seu segundo SQL, você faz: Insert Into. Isso não tem nada a haver com Post. Quando se utiliza comandos como Insert, Update, Delete, normalmente você utiliza uma Query para depois aplicar o comando no Banco com Query.ExecSQL;
-
Olá colega; pela função CopyFile você não consegue copiar pastas. Utilize a função SHFileOperation: uses ShellApi; var SH:SHFILEOPSTRUCT; begin FillChar(SH, SizeOf(SH), 0); SH.Wnd := Handle; SH.wFunc := FO_Copy; SH.pFrom := 'Caminho da pasta origem' + #0; SH.pTo := 'Caminho da pasta destino' + #0; SHFileOperation(SH); end;
-
Olá Paulo, você compila normalmente o projeto sem erros certo ? Em qual método ele não completa o código ? Qual código que ele deveria completar e não completa nesse método ?
-
você está comparando um campo com ele mesmo; é por isso que sempre satisfaz a condição.você tem que dar um Select no Banco procurando pelo nome que deseja: Select Nome From Cidadaos Where Nome = 'Nome do Cidadão'. Depois você dá um Open no Dataset e checa Dataset.Eof; se for Eof então não está no cadastro, se não for, então já está.
-
Poste o código para ver se não há nada que possa interferir nisso.
-
Obrigado Micheus; mas em ambos os casos ele força a geração dos .DCU o que é efetuado dando-se Build All.
-
Se você quiser saber a resolução atual, ela está nas propriedades Screen.Width e Screen.Height. Se quiser modificar a resolução atual, então você deve seguir o que o colega Vivendo&Aprendendo mencionou: ChangeDisplaySettings.
-
É isso aí; quando ocorre comigo, compilo o projeto com Build All para ver se há erros em linhas anteriores. Aproveitando o tópico, alguém saberia me dizer o porquê do erro: "Internal Error URW3537" quando se compila com Ctrl F9; mas se der Build All, o projeto compila normalmente ?
-
Olá Paulo, bom inherited é muito utilizado em classes herdadas quando elas sobreescrevem métodos ou funções da classe ancestral com a cláusula override. Então quando você coloca inherited no método override da classe filha, você diz para executar todo o código da classe ancestral. No caso de interceptação de msgs (SysCommand), o Windows informa que veio uma msg de System e passa ela para o seu aplicativo. Se você colocar inherited, o Windows continua a processar essa msg; se não colocar, o Windows não faz mais nada. Quanto ao não completar o código, pode ser algum bug do Delphi, mas acho que é só fechar e reabrir novamente. Quanto ao {$R *.dfm}, normalmente é automaticamente colocado imediatamente após a implementation
-
Quanto a segunda questão, tente dar Build All no projeto e veja se não tem algum erro numa linha anterior; se tiver, ele não consegue completar o código nas linhas debaixo.
-
Aí está a explicação. você intercepta a SysCommand e não deixa prosseguir. Coloque inherited; no início da procedure.
-
você tem alguma WndProc ou outra procedure que intercepte msgs nesse Form ?
-
Mas no evento onShow, o Form ainda não está visível. É no evento onActivate que ele está visível.
-
Isso mesmo, a opção desliga todos os warnings do projeto. Acho que para desligar warnings específicos nas units não é "SYMBOL_PLATFORM" e sim "UNIT_PLATFORM"
-
Não entendí; se enabled está false, então o Form não se mexe mesmo.