Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Como a distribuição das mesas pode variar de um baile para outro, necessito alterar a disposições destas mesas (panels). o que voce quer dizer quando diz: alterar disposições destas mesas ? alterar em que sentido ( horizontal, vertical ...etc ) ...em relação ao seu Form ? Como posso fazer para não ter que repetir essas rotinas 150 vezes ? se voce tem que arrastar e soltar, como não quer ter que repetir as rotinas ( esta querendo algo automatico ? )
  2. Jhonas

    Pesquisa em Form

    Voce esta querendo criar arrays dinamicos para trocar os nomes dos campos e do tamanho do campo no DBgrid ?
  3. variaveis declaradas e não usadas só dão avisos de warning mas não prejudicam o funcionamento do programa se não quiser que elas apareçam na compilação, então voce deve retira-las do programa manualmente ou simplesmente não mostra-los http://www.delphibasics.co.uk/RTL.asp?Name=$Hints abraço
  4. exemplos https://dicasdeprogramacao.com.br/estrutura-de-selecao-multipla-escolha-caso/ ou https://www.google.com.br/search?source=hp&ei=GGJFW_e_HMKQ5gLC66j4DA&q=algoritmo+visualg+escolha&o que=algoritmo+visualg+escolha&gs_l=psy-ab.3..0i22i30k1.3040.12190.0.12819.25.17.0.8.8.0.309.2442.0j2j7j1.10.0....0...1c.1.64.psy-ab..7.18.2524...0j0i131k1.0.JYLArq3iEKg abraço
  5. exemplo: http://www.comunix.net/integracao/delphi1.htm abraço
  6. amigo, isso era para voce saber como resolver ... é muito simples procedure TForm1.Button1Click(Sender: TObject); var i,j, num, numx : integer; s,s1 : string; begin i := 0; j := 0; numx := 0; s := trim(UpperCase(Edit1.Text)); s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]); for i := 1 to length(s) do begin for j := 1 to 26 do begin if s[i] = letras[j] then begin if j <= 9 then num := j; if (j > 9) and (j <= 18) then num := j - 9; if j > 18 then num := j - 18; end; end; numx := numx + num; end; // VALOR DA SOMA Label1.Caption := (inttostr(numx)); if (numx = 11) or (numx = 22) then showmessage('Achei um numero mestre na SOMA => ' + inttostr(numx)); if numx > 9 then /// PRIMEIRA REDUÇÃO begin s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); end; if (numx = 11) or (numx = 22) then showmessage('Achei um numero mestre na REDUÇÃO => ' + inttostr(numx)); if numx > 9 then /// SEGUNDA REDUÇÃO begin s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); end; // VALOR DA REDUÇÃO Label2.Caption := (inttostr(numx)); end; abraço
  7. No total consigo pegar, mais se aparecer numas dessas soma de redução não vou saber pegar esses números mestres Veja a mudança no código procedure TForm1.Button1Click(Sender: TObject); var i,j, num, numx : integer; s,s1 : string; begin i := 0; j := 0; numx := 0; s := trim(UpperCase(Edit1.Text)); s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]); for i := 1 to length(s) do begin for j := 1 to 26 do begin if s[i] = letras[j] then begin if j <= 9 then num := j; if (j > 9) and (j <= 18) then num := j - 9; if j > 18 then num := j - 18; end; end; numx := numx + num; end; // VALOR DA SOMA Label1.Caption := (inttostr(numx)); if (numx = 11) or (numx = 22) then showmessage('Achei um numero mestre na SOMA => ' + inttostr(numx); s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); if (numx = 11) or (numx = 22) then showmessage('Achei um numero mestre na REDUÇÃO => ' + inttostr(numx); if numx > 9 then begin s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); end; // VALOR DA REDUÇÃO Label2.Caption := (inttostr(numx)); end; Denomina-se um monômio ou termo algébrico, todo produto de números reais expresso ou não por variáveis (letras). exemplo 5x2→grau 2 Neste monômio a parte literal é formada somente por uma letra (x), portanto o grau dele é o expoente do x. 5 →grau 0 Este monômio não tem parte literal, portanto seu grau é 0. Então o que voce esta fazendo é somar monômios de grau zero 2 + 3 + 6 + 8 = 19 abraço
  8. Em delphi esse código ficaria assim: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; letras : array[1..26] of char = ('A','B','C','D','E','F','G','H','I', 'J','K','L','M','N','O','P','Q','R', 'S','T','U','V','W','X','Y','Z'); implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j, num, numx : integer; s,s1 : string; begin i := 0; j := 0; numx := 0; s := trim(UpperCase(Edit1.Text)); s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]); for i := 1 to length(s) do begin for j := 1 to 26 do begin if s[i] = letras[j] then begin if j <= 9 then num := j; if (j > 9) and (j <= 18) then num := j - 9; if j > 18 then num := j - 18; end; end; numx := numx + num; end; // VALOR DA SOMA Label1.Caption := (inttostr(numx)); s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); if numx > 9 then begin s1 := inttostr(numx); numx := strtoint(s1[1]); numx := numx + strtoint(s1[2]); end; // VALOR DA REDUÇÃO Label2.Caption := (inttostr(numx)); end; end. OBS: A soma de Jusana Guethes não é 38 e sim 43 abraço
  9. já que voce quer converter código, segue esse link http://www.pacifier.com/~mmead/jni/delphi/javadpr/index.html mas seria mais facil voce dizer qual a finalidade do programa ... pode ser que exista um em delphi abraço
  10. Bom, além de voce ter que usar uma tela touch screen, voce tera que programar os comandos para emitirem sons veja esses links usando delphi 7 com tela touch screen https://www.google.com.br/search?source=hp&amp;ei=m6I-W9PWKYOcwgTizrmYDA&amp;q=usando+delphi+com+tela+touch+screen&amp;o que=usando+delphi+com+tela+touch+scree&amp;gs_l=psy-ab.1.0.33i21k1.2433.15128.0.17728.38.34.1.1.1.0.325.4123.0j25j2j1.28.0....0...1c.1.64.psy-ab..8.24.3411...0j0i131k1j0i10k1j0i22i30k1j33i22i29i30k1j33i160k1.0.-4KPcqfCQwg fazer o delphi 7 falar https://www.google.com.br/search?ei=kKQ-W-TGH4a5wATCx72ICw&amp;q=fazer+o+delphi+7+falar&amp;o que=fazer+o+delphi+falar&amp;gs_l=psy-ab.3.0.0i22i30k1.19002.24711.0.29383.27.26.0.0.0.0.284.2606.1j16j2.19.0....0...1c.1.64.psy-ab..11.7.917...0i7i30k1j0i7i10i30k1j0i30k1j0i8i30k1j0i8i13i30k1.0.bTbROswaejc abraço
  11. Agora entendi o que voce esta querendo... é fazer um Drag and Drop em um TImage veja esses exemplos ... se não conseguir resolver, vejo um código simples para voce https://www.google.com.br/search?ei=ch08W8mrB8iEwgS6mav4Bw&amp;q=drag+and+drop+image+example+delphi&amp;o que=drag+and+drop+image+example+delphi&amp;gs_l=psy-ab.3..33i22i29i30k1l5.4281.7614.0.9400.7.7.0.0.0.0.360.854.0j4j0j1.5.0....0...1c.1.64.psy-ab..2.5.851...0i22i30k1.0.uspT4imDZvM OBS: No 1º e no 2º link tem um exemplo que voce vai poder usar no seu projeto abraço
  12. Se voce quiser deixar fixo um TImage1, basta colocar um valor fixo na propriedade Heigth e Width .... e na propriedade Autosize como False dessa maneira voce não precisa usar o Panel exemplo: tipo no onmousedown do TImage2 eu coloco o seguinte código: image1.left:=x; image1.top:=y; coloque esse código no OnMouseMove do TImage2 abraço
  13. não entendi direito ... voce usa um panel em baixo do TImage ( tipo uma placa com o nome da Imagem ? )
  14. Eu uso uma 1ª query para pesquisar o registro que eu desejo (botões - inserir, alterar, deletar, ou imprimir ) Depois de selecionar o registro, eu passo um campo desse registro como parametro para uma 2ª query, para trazer para tela os campos desse registro. depois para Salvar (botão => Ok ) ou Cancelar ( botão => Cancel ) eu uso o ClienteDataSet para essa finalidade, que esta ligado a minha 2ª query ClienteDataSet1.Post; ClienteDataSet1.ApplyUpdates(-1); // Salvar ou ClienteDataSet1.Cancel; // Cancelar Não tem erro. abraço
  15. Seria correto usar uma query para buscas e outra para gravar/editar/excluir? Sim.. voce poderia usar o componente UpdateSQL1 ( usando as propriedades DeleteSQL, InsertSQL e ModifySQL ) mas se tiver dificuldade com esse componente, continue a usar a forma como esta acostumado abraço
  16. baixe o Mysql Front ... ele vai te ajudar na criação e testes de SQL fora do seu programa https://www.google.com.br/search?source=hp&amp;ei=ppI6W4HrEMyJwgTbgpCgCA&amp;q=mysql+front+portugues&amp;o que=mysql+front&amp;gs_l=psy-ab.1.6.0l8.1591.4198.0.8945.11.9.0.2.2.0.123.780.1j6.7.0....0...1c.1.64.psy-ab..2.9.801...0i131k1.0.IFuyckj-QLs abraço
  17. exemplos SQL INNER JOIN syntax: SELECT *FROM [TABLE 1] INNER JOIN [TABLE 2] ON [TABLE 1].[COLUMN NAME 1] = [TABLE 2].[COLUMN NAME 2] exemplo pratico Na tabela clientes tenho o campo COD e na tabela veiculos tenho o campo COD_CLIENTE SELECT * FROM CLIENTES INNER JOIN VEICULOS ON COD = COD.CLIENTE OU SELECT * FROM CLIENTES INNER JOIN VEICULOS ON CLIENTES.COD = VEICULOS.COD_CLIENTE ou veja esse link https://www.sqlguides.com/sql_inner_join.php abraço
  18. Mas quando você compila um projeto, seja novo ou antigo, ele não vai buscar os componentes justamente na Library Path ? Sim, mas imagine que voce tem um projeto antigo que um determinado componente esteja em tal caminho. Mas por algum motivo, voce teve que reinstalar esse componente... o caminho pode não ser aquele que havia sido instalado anteriormente. Então para o novo projeto isso não ira implicar em nada, mas para o projeto antigo sim. Se voce quiser instalar uma versão do delphi no seu note pessoal, e quiser instalar os componentes em outro caminho, voce tera que, ao compilar o projeto mudar a library path de todos os componentes do projeto para o novo caminho ou simplesmente trocar os componentes do projeto, pelos componentes instalados no seu delphi. como te falei, isso da trabalho. abraço
  19. Sim, mas isso vai dar muito trabalho. Os projetos já prontos, tem como padrão buscar o caminho dos componentes instalados ... se voce modifica esses caminhos, na hora de compilar o projeto, vai ocorrer uma série de erros. Para projetos novos não vai ter problemas se os componentes forem instalados em caminhos diferentes. Vale lembrar tambem que se os componentes não forem para a mesma versão do delphi instalado, tambem vai ocorrer problemas Para mudar a Library path, lembre-se que os componentes terão que estar nesse caminho. abraço
  20. experimente usar esse comando no TImage doublebufered:=true; ou tente esses links https://www.google.com.br/search?source=hp&amp;ei=Na42W8LaEoeIwgT9mI_oCA&amp;q=Double+buffering+with+a+back+buffer+in+delphi&amp;o que=Double+buffering+with+a+back+buffer+in+delphi&amp;gs_l=psy-ab.3...1565.4131.0.4793.8.8.0.0.0.0.352.1243.0j7j0j1.8.0....0...1c.1.64.psy-ab..0.4.461...33i22i29i30k1j33i160k1.0.pIqk3DecPbM abraço
  21. Exemplo: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Function CropImage(Imagem: TGraphic; Val: TRect): TBitmap; var bmp, cbmp: TBitmap; rect: TRect; begin bmp := TBitmap.Create; bmp.Height := Val.Bottom - Val.Top; bmp.Width := Val.Right - Val.Left; rect := Bounds(0, 0, bmp.Width, bmp.Height); try cbmp := TBitmap.Create; cbmp.Height := Imagem.Height; cbmp.Width := Imagem.Width; cbmp.Canvas.Draw(0,0,Imagem); bmp.Canvas.CopyRect(rect, cbmp.Canvas, Val); Result :=bmp; finally cbmp.Free; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Image2.Picture.Bitmap := CropImage(Image1.Picture.Graphic, Bounds(x, y, 160, 160)); end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Image2.Picture.Bitmap.SaveToFile('C:\ImagemCortada.bmp'); showmessage('Imagem Cortada Salva'); end; end. Coloque em um Form 2 componentes TImage: No primeiro ( Image1 )voce coloca a imagem que voce quer No Image2 coloque na propriedade Height = 160 e no Width = 160 ( Será o Resultado ) Ao passear com o mouse pelo Image1, vai aparecer no Image2 ( tamanho 160 x 160 ) a parte da figura que voce está selecionando Se a figura é o que voce esta querendo, então voce clika com o mouse nesse ponto da figura e ela será salva no drive local: 'C:\ImagemCortada.bmp' OBS: modifique o código para o seu uso abraço
  22. tentei adaptar com um código que o Jhonas postou aqui no fórum, Não me lembro mais desse link ... me passe novamente o link e vejo se dá pra modificar para o seu uso. abraço
  23. A lógica e a seguinte: supondo que cada boleto é um registro na sua tabela, no botão inserir, voce faz todo o procedimento para incluir o primeiro na hora de salvar esse registro, voce pergunta se quer continuar a inserir um novo boleto para o mesmo cliente se a resposta for sim ( use uma variavel de controle - sim ou não ) , então voce armazena o valor do campo cliente e nota em outras variaveis , salva o registro , e faz o programa clicar automaticamente no botão inserir ex: Button1.Click; quando for executado ( botão inserir ) vai fazer novamente o procedimento de inclusão, só que nesse ponto voce testa a variavel de controle ... se sim, então voce joga os valores que foram armazenados nas variaveis para os respectivos campos, e continua a digitar nos campos que faltam ser preenchidos e depois salva o registro. e o processo continua, ate que voce digite um não na variavel de controle para encerrar. abraço
  24. Da forma como voce postou , não poderia ser assim. voce usa botões para inserir, alterar, excluir, salvar e cancelar no seu programa ?
  25. Isso é bem simples... basta criar uma rotina com um comando ( For ) loop variando de 1 a 3 e dentro dele voce limpa apenas os campos que voce quer digitar novamente, mantendo os demais. acrescente dentro desse For, o resto dos comandos que voce quer que seja executado depois disso é só finalizar o cadastro abraço
×
×
  • Criar Novo...