[OFF] Carregar Cursor Personalizado - Resposta
Entre no Bloco de Notas e digite:
Salve o arquivo como CURSORES.RC e não esqueça de localizar o arquivo BANANA.ANI no diretório C:\[PASTA DO WNDOWS]\CURSORS e copiá-lo para o diretório onde se encontra o arquivo DPR do seu projeto Delphi. O arquivo CURSORES.RC deve ser copiado no mesmo diretório.
Entre no prompt do DOS e compile o arquivo CURSORES.RC usando o programa BRCC32.EXE do Delphi. A linha de comando é:
Isso fará com que seja criado um arqiuvo chamado CURSORES.RES
No fonte do form principal coloque
Crie uma constante
Crie a função que extrai o cursor para o diretório da aplicação, assim:
no onCreate do form coloque a chamada a função:
Coloque um button no form e utilize digite:
Bom, explicando melhor e mais resumido. A dica acima vai fazer com que toda vez que o software for aberto ele extrai o cursor BANANA.ANI que está incorporado ao executável para o diretório onde ele se encontra instalado. Daí é só fazer uso dele.
MEU_CURSOR RCDATA BANANA.ANI
Salve o arquivo como CURSORES.RC e não esqueça de localizar o arquivo BANANA.ANI no diretório C:\[PASTA DO WNDOWS]\CURSORS e copiá-lo para o diretório onde se encontra o arquivo DPR do seu projeto Delphi. O arquivo CURSORES.RC deve ser copiado no mesmo diretório.
Entre no prompt do DOS e compile o arquivo CURSORES.RC usando o programa BRCC32.EXE do Delphi. A linha de comando é:
brcc32 -r -32 CURSORES.RC
Isso fará com que seja criado um arqiuvo chamado CURSORES.RES
No fonte do form principal coloque
{$R CURSORES.RES}
Crie uma constante
const crSeuCursor = 1; // Tem que ser um valor maior que 0 (zero)
Crie a função que extrai o cursor para o diretório da aplicação, assim:
procedure ExtrairCursor;
var
DirDestino : String;
NomeArquivo: String;
Fres : TResourceStream;
fFile : TFileStream;
begin
DirDestino := ExtractFilePath(Application.ExeName);
NomeArquivo := ´BANANA.ANI´;
{Cria uma instância de TResourceStream para manipulá-lo mais tarde}
Fres := TResourceStream.Create(0,´MEU_CURSOR´,RT_RCDATA);
{Cria em memória o arquivo gravado no Resource}
fFile := TFileStream.Create(DirDestino + ´\´ + NomeArquivo,fmCreate);
try
{Copia do Resource}
Ffile.CopyFrom(Fres,Fres.Size);
finally
{Libera as variáveis necessárias.}
Fres.Free;
Ffile.Free;
end;
end;
no onCreate do form coloque a chamada a função:
procedure TForm1.FormCreate(Sender: TObject); begin ExtrairCursor; end;
Coloque um button no form e utilize digite:
procedure TForm1.Button1Click(Sender: TObject); begin Screen.Cursors [crSeuCursor] := LoadCursorFromFile(PChar(ExtractFilePath(Application.ExeName) + ´BANANA.ANI´)); // O cursor pode ser dos tipos comum (*.cur) ou animado (*.ani) // Lembre-se: o arquivo tem que estar na mesma pasta do programa // ou digite o nome do caminho dele. Form1.Cursor := crSeuCursor; end;
Bom, explicando melhor e mais resumido. A dica acima vai fazer com que toda vez que o software for aberto ele extrai o cursor BANANA.ANI que está incorporado ao executável para o diretório onde ele se encontra instalado. Daí é só fazer uso dele.
Adriano Santos
Curtidas 0
Respostas
Michael
04/08/2005
Olá colega!
Sua dica é uma alternativa viável, mas o cursor pode ser carregado diretamente de dentro do arquivo de recurso, sem que seja necessário sua extração do executável para o disco.
Em breve posto aqui como. To meio enrolado agora. ;-)
[]´s
Sua dica é uma alternativa viável, mas o cursor pode ser carregado diretamente de dentro do arquivo de recurso, sem que seja necessário sua extração do executável para o disco.
Em breve posto aqui como. To meio enrolado agora. ;-)
[]´s
GOSTEI 0
Adriano Santos
04/08/2005
Vou ficar no aguardo porque tentei fazer isso e não consegui, se bem que eu tô meio enrolado e nem estudei muito a respeito..
valeu
valeu
GOSTEI 0
Adriano Santos
04/08/2005
Bom, como o Michael disse minha dica é viável, mas existe uma forma de carregar o cursor direto do arquivo de Recurso. Dei uma fuçada rápida na internet e encontrei uma dica que fala disso.
Ae Michael, nem precisa se incomodar... :D eu achei o esquema.
[url=http://www.activedelphi.com.br//modules.php?op=modload&name=XForum&file=print&fid=4&tid=2339]Dica de como carregar um cursor via Recurso[/url]
Essa dica é bem legal.
Ae Michael, nem precisa se incomodar... :D eu achei o esquema.
[url=http://www.activedelphi.com.br//modules.php?op=modload&name=XForum&file=print&fid=4&tid=2339]Dica de como carregar um cursor via Recurso[/url]
Essa dica é bem legal.
GOSTEI 0
Michael
04/08/2005
Olá colega!
Já tinha escrito quando vc me avisou...
1) Crie um arquivo de recurso no [b:e699ed4ece]ImageEditor[/b:e699ed4ece], q vem com o Delphi, e adicione um cursor;
2) Desenhe o cursor do jeito que quiser e dê um nome a ele (por exemplo, ´MAO_IE´)
3) Salve o arquivo de recurso em uma pasta.
4) Abra o Delphi, crie uma nova aplicação VCL e salve-a na mesma pasta onde colocou o arquivo de recurso;
5) Defina uma constante para referenciar o cursor:
6) Coloque a seguinte diretiva de compilação abaixo da seção [b:e699ed4ece]uses[/b:e699ed4ece] para incluir o arquivo de recurso dentro do executável:
7) Coloque um botão no Form, e no evento OnCreate, digite:
Ia colocar um screenshot, mas não tenho nenhum programa aqui que capture a imagem do cursor :-(
[]´s
Já tinha escrito quando vc me avisou...
1) Crie um arquivo de recurso no [b:e699ed4ece]ImageEditor[/b:e699ed4ece], q vem com o Delphi, e adicione um cursor;
2) Desenhe o cursor do jeito que quiser e dê um nome a ele (por exemplo, ´MAO_IE´)
3) Salve o arquivo de recurso em uma pasta.
4) Abra o Delphi, crie uma nova aplicação VCL e salve-a na mesma pasta onde colocou o arquivo de recurso;
5) Defina uma constante para referenciar o cursor:
const crMeuCursor = 1; // Número > 0
6) Coloque a seguinte diretiva de compilação abaixo da seção [b:e699ed4ece]uses[/b:e699ed4ece] para incluir o arquivo de recurso dentro do executável:
{$R CURSORES.RES}7) Coloque um botão no Form, e no evento OnCreate, digite:
procedure TForm1.FormCreate(Sender: TObject); begin Screen.Cursors[crMeuCursor] := LoadCursor(HInstance, ´MAO_IE´); Button1.Cursor := crMeuCursor; end;
Ia colocar um screenshot, mas não tenho nenhum programa aqui que capture a imagem do cursor :-(
[]´s
GOSTEI 0
Adriano Santos
04/08/2005
Eu postei esta dica pois o [b:580b093323]duolon[/b:580b093323] em chamou me MP e eu preferi postar pra todos. Quem se interessar melhor pelos arquivos de recursos, o link que postei na mensagem anterior é muito bom e detalhado.
Até mais e valeu ai [b:580b093323]Michael[/b:580b093323].
Até mais e valeu ai [b:580b093323]Michael[/b:580b093323].
GOSTEI 0
Michael
04/08/2005
Ele tbm me chamou por MP... :-(
[]´s
[]´s
GOSTEI 0
Duolon
04/08/2005
Muito Obrigado pelo esclarecimento de vcs 2 :wink:
GOSTEI 0
Duolon
04/08/2005
Entre no Bloco de Notas e digite:
Salve o arquivo como CURSORES.RC e não esqueça de localizar o arquivo BANANA.ANI no diretório C:\[PASTA DO WNDOWS]\CURSORS e copiá-lo para o diretório onde se encontra o arquivo DPR do seu projeto Delphi. O arquivo CURSORES.RC deve ser copiado no mesmo diretório.
Entre no prompt do DOS e compile o arquivo CURSORES.RC usando o programa BRCC32.EXE do Delphi. A linha de comando é:
Isso fará com que seja criado um arqiuvo chamado CURSORES.RES
No fonte do form principal coloque
Crie uma constante
Crie a função que extrai o cursor para o diretório da aplicação, assim:
[code]
procedure ExtrairCursor;
var
DirDestino : String;
NomeArquivo: String;
Fres : TResourceStream;
fFile : TFileStream;
begin
DirDestino := ExtractFilePath(Application.ExeName);
NomeArquivo := ´BANANA.ANI´;
{Cria uma instância de TResourceStream para manipulá-lo mais tarde}
Fres := TResourceStream.Create(0,´MEU_CURSOR´,RT_RCDATA);
{Cria em memória o arquivo gravado no Resource}
fFile := TFileStream.Create(DirDestino + ´\´ + NomeArquivo,fmCreate);
try
{Copia do Resource}
Ffile.CopyFrom(Fres,Fres.Size);
finally
{Libera as variáveis necessárias.}
Fres.Free;
Ffile.Free;
end;
end;
MEU_CURSOR RCDATA BANANA.ANI
brcc32 -r -32 CURSORES.RC
{$R CURSORES.RES}
const crSeuCursor = 1; // Tem que ser um valor maior que 0 (zero)
Acabei de seguir esses passos eu funfou certinho :D, só q tipo, eu queria q o cursor ficasse integrado ao execultavel (.exe) e ñ q ele criasse o cursor na mesma pasta após dar 2 cliques ao arquivo execultavel, isso é possível???
GOSTEI 0
Adriano Santos
04/08/2005
Esqueça a minha dica e siga a dica do Michael ou no link que postei na mensagem anterior.
GOSTEI 0
Duolon
04/08/2005
Olá colega!
Já tinha escrito quando vc me avisou...
1) Crie um arquivo de recurso no [b:6096d1ae5d]ImageEditor[/b:6096d1ae5d], q vem com o Delphi, e adicione um cursor;
2) Desenhe o cursor do jeito que quiser e dê um nome a ele (por exemplo, ´MAO_IE´)
3) Salve o arquivo de recurso em uma pasta.
4) Abra o Delphi, crie uma nova aplicação VCL e salve-a na mesma pasta onde colocou o arquivo de recurso;
5) Defina uma constante para referenciar o cursor:
6) Coloque a seguinte diretiva de compilação abaixo da seção [b:6096d1ae5d]uses[/b:6096d1ae5d] para incluir o arquivo de recurso dentro do executável:
7) Coloque um botão no Form, e no evento OnCreate, digite:
Ia colocar um screenshot, mas não tenho nenhum programa aqui que capture a imagem do cursor :-(
[]´s
const crMeuCursor = 1; // Número > 0
{$R CURSORES.RES}procedure TForm1.FormCreate(Sender: TObject); begin Screen.Cursors[crMeuCursor] := LoadCursor(HInstance, ´MAO_IE´); Button1.Cursor := crMeuCursor; end;
Essa dica ñ faz com q o cursor fique integrado ao execultavel né?
como q faço pra ficar?
GOSTEI 0
Duolon
04/08/2005
Reli tudo denovo e finalmente consegui. Ufa.... :wink:
segui a dica do Michael
segui a dica do Michael
GOSTEI 0