Ir para conteúdo
Fórum Script Brasil

Aleksander

Membros
  • Total de itens

    39
  • Registro em

  • Última visita

Tudo que Aleksander postou

  1. Procedure TForm1.FormCreate(Sender: TObject); begin Session.AddPassword('digite a senha da tabela aqui'); Table1.Open; end;
  2. Olá amigos, uso HTML apenas para fazer arquivos de help, sendo assim nunca publiquei página, desejo publicar uma página e a única parte que tenho dificuldade é "Quais a linhas necessárias no início do código para que a página seja exibida em sites de busca? Já fiz algumas pesquisas mas ainda tenho dúvidas. Por exemplo como devo usar a linha Charset=iso e como usar corretamenta a tag meta. Se alguém puder de uma forma simples dar uma explicação agradeço.
  3. Correto Jhonas, a questão foi dada como resolvida por mim ao ter recebido o código mas não havia testado, agora que testei e no meu caso funcionou, segue abaixo uma maneira de carregar uma imagem de extensão .BMP de um determinado arquivo usando a API. Crie as seguintes variáveis globais: hDCImg : HDC; hBitImg : HBITMAP; ps : TPAINTSTRUCT; rc : TRECT; Crie uma procedure para carregar a imagem de um arquivo com o seguinte código: hDCSis := GetDC(0); hDCImg := CreateCompatibleDC(hDCSis); ReleaseDC(0, hDCSis); hBitImg := LoadImage(0,'nomedaimagem.bmp', IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE); SelectObject(hDCImg, hBitImg); Na função WindowProcedure na msg WM_PAINT use o código: BeginPaint(hWin, ps); //Chame a procedure criada aqui GetClientRect(hWin, rc); StretchBlt(ps.hdc, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right-ps.rcPaint.left, ps.rcPaint.bottom-ps.rcPaint.top, hDCImg, 0, 0, rc.right, rc.bottom, SRCCOPY); EndPaint(hWin, ps); Antes de fechar a aplicação delete os itens: DeleteDC(hDCImg); DeleteObject(hBitImg); Se desejar carregar a imagem de um arquivo .RES troque a linha: hBitImg := LoadImage(0,'nomedaimagem.bmp', IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE); Por esta: hBitImg := LoadBitmap(hInstance,'nomedorecurso’); Grande abraço!
  4. Questão resolvida, recebi uma ajuda dos colegas do bcb. grato pelo espaço.
  5. Ola amigos, como devo me referir a um bitmap para carrega-lo usando API? A janela e os botões eu consegui criar, meu exe ficou com 41k e funciona perfeitamente, usei windows, messages, sysutils, a imagem seria apenas para efeito estético. Se alguém tiver uma dica ou link. Desde já agradeço pela atenção.
  6. Olá amigos, estou fazendo algo parecido com uma barra de ferramentas, gostaria de saber como faço para pegar o nome da janela ativa de qualquer aplicativo, se eu usar application.title eu só pego o nome do meu aplicativo, gostaria que no momento que eu clicasse eu outro aplicativo seja Delphi, Word ou outros o nome aparecesse no caption de um label. Grato a todos pela atenção.
  7. Olá amigos, no exemplo abaixo o Label1 fica da seguinte forma 25410320, gostaria que ele ficasse assim 25,4. Como posso fazer isso? Grato pela atenção. procedure TForm1.Button1Click(Sender: TObject); var S: string; Free: Int64; begin Free := DiskFree(0); S := 'Espaço livre em (C): ' + intToStr(Free div 1024); Label1.Caption := S; end;
  8. Jhonas, esse código que você usou pode ser resumido com: procedure TForm1.FormCreate(Sender: TObject); begin AlphaBlendValue:=120; AlphaBlend := True; end; end. Ainda não está resolvido mas agradeço a ajuda colega. Grande abraço.
  9. Olá amigos, todos os aplicativos que desenvolvo costumo criar uma pasta de ajuda com o passo a passo do uso dos mesmos com várias imagens. Para isso uso varios recursos que simulam o PrintScreen, para facilitar meu trabalho uso um form que redimensiono sobre a área desejada para salvá-la, no entanto quando deixo esse form transparente usando o Form1.Brush.Style:=bsClear ao redimensioná-lo ele usa a área de trabalho como se fosse fundo , é horrível. Alguém saberia me informar o que posso fazer para resolver isso? Ele salva a imagem perfeitamente, só me incomoda essa distorção visual na hora arrastar e redimensionar. Grato a todos pela atenção.
  10. Caro Churc, segui seu conselho e tirei do AutoCreate, ficou perfeito, muito obrigado. Grande abraço!
  11. Olá amigos, dessa vez prometo que não vou fazer pergunta sobre imagem. Uso o codigo abaixo que o colega Churc me ensinou para iniciar com windows, funciona perfeitamente. Desejo colocar um Checkbox onde possa controlar o auto-iniciar, ou seja, com o Checkbox1.Checked :=true ativa o auto-iniciar, Checkbox1.Checked :=false desativa o auto-iniciar. Sei lêr e gravar o valor do registro mas não consegui fazer a ligação. Grato pela atenção. Auto-iniciar procedure TForm1.FormCreate(Sender: TObject); begin with TRegistry.Create do begin RootKey := HKEY_CURRENT_USER; try Openkey('Software\Microsoft\Windows\CurrentVersion\Run', False); WriteString('Cadastro', ParamStr(0)); finally Closekey; Free; end; end; end; lêr e gravar valor procedure TForm1.Button1Click(Sender: TObject); begin with TRegistry.Create do begin try RootKey := HKEY_CURRENT_USER; OpenKey('Cad',True); WriteBool('Dados',checkbox1.Checked); finally CloseKey; Free; end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin with TRegistry.Create do begin try RootKey := HKEY_CURRENT_USER; OpenKey('Cad',False); checkbox1.Checked:=(ReadBool('Dados')); finally CloseKey; Free; end; end; end;
  12. Não seria mais facil e mais pratico voce utilizar um quickreport para isto ? Jhonas, já faço uso do Rave para determinados fins, esta questão da imagem no Memo é um caso à parte, de acordo com suas dicas consegui posicionar a imagem em qualquer lugar do Memo inclusive usar todas as propriedades de um Timage, isso foi possível graças ao uso da propriedade Parent. Veja como ficou fácil procedure TForm1.Button1Click(Sender: TObject); begin with TImage.Create(form1) do begin Parent := memo1; width:= 50; height:= 50; left:= 30; top:= 30; proportional:= true; Picture.LoadFromFile('c:\img.bmp'); end; o motivo é que quando definido um bitmap para a propriedade Brush, ele o usa para o preenchimento do fundo ao invés de usar a cor sólida. O estranho é que este recurso deveria utilizar apenas um bitmap de 8x8 pixel. E pelo que pesquisei, a documentação diz que seria copiado apenas um retângulo deste tamanho a partir do canto superior esquerdo. :huh: acho que a melhor opção seria utilizar o componente TRichEdit. vous parlez français? :D Dê uma olhada neste tópico "INSÉRER UNE IMAGE (BITMAP) DANS UN RICHEDIT (RXRICHEDIT)" (não estou gritando, o título está assim mesmo ;)) Não se preocupe, o código está em Inglês. ;) Abraços Le Micheus, muito boa esta dica do RichEdit, agora tenho duas questões resolvidas, tanto inserir a imagem no Memo como no RichEdit, passarei a usar o RichEdit devido ao maior número de opções que ele oferece, falta pouco para fechar este tópico. Antes de trocar o Memo pelo RichEdit, resta uma dúvida. Quando testei a dica do Jhonas usei o código abaixo para imprimir o Memo, mas agora que inseri a imagem ela não é impressa, tentei alterar o código mas não consegui imprimir a imagem, somente o texto é impresso. Por uma questão didática, o que faltou inserir neste código para que ele além de se referir as linhas também se refira à imagem? O código usado para imprimir o Memo. procedure TForm1.Button2Click(Sender: TObject); var i, Linha : Integer; AltLinha : Integer; begin Linha := 0; Printer.BeginDoc; AltLinha := Trunc(Printer.Canvas.TextHeight('My')*1.1); for i := 0 to Memo1.Lines.Count - 1 do begin Printer.Canvas.TextOut(0, Linha, Memo1.Lines[i]); Linha := Linha + AltLinha; if Linha >= Printer.PageHeight then begin Printer.NewPage; Linha := 0; end; end; Printer.EndDoc; end; Grande abraço a todos e obrigado pela atenção.
  13. Boa tarde amigos, gostaria de saber porque ao inserir a imagem no Memo usando o código abaixo ela se repete várias vezes e o texto fica acima dela , desejo colocar uma imagem no topo do Memo e abaixo dela inserir o texto, a intenção é inserir uma pequena logomarca no Memo o qual uso como formulário para impressão. Pergunto, como posiciono a imagem no topo do Memo? Como inserir o texto depois da imagem? O código tirado de (DicasDelphi) procedure TForm1.FormActivate(Sender: TObject); var Bmp : TBitmap; begin Bmp :=TBitmap.Create; Bmp.LoadFromFile('c:\img.bmp'); Memo1.brush.Bitmap:=TBitmap.Create; Memo1.brush.Bitmap.LoadFromFile('c:\img.bmp'); end; end; Grato a todos pela atenção
  14. Meu caro Churc, muito obrigado pela dica valiosa, este programa é completíssimo! Grande abraço
  15. Olá amigos, ao fazer uma pesquisa sobre zoom relacionada ao meu último post, encontrei um programa chamado Zoomtool, achei interessante o fato de que ao passar o cursor do mouse sobre qualquer cor em qualquer parte da tela o programa captura o código RGB da cor, por exemplo quando o cursor está sobre a cor clBtnFace, a cor é exibida num panel e seu código aparece assim : R: 236 G:233 B:216 Gostaria de fazer um programa somente com esta função sem ter que usar programas de terceiros. Grato pela atenção
  16. Mestre Sam, de acordo com sua idéia faça o seguinte: No photoshop salve suas Layers cada uma com um nome diferente. No Corel repita o processo inserir objeto para cada uma delas, (não use o comando importar senão o filtro de importação irá juntar as layers e a imagem virá completa). 1 - Selecione a imagem, clique em Bitmaps - Converter em bitmap, na resolução deixe com 300 dpi, Cor RGB (24bits), (é preciso fazer a conversão para editar a imagem pelo Corel). Marque a opção Suavização de serrilhado e clique em OK Repita o procedimento para todas as imagens. 2 - Selecione a imagem, clique em Bitmaps - Rastrear bitmap - (escolha uma opção onde o resultado seja melhot), por exemplo Logotipo detalhado ou Imagem de alta qualidade. Na janela de rastreio marque a opções: Remover fundo para que o fundo branco seja excluido. O restante você pode visualmente escolher as melhores opções na janela de rastreio. Após clicar em Ok a imagem será vetorizada. Repita para todas as imagens. Boa sorte
  17. Eder, se você usar imagem com extensão JPG acontecerá isso que você relatou, use imagem com extensão BMP, por exemplo nomedaimagem.bmp. No entanto, vou deixar outro código onde a imagem não bate e volta, ela some na direita e reaparece na esquerda, como neste código não há inversão pode usar imagem JPG ou BMP. Se não desejar que a barra de Scroll horizontal apareça no Form quando a imagem tocar na borda direita, na propriedade do Form basta deixar HorzScrollBar | Visible como False. var Form1: TForm1; x: Integer = 1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 10; Form1.DoubleBuffered:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin image1.Left:=image1.Left + x; if image1.Left>ClientWidth then image1.Left:=ClientWidth - (ClientWidth + Image1.Width); end; end. Boa sorte.
  18. Aleksander, dá para utilizar a mesma imagem. Basta fazer um flip horizontal da mesma. O procedimento é o mesmo: ao atingir a margem direita ou esquerda é só inverter a imagem - veja como with Image1.Picture.Bitmap do Canvas.CopyRect(Canvas.ClipRect, Canvas, Rect(Width-1, 0, -1, Height)); O código é só este para as duas situações. Abraços Micheus, perfeito!! Abraço Eder, o colega Micheus resolveu o problema do carro voltar de ré, você vai achar muito interessante, assim que a imagem toca a borda do Form ela é invertida, use uma imagem .BMP. ... var Form1: TForm1; x: Integer = 1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 10; Form1.DoubleBuffered:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left:=Image1.Left + x; if Image1.Left>ClientWidth - Image1.Width-1 then begin x := x * -1; with Image1.Picture.Bitmap do Canvas.CopyRect(Canvas.ClipRect, Canvas, Rect(Width-1, 0, -1, Height)); end; if Image1.Left<1 then begin x := x * -1; with Image1.Picture.Bitmap do Canvas.CopyRect(Canvas.ClipRect, Canvas, Rect(Width-1, 0, -1, Height)); end; end; end. Abraço
  19. Olá amigos, uso este código para ampliar minhas imagens, para a imagem não fugir da tela eu a coloco dentro de um Panel, porém ao clicar com o mouse sobre a imagem ocorre o seguinte: A imagem é amplidada a partir do canto superior esquerdo, gostaria que ela fosse ampliada a partir do local exato do clique do mouse, assim quando eu desejar visualizar um detalhe na imagem clicaria sobre ele para ampliá-lo. Esta é a maneira que uso para ampliar clicando com o botão esquerdo do mouse mas se tiver outra maneira agradeceria a colaboração. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i: integer; begin for i:= 1 to 10 do form1.Image1.Width:= form1.Image1.Width + 5; form1.Image1.height:= form1.Image1.height + 10; Para diminuir eu uso um Button pois ainda não aprendi a colocar este código no botão direito do mouse para diminuir. var i: integer; begin for i:= 1 to 10 do form1.Image1.Width:= form1.Image1.Width - 5; form1.Image1.height:= form1.Image1.height - 10; Grato a todos pela atenção!
  20. Jhonas, com Gauge a questão foi resolvida. Obrigado. Grande abraço.
  21. Olá Eder, como os colegas praticamente resolveram a questão vou deixar um exemplo que uso, neste exemplo a imagem vai até a borda do Form e volta. ... var Form1: TForm1; x: Integer = 1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 10; Form1.DoubleBuffered:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left:=Image1.Left + x; if Image1.Left>ClientWidth - Image1.Width-1 then begin x := x * -1; end; if Image1.Left<1 then begin x := x * -1; end; end; end. Como você disse que é para um carro, neste caso ele vai voltar de ré, para resolver isso basta você repetir o código para a segunda imagem com o carro invertido deixando-a invisível, assim quando a imagem1 chegar a borda direita do Form ela some e a imagem2 aparece e quando a imagem 2 chegar na borda esquerda ela some e a imagem1 reaparece sucessivamente. Boa sorte.
  22. Olá Mestre Sam, faça o seguinte: No Corel No menu Editar clique em Inserir novo objeto Na janela Inserir novo objeto marque a opção Criar do arquivo Clique no botão Procurar e localize seu arquivo feito no Photoshop (Perceba que ao lado do botão Procurar tem a opção Vincular, mais abaixo explico para que serve) Após localizar clique em OK o arquivo será inserido na página A opção Vincular funciona da sequinte maneira: Se você marcar esta opção, edite o arquivo normalmente no Photoshop e salve. No Corel para ele receber as alterações que você fez no Photoshop, selecione a imagem, no menu Editar clique em Vínculos, na janela Vínculos clique em Atualizar agora e o arquivo que está no Corel receberá todas as alterações feitas no Photoshop. Se não quiser mais que o arquivo tenha vínculo clique em Quebrar vínculo na janela Vínculo. (Só quebre o vínculo se não precisar mais editar o arquivo no Photoshop). Uma sugestão, salve ao fundo do cartão com as imagens no Photoshop sem as letras e depois insira no Corel, as letras você pode digitar no Corel para facilitar as alterações sem precisar ficar editando no Photoshop sempre que tiver a necessidade de alterar algo. Boa sorte.
  23. Olá amigos, tenho 2 questões sobre Barra de progresso. Questão 1: Estou usando um arquivo de recurso que toca som .Wav, desejo colocar uma Barra de progresso que acompanhe a execução da música, e um Label que exiba o progresso em porcentagem, não sei como me referir ao arquivo de Recurso para usar a Barra de progresso e o Label. A chamada do som Wav. {$R *.dfm} {$R SomWave.Res} procedure TForm1.Button1Click(Sender: TObject); begin PlaySound('SomWave',hInstance,Snd_Async or Snd_Memory or Snd_Resource); end; end. Questão 2: Aqui tenho o código que uso para mp3, consegui colocar uma Barra de progresso. Desejo que ao completar a Barra de progresso o botão Stop do MediaPlayer1 seja clicado, tentei algumas combinações sem resultado. É possível uma Barra de progresso cheia acionar o clique de um botão? A chamada do som mp3 {$R *.dfm} {$R Som.res} procedure TForm1.Button1Click(Sender: TObject); var rStream: TResourceStream; fStream: TFileStream; fname: string; begin fname:=ExtractFileDir(Paramstr(0))+'Som.mp3'; rStream := TResourceStream.Create (hInstance, 'Som', RT_RCDATA); try fStream := TFileStream.Create(fname, fmCreate); try fStream.CopyFrom(rStream, 0); finally fStream.Free; end; finally rStream.Free; end; ProgressBar1.Max:=0; MediaPlayer1.Close; MediaPlayer1.FileName:=fname; MediaPlayer1.Open; ProgressBar1.Max := mediaPlayer1.Length; end; procedure TForm1.Timer1Timer(Sender: TObject); begin ProgressBar1.Position := MediaPlayer1.Position; end; end. Grato a todos pela atenção.
  24. Jhonas, agora funcionou. Muito obrigado. Grande abraço!
  25. Olá amigos, abaixo tem o exemplo de uma Dll que pequei aqui no forum, troquei algumas letras e inseri o Clear e o SetFocus no Edit, essa Dll possui números e funciona perfeitamenta. A Dll: Library Serial; function Chave(Senha : integer): integer; export; begin Senha := 123; Chave := Senha; end; exports Chave; begin end. Para usar: Function Chave(Senha : Integer):Integer; external 'Serial.dll'; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var N, C : Integer; begin N := StrToInt(Edit1.Text); C := Chave(StrToInt(Edit1.Text)); if N = C then ShowMessage('Serial válido, você acertou!') else ShowMessage('Serial inválido!'); edit1.Clear; edit1.SetFocus; end; end. Desejo colocar uma palavra no lugar dos números, funciona e depois dá erro. Fiz assim: A Dll alterada por mim: Library Senha; function Chave(Senha : string):string; export; begin Senha := 'Delphi'; Chave := Senha; end; exports Chave; begin end. Para usar (se funcionasse é claro) Function Chave(Senha : string):string; external 'Senha.dll'; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var N, C : string; begin N :=Edit1.Text; C := Chave(Edit1.Text); if N = C then ShowMessage('Serial válido, você acertou!') else ShowMessage('Serial inválido!'); edit1.Clear; edit1.SetFocus; end; end. Depois do clique no botão da erro com essa mensagem: Project1.exe raised exception class EinvalidPointer with message ‘Invalid pointer operation’. Process stopped. Use Step or Run to continue. Pergunto: Como onde está o meu erro? Grato a todos pela atenção
×
×
  • Criar Novo...