Diretiva de Compilação
Ola Pessoal Existe alguma diretiva de compilação para identificar a versão do sistema Operacional??
vlw
vlw
Fernando Piccini
Curtidas 0
Respostas
Massuda
02/05/2007
Não existe tal diretiva; se existisse, ela só funcionaria em tempo de compilação, o que provavelmente não é o que você deseja.
Talvez :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=60337]este tópico[/url] seja útil para você.
Talvez :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=60337]este tópico[/url] seja útil para você.
GOSTEI 0
Fernando Piccini
02/05/2007
Ola Massuda,
Sei q somente com uma funtion conseguiria retornar a versão do sistema operacional, porém tenho q carregar um arquivo de recuros ´.res´ somente se a versão do windows for diferente do Windows 98....
Ou seja abaixo, abaixo tenho um trecho de meu programa onde quero q carregue o arquivo ArqTeste.res somente se for diferente do Windows 98
...
[b:ad422620ed]
implementation
{$IFDEF ???} <-- Qual utilizar???
{$R ArqTeste.res}
{$ENDIF}[/b:ad422620ed]
Como posso tratar isso com uma diretiva ???
Sei q somente com uma funtion conseguiria retornar a versão do sistema operacional, porém tenho q carregar um arquivo de recuros ´.res´ somente se a versão do windows for diferente do Windows 98....
Ou seja abaixo, abaixo tenho um trecho de meu programa onde quero q carregue o arquivo ArqTeste.res somente se for diferente do Windows 98
...
[b:ad422620ed]
implementation
{$IFDEF ???} <-- Qual utilizar???
{$R ArqTeste.res}
{$ENDIF}[/b:ad422620ed]
Como posso tratar isso com uma diretiva ???
GOSTEI 0
Felipeaj
02/05/2007
fernandopiccini, imagino que o que o Massuda tenha dito é que se existisse, a diretiva vai guardar a versão do SO do PC que compilou o sistema, não do que está rodando no momento
GOSTEI 0
Felipeaj
02/05/2007
Nao li direito teu post, falei bobagem
Ignoras meu post!!
Ignoras meu post!!
GOSTEI 0
Massuda
02/05/2007
Como posso tratar isso com uma diretiva ???
Não pode. Como disse antes, se isso existisse, só funcionaria em tempo de compilação e, como disse o colega felipeaj, só serviria para dizer que a máquina onde o programa compilou era determinado Windows.No seu caso, parece que você precisa determinar o tipo de Windows em tempo de execução. Explique melhor o que é esse resource/recurso que você quer usar dependendo da versão do Windows.
GOSTEI 0
Fernando Piccini
02/05/2007
ok, vamos la...
O problema é que em máquinas com Win98 da problemas quanto tenta entrar meu sistema, pq ele tenta carregar um arquivo ´.res´...este arquivo contem algumas imagens q utilizo no meu programa, certo...
Ja q em tempo compilacao nao da, acredito q talvez tenha alguma forma entao de carregar este arquivo ´.res´ em tempo de execucao... ou seja, da mesma forma que deve-se carregar dlls, loadlibrary, certo...
mas qual a rotina e de que forma utilizar a mesma (caso exista) para carregar um arquivo ´.RES´ ???
vlw
Massuda / felipeaj pela atenção ai
O problema é que em máquinas com Win98 da problemas quanto tenta entrar meu sistema, pq ele tenta carregar um arquivo ´.res´...este arquivo contem algumas imagens q utilizo no meu programa, certo...
Ja q em tempo compilacao nao da, acredito q talvez tenha alguma forma entao de carregar este arquivo ´.res´ em tempo de execucao... ou seja, da mesma forma que deve-se carregar dlls, loadlibrary, certo...
mas qual a rotina e de que forma utilizar a mesma (caso exista) para carregar um arquivo ´.RES´ ???
vlw
Massuda / felipeaj pela atenção ai
GOSTEI 0
Massuda
02/05/2007
Imaginando que voce precise de resources diferentes para Win(tendo)98 e WinNT/2K/XP, você vai ter que incluir os dois resources no seu programa (use nomes diferentes!) daí só precisa testar qual Windows está em uso e carregar a imagem do resource correto.
GOSTEI 0
Fernando Piccini
02/05/2007
Tem alguma rotina de exemplo que carrega esse tipo de arquivo em tempo de execução?
GOSTEI 0
Massuda
02/05/2007
Tem alguma rotina de exemplo que carrega esse tipo de arquivo em tempo de execução?
O arquivo RES não é carregado em tempo de execução, ele está embutido no programa e seu código decide qual imagem carregar....
implementation
{$R Arquivo1.res} // Wintendo
{$R Arquivo2.res} // Win NT/2K/XP/Vista
...GOSTEI 0
Fernando Piccini
02/05/2007
Ola Massuda,
O problema é que o Win98 tenta armazenar memória para as imagens (Arquivo declarado na Diretiva {$R ...RES}) e não consegue. Consequentemente não consegue nem abrir meu executavel informando q nao tem mais memória.
Efetuei um teste onde retirei apenas a declaração da diretiva e rodou o executavel...
Mas consegui através de outra opção...ok...
Valeu pela força ai
:D
O problema é que o Win98 tenta armazenar memória para as imagens (Arquivo declarado na Diretiva {$R ...RES}) e não consegue. Consequentemente não consegue nem abrir meu executavel informando q nao tem mais memória.
Efetuei um teste onde retirei apenas a declaração da diretiva e rodou o executavel...
Mas consegui através de outra opção...ok...
Valeu pela força ai
:D
GOSTEI 0