
kuroi
Membros-
Total de itens
7.184 -
Registro em
-
Última visita
Tudo que kuroi postou
-
você tem q criar tres vetores. um pro codigo, otro pra qtde e otro por valor. e você cria uma variavel pro maior, uma pro menor e uma pro total. e ai enquanto ele vai digitando, você já vai calculando (tipo, pra cada valor q ele digitar, você alem de gravar no vetor, já soma na variavel de total).
-
da uma pensada baseada na formula do y q eu passei. mas pensa na forma completa, assim: y = (var * 2) - 2 + 7; você sabe q o x comeca na posicao 10 e q vai mudando de 4 em 4 não?? da uma olhada na formula do y, a diferenca entre os y são de 2 caracteres, eu multiplico o quadrante por 2. so q acontece q a contagem comeca no 0, por isso subtraio o 2. então se o cara digita 1, vai apontar por 0. se digita 1, aponta pro 2, etc. só q o primeiro y ta na posicao 7. por isso somo mais 7. então se ele digita 1, e fica 0, então 0 + 7 = 7, ele chega na posicao 7.
-
nossa não é isso não... tipo é mo simples cara... mas se eu te dar o codigo de cara não tem graca... vamo ver se consigo fazer você chegar la... tipo... tenho duas coisas pra comentar... primero... dessa vez você acertou... é na variavel pos. afinal, você faz o for com o pos. e o pos vai apontar pra cada posicao do vetor. se você acha o 30, é só pegar qual o pos q ele achou... agora, porque esse pos++?? você sabe o q faz o ++?? ele serve pra somar mais 1 na variavel... porque você vai quere fazer isso?? segunda coisa... no vetor, o 30 pode aparecer mais de uma vez não pode?? mas veja q você ta mostrando com o printf depois do for. a linha do prinft não esta dentro de nenhum laco de repeticao. ou seja, o valor só vai ser mostrado uma vez. mas e se tiverem dois 30 dentro do vetor?? talvez você teja com dificuldade pra entender o q você pode fazer com o for. pensa assim, o for ta lendo o vetor todo. e cada posicao ele checa se é 30, certo?? se ele achar o 30, você tem q avisar q achou... e tem continuar procurando certo?? porque pode haver mais trintas. então, como fazer pra você mostrar assim q achar?? você testa... é 30?? é, então mostra... e continua a procurar ate chegar no final... consegue entender a logica??... ai se tiver dificuldade em transforma em codigo, ai poste de novo.
-
Aguadar termino de aplicativo (SHELL) e fechar programa
pergunta respondeu ao Marcio Alves Vieira de kuroi em Visual Basic
se você fechar o form logo depois do shell, não vai fazer diferenca, ele vai continuar executando o aplicativo. mas se ainda assim você quer saber quando termina a execucao do aplicativo, a unica forma q consigo imaginar seria usar a api findwindow, veja esse tópico: http://scriptbrasil.com.br/forum/index.php...ost&p=44268 você poe o findwindow dentro de um timer e ve se a janela do aplicativo esta aberta. quando o findwindow retornar 0 significa q fechou. então ai você fecha o formulario. o unico problema é q você tem q saber exatamente qual é o texto q vai aparecer no titulo da janela (ou seja, só funcionaria se você estiver prevendo qual o aplicativo q sera aberto, como imagino q pretende fazer). -
se você declarar como public na classe pai e herdar-la tb como public, você pode sair usando sim. exemplo: #include <stdio.h> #include <conio.h> class base { public : base() { /* Código */ } public : void metodo() { printf("base\n"); } }; class derivada : public base { public : derivada() : base() { } } int main(void) { derivada x = derivada(); x.metodo(); //Vai aparecer escrito "base". getch(); }[/code] presta atencao nesse public aqui: class derivada : public base ai se você declarar um objeto da classe derivada, você consegue usar o metodo metodo() normalmente. agora se você declarar o mesmo metodo metodo() tb na classe derivada, isso é um override, ou seja, se você tentar executar esse metodo, ele vai executar somente o codigo da classe filha. exemplo: [code]#include <stdio.h> #include <conio.h> class base { public : base() { /* Código */ } public : virtual void metodo() { printf("base\n"); } }; class derivada : public base { public : derivada() : base() { } public : void metodo() { printf("filha\n"); } }; int main(void) { derivada x = derivada(); x.metodo(); //Vai aparecer escrito "filha". getch(); }
-
mas onde você ta chamando o consultapormodelo()??
-
ta bom, já te te passei o codigo do visual basic.
-
é só editar o selection formula. ela funciona como a clausula where de uma query. você ta chamando o relatorio por onde, pelo visual basic?? qual componente você usa?? se for o CRControl, faca tipo assim: CrystalReport1.ReplaceSelectionFormula "{Tabela.Campo} = valor" se for CRAXDRT, assim: crRep.RecordSelectionFormula = "{Tabela.Campo} = valor"
-
entendi, ponha como True a propriedae WindowList da opcao q você quer q mostre as janelas. se você abrir o Menu Editor, você vai ver uma opcao chamada WindowList. é só marcar. mas só vai funcionar mesmo em menu de um form mdi.
-
é, porque você ta tentando compara com nd, se não tem com q compara ele não consegue. você não fez a validacao?? o IsNumeric() daria false se você tentasse pegar uma string vazia.
-
isso porque você ta pegando o valor aqui: valor_igual_30=valor[pos]; você não quer a posicao?? pega a variavel q guarda a posicao e não o valor q esta no array pra essa posicao.
-
legal, mas você ta fazendo exatamente o q eu falei pra não fazer aqui: você já compilao e rodou pra ver?? você vai ver q ele vai mostrar o x la em cima.
-
é como eu falei, o problema ta aqui ó: void CNave::mostrar(){ Blit_Imagem(x, y, img_nave, tela); }[/code] o Blit_Imagem tem 5 parametros e você ta passando só 4.
-
olha, você ta fazendo os fors e os ifs errados. olha: for (i = x;i < 100;i++); não pode ter esse ponto e virgula no final, senao ele acha q o for não faz nd, só vai somar o i ate o final e mais nd. mesma coisa nesse if: if ( strcmp ( a,info[i].ano)); printf("%s",info[i].nome); printf("%s",info[i].marca); printf("%s",info[i].op); printf("%s",info[i].ob); printf("%s",info[i].placa); printf("%i",info[i].km);[/code] acho q o q você queria era tipo isso não?? [code]if ( strcmp ( a,info[i].ano)) { printf("%s",info[i].nome); printf("%s",info[i].marca); printf("%s",info[i].op); printf("%s",info[i].ob); printf("%s",info[i].placa); printf("%i",info[i].km); } otra coisa, você ta declarando o a como int e passando no strcmp. o strcmp só compara string, q deve se declaradas do tipo char* ou char[] fora isso de uma olhada tb q parece q os { não tão batendo com os }. de uma verificada onde tem q abrir e onde tem q fechar cada um.
-
ou nathalia, para de mandar mp, poste sempre aqui. porque perguntar só pra mim ou só pro jonathan se você pode perguntar pra td mundo de uma vez aqui?? alem de q pra mim não faria diferenca, porque sempre leio todos os topicos aqui. jonathan, pelo q sei o # # é só pra fazer where. pelo menos, mesmo no access eu sempre gravo data com ' '. não testei aqui, mas talvez funcione sim com o # # mas é certeza q tb funciona com o ' ', sempre fiz assim. mas de qualquer forma, o melhor jeito de se gravar data em todos os bancos é no formato YYYY-MM-DD (com - mesmo no lugar de /). exemplo: strsql = "Update dados set entrega='" & Format(data_entrega, "YYYY-MM-DD") & "'" nathalia, "não funciona direito" pode signficia mil coisas, a gente não tem como saber se você não explicar direito. de preferencia poste o codigo dessa rotina e explica qual o problema. o q acontece, da mensagem de erro?? não volta o valor esperado?? então volta o q??
-
nathalia, muito provavelmente o erro é alguma coisa a ver com tipo de campo. exemplo, olha essa linha: strsql = strsql & ", OS_Pedcodigo = " & Pedido os pedido esta sem aspa. isso so pode acontecer se ele for numerico. imagino q ele seja numerico sim, mas olhe q se a variavel Pedido estiver vazia, vai dar erro, porque o sql ficara assim: ...OS_pagamento = 'XXXX', OS_Pedcodigo = , --esse igual sem nd aqui daria erro. OS_entrada = 'XXX',...[/code] otra possibilidade é você estar gravando campo numerico com aspa. pra descobrir o problema, faca um teste. tipo va tirando uma linha por vez e execute. exemplo, tira a linha onde atualiza o OS_Status e tenta executar pra ver se dar certo. se der, você vai saber q o problema ta no OS_Status. se não der certo, ai tire a linha do OS_Obs e assim por diante, ate você descobri. mas tem q toma cuidado porque pode ter mais de uma linha com erro. então caso você descubra a linha do erro e consiga corrigir, é bom ir colocando de volta uma de cada vez pra ver se não tem otra dando erro.
-
cara mostra pra gente qual são essas linhas 56 (CNave.cpp) e 23 (CInitFuncs.h) se não a gente não vai saber, mas o q parece é q você ta chamando o metodo mas não ta passando o ultimo parametro do tipo SDL_Rect.
-
a você pode usar o cancel só se quiser. tipo, custumo fazer a validacao sempre no validate em vez de no lostfocus, mesmo q não for usar o cancel, porque o validate server pra isso mesmo, por isso tem esse nome. e se um dia eu mudar de ideia e resolver por o cancel, já to dentro do validate e é so simplesmente adicionar uma linha. mas não entendi essa parte do erro q você falou.
-
isso mesmo. mas tipo, se ele passar 1 e 1, não vai jogar em 1 e 1, porque 1 e 1 vai parar la na linha de cima onde você pos um \n. como eu te falei, a linha 1 ta na y = 7. e a linha aumenta de dois em dois. exemplo, a linha dois ta no y = 9 e a tres ta no y = 11. então, pra passar o y você teria q multiplicar por 2, subtrair 2 e somar 7 (ou somar 5). tipo assim: y = (var * 2) - 2 + 7; o q é o mesmo q: y = (var * 2) + 5; assim, se ele digita 1, você cai no y = 7 (1 * 2 = 2 -> 2 + 5 = 7) e se ele digita 2, você você cai no y = 9 (2 * 2 = 4 -> 4 + 5 = 9) ai você tem q encontra uma formula pra coluna tb (q comeca em 18 e avanca de 4 em 4). ou mas ia ser legal se você pusesse os numeros em volta do tabulero pra identifica as colunas.
-
aline, por acaso você ta usando o mesmo sstab do vb6, aquela do tabctl32.ocx?? se for acho q não deve funcionar mesmo, use o tab control do proprio .net. no visual studio, na toolbox a esquerda, na parte de Containers, procure o Tab Control q vai funcionar. isso no 2005, acho q nas versoes mais novas tb é assim, mas nas mais antgias, pode ser q o controle seja otro com otro nome, mas deve ter algum pra tab, de uma olhada la.
-
legal. ou primero olha como você ta juntando a string. o and tem q fazer parte da string, não é pra ser o operador and do visual basic. assim ó: Data1.Recordset.Filter = "Grupo = 'Clubinho' And CodigoDoCliente = '" agora, olha como você ta fazendo com o codigo. o q é pra ser aquele '?? se você for abri a aspa tem q fechar. mas se o codigo é numero você não pode passar aspa em branco. normalmente os bancos nem aceitam com aspa mesmo q for numero, não tenho certeza quanto ao access. você tem q passa algum valor aqui, exemplo: Data1.Recordset.Filter = "Grupo = 'Clubinho' And CodigoDoCliente = 1" ou seja, acho q seria tipo isso: Data1.Recordset.Filter = "Grupo = 'Clubinho' And CodigoDoCliente = " & txtCodCli.Text mas tem q toma cuidado, caso o cara não digite numero. se vier algum texto vai dar erro, então você tem q validar. pode usar a funcao IsNumeric(). uma dica, não é bom fazer isso no change. tudo bem q o seu banco é pequeno, mas imagina q eu tenho 15000 registro, onde a consulta deve demorar mais, e quero achar o codigo 1234, ai eu digito 1 e tenho q espera ele filtra tudo pra depois poder digitar o 2 e esperar ele fazer toda a selecao de novo e assim por diante. o legal é você por um botao de busca e podia chamar o clique do botao tb quando apertasse enter, ou pode por tb no validate do txtCodCli.
-
Crystal Reports 4.6 [Distribuição] [Refresh Data]
pergunta respondeu ao Diorbert de kuroi em Crystal Reports
como assim, atualizar com os dados inseridos?? cada vez q você abrir o relatorio ele vai pegar os dados atuais ue. se ele inserir mais dados enquanto o relatorio tiver aberto, é só aperta o botao de refresh. por acaso o problema não é q você ta gravando os dados junto com o report?? tipo, entra em menu File e veja se a opcao Save Data with Report não esta marcada. se estiver, desmarque e veja se não resolve seu problema. qual erro q da?? -
então, movido pra mysql.
-
então, descobri aqui, pra poder dar filter no data1, você tem q abrir o recordset com tipo 1 e não 0. aqui: Data1.RecordsetType = 1 e então, você teria q atualizar o recordset a cada vez. a ultima linha aqui: Data1.Recordset.Filter = "Grupo = 'Simples'" Set Data1.Recordset = Data1.Recordset.OpenRecordset[/code] só o problema é q o filtro é cumulativo (exemplo, você filtra no simples e depois quando for filtrar por clubinho, ele vai fazer o filtro por cima do filtro do ), não sei se, abrindo o data assim, você tem como driblar isso. veja se você descobre alguma coisa ai, senao o otro jeito q eu sei q você faria seria abrir o recordset passando a query sql. ai isso é meio diferente do q você tem feito, mas funciona. assim: você declara separado os objetos database e recordset tipo assim: [code]Dim db As Database Dim rs As Recordset e ai depois você carrega o recordset no data: Private Sub Form_Load() Set db = OpenDatabase(App.Path & "\BD\db2.mdb") Set rs = db.OpenRecordset("Select * From Animais") Set Data1.Recordset = rs centraliza Me End Sub[/code] e ai em cada filtro, você reabre o botao passando o filtro. exemplo: [code]Private Sub OptClub_Click() Set rs = db.OpenRecordset("Select * From Animais Where Grupo = 'Clubinho'") Set Data1.Recordset = rs End Sub a chave no codigo de cima é o Where. ele vai fazer o filtro. então, acho q o melhor é em vez de fazer o filtro em cada evento clique, você faz uma sub separada só para o filtro. e no clique dos options, ou na alteracao do codigo do cliente você chama essa mesma sub. ai a sub testaria cada opcao e monta a string do select. não tem q fazer necessariamente a variavel, mas fica muito mais facil, veja se você entendeu o codigo, qualquer coisa pergunta.
-
aaaa é esse datacontrol, joga fora esse negocio q é muito ruim!!! zuera hahah mas tipo posta o codigo como você ta fazendo pra carregar os dados no grid, pra ver se eu descubro o problema. mas tipo os nomes dos campos tem q ser igual ta no banco. exemplo, o seu campo codigo chama "Código do Cliente". mas a query não aceita campo com espacos, você tem q por entre [ ] pra ele identificar. exemplo: Data1.RecordSet.Filter = "[Código do Cliente] = 9999" tenta fazer assim e veja se o erro para. se não posta o codigo do grid. string é uma sequencia de caracter, td q tiver entre aspa na linguagme é uma string. no caso eu quis dizer pra você montar a string de filtro de acordo com as opcoes. exemplo: Dim sql As String sql = "Codigo = " & txtCodigo.Text 'Faz o filtro por código If optClubinho.Value = True Then sql = sql & " And Tipo = 'Clubinho'" 'Se tiver selecionado clubinho, adiciona no filtro ElseIf optSimples.Value = True Then sql = sql & " And Tipo = 'Simples'" 'Se tiver selecionado simples, adiciona no filtro End If Data1.Recordset.Filter = sql 'Aqui seta o filtro[/code]