Ir para conteúdo
Fórum Script Brasil

Paulo Nobre

Membros
  • Total de itens

    717
  • Registro em

  • Última visita

Tudo que Paulo Nobre postou

  1. DE acordo com uma resposta(veio do registro): sim ou não, no oncreat(ou Onshow) quero que meu checkbox apareça marcado ou não. Então, se sim ,chkAparece.state:= cbCheched (o check aparece marcado) se não chkAparece.state:=cbUncheched.(o check não aparece marcado) O problema é que no onclick do chkAparece, existe uma rotina, que obviamente é executada quando clico nele. Como faço para mostrar marcado mas não gerar o event Onclick, claro na hora de mostrar o form, clicando nele tudo bem. Uma outra pergunta é faaz diferença usar chkAparece.checked:= cbCheched ou chkAparece.checked := true;
  2. Quais os prós e os contras de se ter mais de uma versão do Delphi no mesmo computador. Por exemplo ter a as versões 7, 8 e 2006. Haveria algum tipo de conflito? Programas de que versão compilariam em qual versão? etc, etc, etc... PS: Observações do tipo, mais porque você quer ter tudo isto no mesmo computador? São delicadamente dispensadas!!
  3. É, Thales, segui os passos e também consegui achar. Interessante!! Valeu PS: É impressão minha ou o relógio que marca a hora que os posts estão sendo escritos ainda não foi para o horário de verão. Aqui por exemplo se post oas 9 horas(horário de verão) aparece no post como se tivesse postado às 8 horas!!!
  4. Thales, como se sabe que está na dll comctl32.dll?
  5. Churc, aquela lá de cima que coloquei já funciona. Mas, a sua parece ser mais completa e complexa. Você poderia dizer o que ela está fazendo a mais do que a mencionada?
  6. Thales, No post#4, fiz algumas perguntas, que o Paulo Bergo respondeu, mas não ficou 100% claro, para mim. Na realidade adaptei o código do Paulo Bergo. Alguém disse que oTListImage é necessário, por conta do ImageList.GetIcon(0, Icon); Mas realmente você escrevendo fica claro que Image1.Picture.LoadFromFile.. Bitmap.Assign(Image1.picture); está sem sentido, apenas fazendo o compilador trabalhar mais. Valeu pelo toque. Mandei o Image para o inferno.
  7. Fiz a pergunta pois em casa tenho um computador com os dois dispositivos e com o código tradicional(mencionado acima) ele só abre o gravador de CD. Nos computadores que apresentam apenas um dispositivo ele abre qualquer um que esteja la´. (DVD ou CD)
  8. Micheus, não sei se está com 256 cores, mas não está estranho, não. Na realidade quando finalizei ontem a rotina,não cheguei a testar o ícone usando, por exemplo num form. Vi pelo explorer que a transformação foi feita, inclusive fazendo o ícone aparecer para mostrar qual é o arquivo. Tudo isto pelo explorer. Agora, a julgar pela imagem que tenho em mente, está com 256 cores sim!! Você faz esta pergunta pois acha que o código está incompleto? O código que estou usando é o do post #4
  9. OK!, Paulo Bergo, Veja a proposta encontrada no site oficial da BORLAND.. How do I create an icon from a bitmap? - by Rating: Ratings: 6 Rate it Abstract: Instructions for creating an icon. Question and Answer Database FAQ2748D.txt How do I create an icon from a bitmap? Category :Windows API Platform :All Product :All 32 bit Question: How do I create an icon from an bitmap? Answer: You must create two bitmaps, a mask bitmap (called the "AND" bitmap) and a image bitmap (called the XOR bitmap). You can pass the handles to the "AND" and "XOR" bitmaps to the Windows API function CreateIconIndirect() and use the returned icon handle in your application. Example: procedure TForm1.Button1Click(Sender: TObject); var IconSizeX : integer; IconSizeY : integer; AndMask : TBitmap; XOrMask : TBitmap; IconInfo : TIconInfo; Icon : TIcon; begin {Get the icon size} IconSizeX := GetSystemMetrics(SM_CXICON); IconSizeY := GetSystemMetrics(SM_CYICON); {Create the "And" mask} AndMask := TBitmap.Create; AndMask.Monochrome := true; AndMask.Width := IconSizeX; AndMask.Height := IconSizeY; {Draw on the "And" mask} AndMask.Canvas.Brush.Color := clWhite; AndMask.Canvas.FillRect(Rect(0, 0, IconSizeX, IconSizeY)); AndMask.Canvas.Brush.Color := clBlack; AndMask.Canvas.Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4); {Draw as a test} Form1.Canvas.Draw(IconSizeX * 2, IconSizeY, AndMask); {Create the "XOr" mask} XOrMask := TBitmap.Create; XOrMask.Width := IconSizeX; XOrMask.Height := IconSizeY; {Draw on the "XOr" mask} XOrMask.Canvas.Brush.Color := ClBlack; XOrMask.Canvas.FillRect(Rect(0, 0, IconSizeX, IconSizeY)); XOrMask.Canvas.Pen.Color := clRed; XOrMask.Canvas.Brush.Color := clRed; XOrMask.Canvas.Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4); {Draw as a test} Form1.Canvas.Draw(IconSizeX * 4, IconSizeY, XOrMask); {Create a icon} Icon := TIcon.Create; IconInfo.fIcon := true; IconInfo.xHotspot := 0; IconInfo.yHotspot := 0; IconInfo.hbmMask := AndMask.Handle; IconInfo.hbmColor := XOrMask.Handle; Icon.Handle := CreateIconIndirect(IconInfo); {Destroy the temporary bitmaps} AndMask.Free; XOrMask.Free; {Draw as a test} Form1.Canvas.Draw(IconSizeX * 6, IconSizeY, Icon); {Assign the application icon} Application.Icon := Icon; {Force a repaint} InvalidateRect(Application.Handle, nil, true); {Free the icon} Icon.Free; end; E no mesmo site sugestão de leitores: Here's another way to do it (both Bmp and Icon is allocated by the caller): procedure IconFromBitmap(Bmp:TBitmap;var Icon:TIcon); var il:TImageList; begin il := TImageList.CreateSize(bmp.Width,bmp.Height); try il.AddMasked(bmp,bmp.TransparentColor); il.GetIcon(0,Icon); finally il.Free; end; end;
  10. E caso se possua os dois dispositivos?
  11. Paulo Bergo, Adaptei a sua procedure para o que estava querendo e ficou da seguintre forma: var Icon : TIcon; Bitmap : TBitmap; ImageList:TImageList; Origem,Destino:string; NomeDoArquivoSemExtensao:string; begin Messagebox(handle,'Na janela que aparecerá a seguir escolha um bitmap, que deseja transformar em ícone. '+#13+ 'O ícone criado a partir do bitmap será salvo na pasta deste programa.','AUTOMAÇÃO',MB_IconExclamation); OpenDialogBitmap.FileName :=''; OpenDialogBitmap.Execute; Origem := OpenDialogBitmap.FileName; If OpenDialogBitmap.FileName = '' Then Begin MessageBox(Handle,'Você deve selecionar um bitmap e clicar em abrir !'+#13 + 'Clicando em cancelar nada acontecerá !','OPERAÇÃO NÃO EFETUADA',MB_ICONSTOP); Abort; end; //Transformação de Bitmap para ícone NomeDoArquivoSemExtensao:=MidStr(ExtractFileName(Origem),1,Length(ExtractFileName(Origem))-4); Icon := TIcon.Create; Bitmap := TBitmap.Create; Image1.Picture.LoadFromFile(Origem); Bitmap.Assign(Image1.Picture); ImageList := TImageList.CreateSize(Bitmap.Width, Bitmap.Height); ImageList.AddMasked(Bitmap, Bitmap.TransparentColor); ImageList.GetIcon(0, Icon); Destino:= ExtractFileDir(application.ExeName) + '\'+ NomeDoArquivoSemExtensao+'.ico'; Icon.SaveToFile(Destino); Messagebox(handle,'O bitmap foi transformado para ícone com sucesso!!' + #13+'O nome é o mesmo do bitmap, com a nova extensão ico. ','AUTOMAÇÃO',MB_IconInformation); Icon.Free; Bitmap.Free; ImageList.Free; end; Mas não entendo algumas coisas: Porque só é possível esta transformação com um image presente, mesmo que até com a propriedade visible = false; Por que tenho que ter um imagelist no código. O que esta propriedade(método) AddMasked faz? Será que não existe uma maneira mais simples?
  12. Olá, Paulo Bergo Vou tentar ver se adapto e se funciona para o que eu quero. Pois eu não quero mostrar nada num imagem. Quero apenas que o usuário pegue o caminho com opendialog transforme o bitmap em icon e salve ele no mesma pasta do programa que executa esta tarefa. Vou ver se consigo adaptar. Obrigado
  13. Uma procedure super simples para transformar Ícone para bitmap é a seguinte: Procedure IcoToBmp; var Icon : TIcon; Bitmap : TBitmap; begin Icon := TIcon.Create; Bitmap := TBitmap.Create; Icon.LoadFromFile('c:\picture.ico'); Bitmap.Width := Icon.Width; Bitmap.Height := Icon.Height; Bitmap.Canvas.Draw(0, 0, Icon ); Bitmap.SaveToFile('c:\picture.bmp'); Icon.Free; Bitmap.Free; end; Alguém conhece uma tão fácil quanto esta para transformar Bitmap para ícone? Tentei adaptar a procedure acima mas não deu certo, pois Icon não possue o método canvas. Pelo menos deu erro quando fiz: Icon.Canvas.Draw(0,0,Bitmap);
  14. Paulo Nobre

    Ícones

    Funcionou as mil maravilhas. Coloquei um image no próprio programa para trazer o bitmap e testei. Testei assim e também funcionou.
  15. Paulo Nobre

    Ícones

    Var buf : array[1..9] of char; begin Bitmap:=TBitmap.Create; buf:='STAY_ON '; buf[8]:=#0;//ultimo depois do nome tem que ser 0 porque indica término de string bitmap.handle:=loadbitmap(hinstance,@buf); Bitmap2:=TBitmap.Create; buf:='STAY_OFF '; buf[9]:=#0;//ultimo depois do nome tem que ser 0 porque indica término de string bitmap2.handle:=loadbitmap(hinstance,@buf); end; Nunca tinha visto isso!! Já tava preparado para usar o ResHacker.exe. No delphi7 os itens do menu tem a propriedade bitmap, que permite fazer isto.
  16. Paulo Nobre

    Ícones

    Mas como retiro eles de lá?
  17. Paulo Nobre

    Ícones

    Procurei na Internet e não encontrei. Pode ser que tenha procurado mal, até porque na internet só existem pacotes com 1000 ícones para cima! Estou precisando de dois bitmaps: um dando a idéia de "pinado" e outro de "não pinado", tipo percevejo colocado no quadro e outro não colocado. Preciso para alternar os dois estágios de form sempre acima e não. Como vou usar para um menu é necessário que sejam 16x16. Alguém poderia mandar para meu email, caso tenha, ou indicar onde posso conseguir? Obrigado. Desculpem se não é uma dúvida, mas como são bitmaps usados por programadores postei aqui.
  18. Claro que pode Progr'amador! Valeu pela ajuda. Mancada minha!! Obrigado,s3c.
  19. s3c, Obrigado pela explicação!
  20. s3c, Neste caso usaria este código quando interceptasse a mensagem de minimização? É isso?
  21. Alguém poderia dar uma explicação básica sobre paramStr, com alguns exemplos simples de uso?
  22. Paulo Nobre

    Erro No Edit

    Thales Testei o novo código e ficou redondinho. Obrigado
  23. Como não sou nem um s3c, nem um Michel, nem um Thales da vida vou ficando com o form minimizando acima da barra de tarefas. Mas que é feio pará caramba é!!
  24. Paulo Nobre

    Erro No Edit

    Thales, Tive problemas com o código do post#3 if not(key in ['0'..'9']) then key:=0; Ele apresenta erro de incompatibilidade de types: Char e Integer if (key = '-') then begin if (sender.text[1] = '-') then begin sender.text:=copy(sender.text,2,length(sender.text)-1); end else sender.text:='-'+sender.text; end; Na parte acima ele diz que Undeclarede Identifier: 'text'. Aí substituo sender pelo nome do edit(no meu caso txtNumeroInteiro) e compila legal. Na hora de usar: se digito, por exemplo,9 - ele coloca -9 tudo bem,mas se digito primeiro 0 sinal de meno(-) dá acesso de violação. O que poderia estar acontecendo?
×
×
  • Criar Novo...