Ir para conteúdo
Fórum Script Brasil

Douglas Soares

Veteranos
  • Total de itens

    864
  • Registro em

  • Última visita

Tudo que Douglas Soares postou

  1. Exatamente, o OnCreate é na criação do Form, e o OnShow é na hora que o form é mostrado! Abraços
  2. Desculpe não expliquei direito, existe os eventos do Form, o que você está usando é o OnCreate, você deverá usar o evento OnShow Abraços
  3. Não entendi, carrega uma print da tela no imageshack.us e manda aqui pra mim ver e entender melhor! Abraços
  4. Eu faço isso na tela de abertura, eu chego tabela por tabela e campo por campo e assim vou criando, num label coloco a tabela atual pra se der erro eu saber em qual parou, no caso o label5... // Tabela "Cargos" **** Firebird var tabela : string; L,C : TStringList; begin tabela := 'CARGOS'; L := TStringList.Create; SQLConnection1.GetTableNames(L); if ( not L.IndexOf(tabela) >= 0) then // Tabela não Existe begin SqlCriaTabela.Close; SqlCriaTabela.SQL.Clear; SqlCriaTabela.SQL.Add('CREATE TABLE '+ tabela +' ('); SqlCriaTabela.Sql.Add('CODIGO2 INTEGER NOT NULL PRIMARY KEY,'); SqlCriaTabela.Sql.Add('DESCRI2 VARCHAR(20))'); SqlCriaTabela.ExecSQL; SqlCriaGen.close; SqlCriaGen.sql.clear; SqlCriaGen.sql.add('CREATE GENERATOR GEN_CARGOS_CODIGO2'); SqlCriaGen.execSql; SqlCriaGen.close; SqlCriaGen.sql.clear; SqlCriaGen.sql.add('SET GENERATOR GEN_CARGOS_CODIGO2 TO 0'); SqlCriaGen.execSql; L.Free; end else begin C := TStringList.Create; sqlconnection1.GetFieldNames(tabela, C); SqlCriaTabela.SQL.clear; SqlCriaTabela.SQL.add('Alter Table'); SqlCriaTabela.SQL.add(tabela); cria := false; texto := ''; virg := ''; if C.IndexOf('CODIGO2') < 0 then begin texto := 'ADD CODIGO2 INTEGER NOT NULL PRIMARY KEY'; virg := ','; cria := true; end; if C.IndexOf('DESCRI2') < 0 then begin texto := texto + virg + 'ADD DESCRI2 VARCHAR(20)'; virg := ','; cria := true; end; /// ***** Rotina que Executa a Query sqlCriaTabela.Active := false; if cria then begin SqlCriaTabela.sql.add(texto); SqlCriaTabela.ExecSQL; end; end; sleep(15); reg := reg + 1; prog1.Position := reg; /// ***** Fim da rotina que executa a Query **** end; label5.Caption := tabela; self.Repaint; O que você precisará fazer é adicionar esses componentes acima, nas Querys você n precisa adicionar nada pois ele adiciona acima nesse código! Veja se consegue fazer, qualquer coisa fala q tento te ajudar! Abraços
  5. AdoTable é para Acess, ele utiliza da tecnologia ADO, o ClientDataSet usa a técnologia DBExpress e pode ser ligado a outros bancos de dados como o Firebird. Dê uma olhada nessa página sobre ADO http://ramerhy.vilabol.uol.com.br/tutorialado01.htm e nessa sobre clientdataset http://imasters.uol.com.br/artigo/3947/des...e_suas_funcoes/ Abraços
  6. Atualizar o banco em que sentido? colocar os dados ou criar as tabelas novas e campos? Abraços
  7. Se você já usava um dbGrid que tinha dados e estava funcionando, eu acho que esse Query1 que você criou não tem nada relacionado com os componentes do banco, tente substituir o Query1.FieldByName('comentario').AsString); pelo nome do componente de banco que você usa, acho que deve ser até outra query, exemplo: qryconsulta, qryDbGrid, minhaQry, ou algo assim, ou você deve estar usando um clientdataset, daí você deve coloca-lo, CdsConsulta, CdsMeu, MeuCds..... você tem q colocar o componente de banco que usa, e não criar uma Query1 somente para dar certo o código! Abraços
  8. Tente colocar no formShow pois o componente pode ainda não ter sido criado Abraços
  9. Cara é muita coisa pra minha cabeça, melhor eu estudar mais pra dps tentar fazer essas loucuras!, fiz do jeito tradicional com super mega hyper case... pelo menos funciona, rsrsrs vlw pela força! Abraços
  10. É claro que é só eu fazer ShowMessage(teste1); .......... o problema é que tem uma hora que faço um for, e obtenho o nome de uma variavel a partir de uma string que é o nome de um checkbox, aí nessa hora eu precisaria dessa conversão, vou passar o exemplo real! procedure TfrmPrincipal.btn_enviarClick(Sender: TObject); var i : integer; tam : integer; begin for i := 1 to Self.ComponentCount - 1 do begin if Components[i].ClassType = TJvCheckBox then begin if Copy(TJvCheckBox(Components[i]).Name, 1, 9) = 'chk_envia' then begin if TJvCheckBox(Components[i]).Checked then begin tam := length(TJvCheckBox(Components[i]).Name); jogarnodbgrid(copy(TJvCheckBox(Components[i]).Name, 10, tam - 11) , 'ftp' + copy(TJvCheckBox(Components[i]).Name, 10, tam - 11)); TJvCheckBox(Components[i]).Checked := false; end; end; end; end; cdsUpload.First; JvThread1.Execute(Self); end; o Problema é essa linha: jogarnodbgrid(copy(TJvCheckBox(Components).Name, 10, tam - 11) , 'ftp' + copy(TJvCheckBox(Components).Name, 10, tam - 11)); essa função: copy(TJvCheckBox(Components).Name, 10, tam - 11 me retorna varias coisas: installsigi, installcell, installconv, installgrupos, atusigi, atucell, atuconv, atugrupos, demosigi, democell, democonv, demogrupos.... por isso ao invez deu pegar e passar a string em sí, eu gostaria de passar direto a variavel, mas ao invez deu fazer um case gigantesco eu gostaria de tipo um typecast como te disse, daí ficaria assim: jogarnodbgrid(TVar(copy(TJvCheckBox(Components).Name, 10, tam - 11)) , 'ftp' + TVar(copy(TJvCheckBox(Components).Name, 10, tam - 11))); Deu pra entender??? tem jeito de fazer isso ou terei que deixar meu case épico mesmo? Abraços
  11. Fiz do jeito tradicional... porém o que você me passou não é o que eu queria... eu queria mais ou menos assim olha: var teste1, teste2, teste3 : string; begin teste1 := 'C:\Douglas'; teste2 := 'C:\Jhonas'; teste3 := 'C:\Teste'; ShowMessage('teste1'); end; Veja que eu coloquei no showmessage o teste1 como string.... porém eu qria que ele exibisse o valor do teste1!, com algo parecido assim: ShowMessage(TVar('teste1')); Abraços
  12. Tenho orgulho de ser Humilde! kkkkkk

  13. Puxa mas sem eu saber o erro que está exibindo aí ao compilar eu não tenho como te ajudar... eu acho que você não tem o componente Query1, ele deve ter outro nome, você tem q colocar o nome correspondente! Abraços
  14. hueheuheue, com esse comando aí se invocava até o capeta, kkkkkkkkkkk Olha aqui a tabela ascii http://www.tabelaascii.com/ e os códigos de teclas pro delphi http://www.arquivodecodigos.net/arquivo/re...as_virtuais.php Isso vai te ajudar quando quiser fazer referencias à teclas! Abraços
  15. Mas é claro que não vai funcionar o backspace ehuehue, você o impediu de funcionar, o código #8 é o código ascii no backspace, se você quer bloquear a virgula e o ponto e virgula o correto é fazer assim ó: ... if (key in [';',',']) then ... se quiser bloquear somente o ponto e virgula daí é assim: ... if key = ';' then ... Abraços
  16. hehe, tenta assim ó: if Column.Field.Name = 'comentario' then Abraços
  17. Tente isso: http://www.devmedia.com.br/articles/viewcomp.asp?comp=1139 Abraços
  18. Tente abrir o windows media player do seu computador e veja se ele está funcionando... Abraços
  19. Eu já utilizei o Delphi 7 e o 2010 numa maquina com Windows 7 64 Bits e não tive nenhum problema! Abraços
  20. Bom dia amigos do script brasil! Estou me matando com uma dúvida aqui... como eu faria pra converter uma string em uma variavel já existente... tipo um typecast... to precisando mt saber disso pra mim terminar uma aplicação, vou dar um exemplo: a função joganodbgrid adiciona um item lá que contem um caminho local e um caminho remoto, C:\Douglas\Teste.exe, \www\downloads\Teste.exe... e esses caminhos já tenho eles em variaveis... dai cada checkbox contem o nome da variavel, assim: chk_enviainstallsigi... daí eu obtenho o nome installsigi através da função Copy e passo pra função joganodbgrid, só que é claro que ele adiciona a string installsigi lá no dbgrid, e eu qria que adicionasse o valor da variavel joganodbgrid... tem algum typecast para isso ou vou ter que fazer uma checagem lá dentro da função e ir passando os valores manualmente??? jogarnodbgrid(copy(TJvCheckBox(Components[i]).Name, 10, tam) , 'ftp' + copy(TJvCheckBox(Components[i]).Name, 10, tam)); Obrigado!
  21. Dê uma olhada nesse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=90142 Abraços
  22. Coloca isso no OnClick do botão: procedure Tform1.Button1Click(Sender: TObject); var i, c : integer; S : string; begin S := LowerCase(Memo1.Text); while Pos(#32, S) > 0 do delete(s,Pos(#32, S),1); c := length(s); for i := 1 to c-1 do Insert(#32,s,i*2); Memo1.Text := S; end; Abraços
  23. Vlw Jhonas você é meu herói... rsrsrsrs Abraços
  24. Ah... to sem delphi aki em casa agora... segunda quando eu voltar trabalhar vo precisa disso... se você puder ir cortando o bife pra mim eu agradeço :P Abraços
×
×
  • Criar Novo...