Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Voce chegou a ver os outros links ? https://maikelscheid.blogspot.com/2009/01/destacando-palavra-no-richedit.html no ultimo link tambem tem exemplos de uso abraço
  2. Voce quer trocar a côr do texto ? se for, veja esses links ou https://www.google.com.br/search?source=hp&ei=ZRcHX6asArfG5OUPrN-N8Ag&q=trocar+cor+do+texto+do+richedit+delphi&o que=trocar+cor+do+texto+do+richedit+delphi&gs_lcp=CgZwc3ktYWIQAzoICAAQsQMQgwE6BQgAELEDOgIIAFDGCliMXWCoYmgAcAB4AIAB-gGIAaQmkgEGMS4zNy4xmAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab&ved=0ahUKEwjm8uWln8DqAhU3I7kGHaxvA44Q4dUDCAY&uact=5 abraço
  3. Para o TRadioGroup seria assim procedure TForm1.RadioGroup1Click(Sender: TObject); begin SHOWMESSAGE(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]); end; Para o TButtonGroup não deve ser muito diferente begin SHOWMESSAGE(ButtonGroup1.Items.Strings[ButtonGroup1.ItemIndex]); end; ou begin SHOWMESSAGE(ButtonGroup1.Items.Items[ButtonGroup1.ItemIndex].Caption) end; ou veja esses exemplos: http://docwiki.embarcadero.com/CodeExamples/XE2/en/VCLButtons(Delphi) http://www.manew.com/blog-166599-41243.html http://www.functionx.com/delphi/controls/buttongoup.htm https://www.experts-exchange.com/questions/26622600/ButtonGroup.html abraço
  4. Integrar delphi com o writer do libre office ainda não fiz, mas o delphi com um documento do word sim. No Word eu carrego o documento que servirá de modelo. Dentro desse documento, eu coloco variaveis ( tem que ser nomes unicos e que não vão aparecer em nenhum lugar do documento ) , para que depois da leitura linha a linha, a variavel seja encontrada e depois susbstituida pelo delphi. depois basta salvar o documento modelo com outro nome, e fica tudo perfeito. Exemplos nesses links https://www.google.com.br/search?source=hp&ei=YJwDX-GZNr6z5OUPrsae4AM&q=substituir+variaveis+no+word+pelo+delphi&o que=substituir+variaveis+no+word+pelo+delphi&gs_lcp=CgZwc3ktYWIQAzoFCAAQsQM6AggAOgkIABAKEEYQ-QE6BAgAEAo6CggAELEDEIMBEAo6CggAELEDEEYQ-QE6CAgAELEDEIMBOgYIABAWEB46CAgAEA0QBRAeOgUIIRCgAToICCEQFhAdEB46BAghEApQ4A1Y5nVgwHhoAXAAeAaAAbAMiAGiapIBEjEuMjYuMy4yLjQuMy4yLjEuMZgBAKABAaoBB2d3cy13aXo&sclient=psy-ab&ved=0ahUKEwjhyZXHzbnqAhW-GbkGHS6jBzwQ4dUDCAY&uact=5 Obs: tente substituir o Word pelo writer do libre office abraço
  5. Essas variaveis voce pode passar para o select antes de executar a pesquisa Veja esses links https://www.google.com.br/search?source=hp&ei=FO_8XqbnCZWy5OUP97uxgAk&q=select+com+filtros+mysql&o que=select+com+filtros+mysql&gs_lcp=CgZwc3ktYWIQAzIICCEQFhAdEB4yCAghEBYQHRAeOgUIABCxAzoCCAA6BQgAEIMBOgYIABAWEB46CAgAEBYQChAeOgUIIRCgAVCyDVjIS2DSVmgBcAB4AIABrgKIAaQtkgEIMC4yLjIxLjGYAQCgAQGqAQdnd3Mtd2l6sAEA&sclient=psy-ab&ved=0ahUKEwimwbW476zqAhUVGbkGHfddDJAQ4dUDCAY&uact=5 https://www.google.com.br/search?ei=CO78XsvvHdew5OUPyoS-yAU&q=select+inner+join+mysql&o que=select+inner+join&gs_lcp=CgZwc3ktYWIQARgCMgIIADICCAAyAggAMgYIABAHEB4yAggAMgYIABAHEB4yBggAEAcQHjICCAAyAggAMgIIADoECAAQR1Dcd1jmgAFgoKsBaABwAXgBgAH0AogB0AuSAQcwLjEuNC4xmAEAoAEBqgEHZ3dzLXdpeg&sclient=psy-ab abraço
  6. Veja esses links https://www.google.com.br/search?ei=CO78XsvvHdew5OUPyoS-yAU&q=select+inner+join+mysql&o que=select+inner+join&gs_lcp=CgZwc3ktYWIQARgCMgIIADICCAAyAggAMgYIABAHEB4yAggAMgYIABAHEB4yBggAEAcQHjICCAAyAggAMgIIADoECAAQR1Dcd1jmgAFgoKsBaABwAXgBgAH0AogB0AuSAQcwLjEuNC4xmAEAoAEBqgEHZ3dzLXdpeg&sclient=psy-ab abraço
  7. Num dos links que te passei tem um codigo que funciona assim: voce monta os seus forms no seu computador usando a sua propria tela ... vamos supor que voce esteja usando a resolução de 1024 X 768 ... então voce configura tudo para funcionar nessa resolução. quando voce executar o seu programa em outra maquina e nela estiver usando uma resolução de ( Ex: 1280 X 800 ) , o código vai alterar automaticamente ( assim que for executado o programa ) para a resolução que voce usou inicialmente ( 1024 X 768 ) e assim que o programa for fechado, a resolução da tela volta a ser a que estava sendo usada na maquina ( 1280 X 800 ) O código esta num dos links que te passei ... veja se voce consegue achar abraço
  8. Veja esses links https://www.google.com.br/search?source=hp&ei=Lhv2XrbJNom45OUP7_eF2A4&q=conectar+mysql+uol+host&o que=acessar+mysql+uo&gs_lcp=CgZwc3ktYWIQARgAMgYIABAWEB46BQgAELEDOgIIADoFCAAQgwE6CggAELEDEEYQ-QFQ8gpYilxgzHtoAXAAeACAAbIBiAGOD5IBBDAuMTaYAQCgAQGqAQdnd3Mtd2l6sAEA&sclient=psy-ab abraço
  9. Veja esses links https://www.google.com.br/search?ei=mBn2XuX5G7HM5OUPi8eD-AU&q=medir+tempo+de+pesquisa+mysql&o que=medir+tempo+de+pesquisa+mysql&gs_lcp=CgZwc3ktYWIQA1DCuANYlMMDYPTHA2gAcAB4AIABkAGIAYwGkgEDMC42mAEAoAEBqgEHZ3dzLXdpeg&sclient=psy-ab&ved=0ahUKEwjlpbqA65_qAhUxJrkGHYvjAF8Q4dUDCAs&uact=5 https://www.google.com.br/search?source=hp&ei=jhn2XuqBGqSW0AbLybKoBw&q=tempo+de+pesquisa+mysql&o que=tempo+de+pesquisa+mysql&gs_lcp=CgZwc3ktYWIQAzoFCAAQgwE6BQgAELEDOgIIADoGCAAQFhAeOggIIRAWEB0QHlCCDljyQWDgRmgBcAB4AIABvgGIAfYVkgEEMS4yMpgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab&ved=0ahUKEwjqgNb76p_qAhUkC9QKHcukDHUQ4dUDCAY&uact=5 abraço
  10. esta versão Z-7.2.6 deve funcionar em Lazarus 2.0.4 ? Pelas informações que eu li, deve funcionar. abraço
  11. Veja esses links https://www.devmedia.com.br/forum/ajustar-todos-os-forms-a-resolucao-de-video/382092 https://www.google.com.br/search?source=hp&ei=QU_zXs_sH7m65OUP2cS9kAw&q=tela+auto+ajustável+delphi&o que=tela+autoajustavel+delp&gs_lcp=CgZwc3ktYWIQARgCMgcIIRAKEKABMgcIIRAKEKABMgQIIRAKOgUIABCDAToFCAAQsQM6AggAOgQIABAKOggIABAWEAoQHjoGCAAQFhAeOggIABAIEA0QHjoFCCEQoAFQihZY-JMBYPSpAWgDcAB4AIABygGIAaYZkgEGMC4yNC4xmAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab ou Ajuste automatico da resolução ( FUNCIONA PERFEITAMENTE ) OK Código Configurando a resolução de vídeo Autor:Ricardo de Abreu Como tive muitos problemas em relação a configurações de vídeo resolvi criar este mini tutorial para que possam ajudar a quem estiver interessado . Nota : Estas dicas que estão neste documento não são minhas apenas peguei na Internet e sites de programação e adaptei conforme minha necessidade sendo assim cheguei em um padrão que qualquer pode adaptar seguindo o modelo que fiz Set Screen Resolution No delphi por padrão não existe esta função você irá precisar dela mais tarde , declare na USES logo abaixo de {$R *.dfm}: Não esqueça de usar a biblioteca do windows : Shellapi. function SetScreenResolution(Width, Height: integer): Longint; var DeviceMode: TDeviceMode; begin with DeviceMode do begin dmSize := SizeOf(TDeviceMode); dmPelsWidth := Width; dmPelsHeight := Height; dmFields := DM_PELSWIDTH or DM_PELSHEIGHT; end; Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY); end; Declare as seguintes variáveis globais : oldwidth:integer; OldHeight :integer; Auxwidth:integer; Auxheight:integer ; No evento On Create do Form principal ponha o seguinte código : var Mens: String; begin EnableMenuItem(GetSystemMenu(handle, False), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED); begin if (Screen.Width =1024) and (Screen.Height = 768) then begin Auxwidth :=1024; Auxheight :=768; end; if (Screen.Width <> 1024) and (Screen.Height <> 768) then begin OldWidth := Screen.Width; OldHeight := Screen.Height; Auxwidth:=oldwidth; Auxheight:=OldHeight; Mens := 'O Programa "Seu programa -"irá ajustar sua resolução de vídeo para 1024 X 768'+#13; Mens := Mens + 'automaticamente para uma melhor visualisação, mas não se preocupe pois ao termino de uso ,' + #13; Mens := Mens + ' ele retornará sua resolução novamente. Muito obrigado...'; MessageBox(Self.Handle, PChar(Mens), 'Ajuste de Vídeo', MB_OK + MB_ICONWARNING); SetScreenResolution(1024, 768); end; end; end; Explicando : Desenvolvi este programa em uma resolução 1024X768 (tamanho do Forms) mas se por exemplo o usuário estiver com uma resolução diferente seja ele maior ou menor que 1024 ele seta para 1024 e quando ele encerra o programa ele volta para resolução anterior : Detalhes: Ao criar o form o código faz a seguinte verificação , As variaveis OldWidth e OldHeight recebem a resolução da tela atual depois testa as seguintes condições : “Se for 1024 as variáveis auxiliares Auxwidth e Auxheight recebem as resolução 1024 X768 “(Isto será usado com base na hora de fechar o form logo abaixo ). Agora “Se for diferente de 1024 as as variáveis auxiliares Auxwidth e Auxheight recebem agora o que as variáveis OldWidth e OldHeight ou seja a resolução de tela atual . ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Agora coloque um botão “sair “ ou no evento OnClose do seu form e ponha o seguinte código : If (Screen.Width = 1024)and(Auxwidth=1024)and(Screen.Height = 768)and(Auxheight=768) then begin Application.Terminate; end; If (Screen.Width = 1024)and(Auxwidth<>1024)and(Screen.Height = 768)and(Auxheight<>768) then if (Application.MessageBox('Voltando para sua resolução antiga...','Ajustes Automaticos',MB_OK +MB_ICONWARNING)=ID_OK )then Begin OldWidth := 800 ; OldHeight := 600; SetScreenResolution(Auxwidth, Auxheigth); end; Application.Terminate; end; Explicando : Ao fechar o form o código verifica a resolução atual e verifica também as variáveis auxiliares – Auxwidth e AuxHeight Detalhes Após verificar a resolução de tela atual e as variáveis ele testa as seguintes condições : “ Se a resolução e a variáveis auxiliares forem iguais ele termina a aplicação “Se a resolução for 1024 X768 (que o próprio programa determinou) e as variáveis forem diferentes ele volta para a resolução antiga ou seja volta para a resolução que estava antes de abrir o programa . ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Pode ser que alguém já tenha feito de forma diferente porém foi a melhor forma que achei para resolver este problema . Volto a resaltar que não fui eu que fiz estas dicas ,não por falta de capacidade , apenas fui coletando dicas ali,aqui e alterei algumas em certas tive que mudar o código adaptando assim de um melhor maneira para resolver meu problema . Insisto em dizer isto para que os autores das dicas possam dizer que estou sendo adepto do CTRL+c e CTRL +v , e tentado ganha créditos .(Foram tantos que pesquisei que não lembro o nome de todos ) abraço
  12. Tente essa versão ( 7.2.6.1 ) https://sourceforge.net/projects/zeoslib/ abraço
  13. Tente assim: Select SUM(tempoaotodo) as total_horas from historicodeponto where username = 'admin'
  14. o comando não está errado, mas a lógica sim só para exemplificar SELECT ID, item FROM ITENS WHERE ID IN (SELECT trim(replace (chave,';',',')) FROM LISTA where id = 2) Veja que na sentença acima, voce quer procurar o ID na tabela LISTA ...como voce não definiu qual é o valor do ID ele começa na Tabela ITENS com o numero 1, mas como voce definiu que na Tabela LISTA voce quer que procure o ID de Valor 2 o resultado é somente um 1 BONE agora se voce substituir o ID por um nuemro... SELECT ID, item FROM ITENS WHERE 1 IN (SELECT trim(replace (chave,';',',')) FROM LISTA where id = 2) o resultado será : 1 BONE 2 MEIA 3 CALÇA 4 CAMISA entretanto isso ainda não seria o correto... pois voce ainda não entendeu como funciona a clausula IN corretamente dentro de uma Select com Subquery Veja nesses links o uso correto dessa clausula https://www.google.com.br/search?ei=ks_oXvrmDsrA5OUP54ah4Aw&q=in+mysql+select&o que=+in+mysql&gs_lcp=CgZwc3ktYWIQARgBMgIIADICCAA6BAgAEEdQ4vEFWOLxBWDqggZoAHABeACAAX6IAX6SAQMwLjGYAQCgAQGqAQdnd3Mtd2l6&sclient=psy-ab abraço
  15. Invalid use of keyword Token := Line Number: 1. Verifique a sua variavel Inicio.mSinal, pois a Select vai receber o conteudo dessa variavel... ou esta = ou esta := ou pode tentar assim Var S : string; S := 'Select * from ' + mArq + 'where ' + Ed_Campo_F.Text + ' ' + Inicio.mSinal + ' ' + Ed_Filtro.Text; Query1.Active := false; Query1.SQL.Clear; Query1.SQL.Append(S); Query1.Active := true; showmessage(s); OBS: o showmessage(s) vai mostrar o conteudo da Select antes de executa-la. Se houver alguma coisa que não deveria estar na select, voce tem verificar o conteudo de suas variaveis. abraço
  16. A função MIN () retorna o valor mínimo em um conjunto de valores. A função MIN () é muito útil em alguns cenários, como encontrar o menor número, selecionar o produto mais barato ou obter o menor limite de crédito. exemplos: https://www.mysqltutorial.org/mysql-min/ portanto Select Min( nome_empresa ) ... não funciona, pois voce estaria querendo o menor caracter na palavra nome empresa e não o numero de funcionarios dessa empresa O que é esse Limit 0,1000 que esta aparentemente auto implementado? Como remover/modificar isso? Consulta de limite do MySQL - Como limitar os resultados da consulta Às vezes, é útil limitar o número de linhas retornadas de uma consulta SQL. Por exemplo, se um usuário souber exatamente em quais linhas de uma tabela está interessado, poderá especificar em qual dessas linhas retornar pela sintaxe de limite do MySQL. Isso pode ser especialmente útil ao consultar tabelas muito grandes. A sintaxe limite do MySQL pode retornar as primeiras tantas linhas de uma tabela de banco de dados ou também pode retornar um intervalo de linhas da tabela de banco de dados. Listados abaixo estão alguns exemplos. Exemplo 1: retornando as primeiras 100 linhas de uma tabela chamada employee: SELECT * FROM employee LIMIT 100 Exemplo 2: retornando um intervalo de linhas de uma tabela chamada employee (iniciando 2 linhas após o primeiro registro, retorne as próximas 4 linhas). Neste exemplo, 2 é o OFFSET e 4 é o número de linhas a serem retornadas: SELECT * FROM employee LIMIT 2,4 A consulta acima também pode ser escrita da seguinte maneira usando a sintaxe LIMIT / OFFSET para melhor legibilidade: SELECT * FROM employee LIMIT 4 OFFSET 2 Exemplo 3: Retornando as 100 primeiras linhas de uma tabela denominada employee usando uma cláusula ORDER BY: SELECT * FROM employee ORDER BY id LIMIT 100 Muitos outros bancos de dados também oferecem suporte à limitação de linhas retornadas de consultas. Listados abaixo estão os links que mostram como limitar linhas para outros bancos de dados populares: abraço
  17. Tente assim Query1.Close ; Query1.SQL.Clear ; Query1.SQL.Add ( 'Select * from ' + mArq + 'where ' + Ed_Campo_F.Text + ' ' + Inicio.mSinal + ' ' + Ed_Filtro.Text ) ; Obs: Vooce deve respeitar os espaçamentos entre as variaveis. abraço
  18. Exemplos: https://www.thegeekstuff.com/2008/10/import-and-upload-data-to-mysql-tables-using-mysqlimport/ https://blog.winhost.com/using-mysqldump-to-backup-and-restore-your-mysql-databasetables/ https://dev.mysql.com/doc/mysql-backup-excerpt/5.7/en/mysqldump-sql-format.html http://www.planetadelphi.com.br/dica/6515/backup-e-restauracao-de-um-banco-em-mysql---mysqldump abraço
  19. Tente essa versão https://downloads.mysql.com/archives/installer/ abraço
  20. Jhonas

    Instalação MySql 8

    Tente essa versão https://downloads.mysql.com/archives/installer/ abraço
  21. Veja a lista nesses links https://www.google.com.br/search?source=hp&ei=5IHOXv6FKP-y5OUP-YujoAM&q=manual+de+python+pdf&o que=manual+de+phyt&gs_lcp=CgZwc3ktYWIQARgBMggIABAWEAoQHjIICAAQFhAKEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIICAAQFhAKEB4yCAgAEBYQChAeMggIABAWEAoQHjIICAAQFhAKEB46BQgAEIMBOgIIAFDgDliqTmC6ZmgBcAB4AYABoAKIAdQPkgEGMS4xMS4ymAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab abraço
  22. ok... voce pode usar esse evento tambem, mas eu prefiro usar o evento OnColEnter vou dar um exemplo: vamos imaginar que a coluna 4 do seu dbgrid seja o campo "TIPO" e que seja necessario que ele sempre tenha algum valor Então quando o Cursor entrar na coluna 5, voce testa para saber se existe algum valor no campo da coluna 4. Se não existir, voce mostra uma mensagem e retorna o cursor para o campo da coluna 4. if DBGrid1.SelectedIndex = 5 then begin if CDS_TabelaTIPO.Value = '' then begin MessageDlg('DIGITE UM VALOR PARA TIPO', mtInformation,[mbOk], 0); DBGrid1.SelectedIndex := 4; EXIT; end; end; oBS: Veja que estou testando o campo da tabela pelo ClientDataSet que esta linkado a um componente DataSetProvider e um Zquery, mas voce pode fazer a mesma coisa somente pelo Zquery abraço
  23. Para que isso funcione, o campo da sua tabela no seu banco de dados, deve estar configurado como Not Null ou então utilize o evento OnColEnter do DbGrid nesse evento, quando voce sair da coluna, voce testa se o campo está vazio. abraço
  24. Voce leu o Help sobre essa informação ? Specifies whether a nonblank value for a field is required. Delphi syntax: property Required: Boolean; C++ syntax: __property bool Required = {read=FRequired, write=FRequired, default=0}; Description Use Required to find out if a field requires a value or if the field can be blank. If a field is created with the Fields editor, this property is set based on the underlying table. Applications that set Required to true for fields that must have values (for example, a password or part number), but for which the underlying table does not require the field, must write an OnValidate event handler to enforce the property. When the Required property reflects a property of the underlying database table, trying to post a null value causes an exception to be raised. Applications that set the Required property to true when the underlying table does not require the field, should raise an EDatabaseError exception on null values in the OnValidate event handler in order to achieve the same result. Os aplicativos que configuram Required como true para campos que devem ter valores (por exemplo, uma senha ou número de peça), mas para os quais a tabela subjacente não exige o campo, devem gravar um manipulador de eventos OnValidate para impor a propriedade. Evento OnValidate Descrição Escreva um manipulador de eventos OnValidate para validar as alterações feitas nos dados no campo, imediatamente antes de os dados serem gravados no buffer de registro atual. A propriedade EditMask permite a validação dos dados caractere por caractere enquanto está sendo inserido pelo usuário. OnValidate permite que um aplicativo valide os dados como um todo. Quando o valor de um componente de campo é atribuído programaticamente, a validação pelo EditMask é ignorada, pois não há controle com reconhecimento de dados para impor a adesão à máscara. OnValidate permite que um aplicativo valide esses dados antes de serem postados na tabela do banco de dados. Para rejeitar o valor atual do campo do manipulador de eventos OnValidate, crie uma exceção. Ao gravar o valor de um campo no buffer de registro atual, ocorrem as seguintes etapas: 1 O manipulador de eventos OnValidate é chamado para validar os dados. 2 Se o manipulador de eventos OnValidate não gerar uma exceção, os dados serão gravados no buffer de registro atual. 3 Se a gravação dos dados não gerar uma exceção, o manipulador de eventos do OnChange é chamado para permitir uma resposta à alteração. abraço
  25. Veja esses links https://www.google.com.br/search?source=hp&ei=_AK8XrvAG7S55OUPqd-zsAU&q=instalar+mysql+em+outro+diretorio&o que=instalar+mysql+em+outro+diretorio&gs_lcp=CgZwc3ktYWIQAzoFCAAQgwE6AggAOgYIABAWEB46CAghEBYQHRAeOgcIIRAKEKABOgUIIRCgAVDIClieW2CGYmgAcAB4AYABvgGIAc4ikgEEMi4zMpgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab&ved=0ahUKEwi7rsKkhbHpAhW0HLkGHanvDFYQ4dUDCAY&uact=5 abraço
×
×
  • Criar Novo...