
Thales Pontes Martins
Membros-
Total de itens
453 -
Registro em
-
Última visita
Tudo que Thales Pontes Martins postou
-
Então deveria ser assim-> O primeiro comando que é executado no banco é o do OnFormShow -> var BaseDown : boolean; begin baseDown:=True; repeat try IBContrSMS.Connected:=True; BaseDown:=false; except BaseDown:=true; end; Sleep(400); until not(BaseDown); . . . end; Ou estou errado?
-
CheckBox1.OnClick:=nil; //Faça o que você quiser, meu filho. CheckBox1.OnClick:=CheckBox1Click; Um erro, no primeiro é state e não checked. Não olhei mas tenho quase certeza que em ambos os jeitos é usado o mesmo método SetChecked. Abraço.
-
As opções que aparecem neste fórum são essas -> Essa que você disse eu não ví. Será que você não tá confundindo com outro fórum não? Abraço.
-
Mais De Um Delphi(versão) No Mesmo Computador
pergunta respondeu ao Paulo Nobre de Thales Pontes Martins em Delphi, Kylix
Bom, aqui no meu eu uso o Delphi 6 e Delphi 2006 sem nenhum conflito. Apenas existem componentes no Delphi 2006 que não tem no 6 então os programas que os utilizam não poderão ser compilados nele, mas fora isso são compatíveis. Claro que evito fazer trocas, se escreví em um, compilo sempre nele. Mas porque você quer usar isso tudo no mesmo computador? XD Brincadeira :lol: . -
Mas por favor responda a minha pergunta: Esse erro é exceção?
-
Transformar Bitmap Em Ícone
pergunta respondeu ao Paulo Nobre de Thales Pontes Martins em Delphi, Kylix
Bom, 1. Eu digitei TImageList.GetIcon em qualquer lugar. 2. Cliquei com botão direito em GetIcon e depois em "Find Declaration". Apareceu a classe TCustomImageList com seu respectivo método GetIcon. 3. Novamente clicando nesse GetIcon e depois em "Find Declaration" apareceu outro método overloaded da mesma classe. 4. Dentro desse método fazia-se chamada ao procedimento ImageList_GetIcon da unit CommCtrl, fui novamente em "Find Declaration". 5. Na unit CommCtrl tinha um external para uma dll cujo nome estava na unit Windows, fui 2 vezes em "Find Declaration" e achei o valor 'comctl32.dll'. Abraço. -
Transformar Bitmap Em Ícone
pergunta respondeu ao Paulo Nobre de Thales Pontes Martins em Delphi, Kylix
Ela está fazendo toda a conversão que no código sugerido pelo Paulo Bergo está sendo feita no método TImageList.GetIcon que chama o procedimento ImageList_GetIcon que está na dll comctl32.dll e que já faz todo o trabalho bruto. -
Caso não funcione a dica do mestre s3c, você tira uma fotografia desse erro e manda pro meu e-mail -> thalespo@terra.com.br. Porque você não tá sabendo muito bem explicar que tipo de erro é esse. Abraço.
-
Muito interessante. Sempre quis saber isso mas nunca perguntei porque não tem utilidade nenhuma já que se pode tomar nota de quanto se está alocando pra saber depois. É mais uma curiosidade muito forte de saber como ele faz para saber a quantidade alocada. É certo que ele sabe porque na hora de chamar FreeMem ele tem que saber quanto de momória ele tem que liberar, e no caso de ter que alocar mais ele tem que saber pra não alocar por cima da outra. Bom, as funções GetMem e AllocMem alocam memória na heap, e não na pilha, e chamam SysAllocMem e SysGetMem que são internas do compilador e encapsuladas pelo MemoryManager do sistema. Acredito que o MemoryManager tenha uma pilha para anotar todos os ponteiros com seu respectivos tamanhos, pra poder fazer esse gerenciamento. Mas daí a ter acesso a ela eu já não sei. Vamos esperar os feras. rsrs. Abraço.
-
Valdecir, poste código sempre dentro de caixa de código. Edite o seu post, selecione o código e clique no botão # em cima da caixa de texto que você está escrevendo. Eu não entendo nada de banco de dados, mas perguntei se o erro que aparece tem alguma coisa do tipo "...raised exception...". Se for isso tem como resolver. Se não for também tem mas não me ocorre nada no momento. Abraço.
-
Opa Não sei se entendí bem o que você quer fazer. É claro, é só você criar o form na dll. Qual é a sua dúvida?
-
Pesquisa em diretório e subdiretórios: Muitas pessoas precisam de fazer operações em arquivos de uma pasta e também subpastas então aqui está um procedimento que faz uma busca num diretório e notifica uma função de callback com os dados necessários -> uses SysUtils, Windows; type PSearchRec = ^TSearchRec; TSearchDirCallBack = Procedure(FileName : string; Rec : PSearchRec; lpData : pointer; count, depth : cardinal; var Cancel : Boolean); function SearchDir(Dir : String; lpFunc : TSearchDirCallBack; lpData : pointer) : cardinal; implementation function SearchDir(Dir : String; lpFunc: TSearchDirCallBack; lpData : pointer) : cardinal; var depth, count : cardinal; cancel : boolean; function vldir(dr : string) : boolean; begin result:=((trim(dr) <> '..') and (trim(dr) <> '.')); end; procedure Search(dirname : string); var rec : TSearchRec; begin if (cancel) then exit; inc(depth); if (FindFirst(dirname+'\*',faReadOnly or faanyfile or favolumeid or faHidden or faSysFile or faDirectory or faArchive,rec)<>0) then begin SysUtils.FindClose(rec); dec(depth); exit; end; repeat if ((rec.Attr and fadirectory)<>0) then begin if vldir(rec.Name) then Search(dirname+'\'+rec.name); end; inc(count); if (vldir(rec.Name)) then lpFunc(dirname+'\'+rec.Name,@rec,lpData,count,depth,cancel); if (cancel) then break; until (findnext(rec) <> 0); SysUtils.FindClose(rec); dec(depth); end; begin if (@lpFunc = nil) then exit; cancel:=false; count:=0; depth:=0; while (dir[length(dir)] = '\') or (dir[length(dir)] = '/') do delete(dir,length(dir),1); if not(Directoryexists(dir)) then begin result:=1; exit; end; Search(dir); if (count = 0) then result:=2 else result:=0; end; Parametros: Dir : String, diretório onde se vai fazer a busca. lpFunc : TSearchDirCallBack, endereço do procedimento que será notificado a cada arquivo encontrado. lpData : Pointer, qualquer ponteiro para quaisquer dados que se queira que a função passe para a função de CallBack, pode ser nil. Valor de retorno: 0 : A busca foi executada com sucesso. 1 : Diretório passado como parametro não existente. 2 : Nenhum arquivo encontrado dentro do diretório. A função de CallBack: Procedure(FileName : string; Rec : PSearchRec; lpData : pointer; count, depth : cardinal; var Cancel : Boolean); Parametros: FileName : String, Nome do arquivo encontrado com caminho completo. Rec : PSearchRec, Ponteiro para uma estrutura TSearchRec na qual está sendo executada a busca. lpData : Pointer, 3º parametro da função SearchDir repassado. count : Cardinal, Quantos arquivos já foram achados. depth : Cardinal, Profundidade atual da busca. cancel : Boolean, Variável booleana que indica se a busca deve ser cancelada, se quiser cancelar é só colocar cancel:=true;. Exemplo de uso -> Procedure CallBack(FileName : string; Rec : PSearchRec; lpData : pointer; count, depth : cardinal; var Cancel : Boolean); begin Form1.Memo1.Lines.Add(FileName); Form1.Caption:='depth = '+inttostr(depth)+' count = '+inttostr(count); end; procedure TForm1.Button1Click(Sender: TObject); begin SearchDir('C:\windows',@CallBack,nil); end;Esse código aí enche o memo do form com todos os arquivos dentro da pasta windows e subpastas. Se você colocar c:\Arquivos de programas vai ficar 3 horas vendo nome, e se colocar c:, pode sair pra dar uma volta e voltar quando o mundo tiver acabado que talvez já tenha terminado. Inclusive com isso pode-se fácilmente fazer uma pesquisa que nem a do windows, iniciar->pesquisar. Não sei se isso já existia em alguma unit do Delphi. Não que eu visse. Autor: Thales Pontes Martins. Abraço.
-
Opa, esse erro é exceção? porque se for dá pra resolver, é só ficar tentando fazer a primeira operação que o programa faz com o banco com um try, até que não ocorra mais exceção.
-
Transformar Bitmap Em Ícone
pergunta respondeu ao Paulo Nobre de Thales Pontes Martins em Delphi, Kylix
Paulo, uma pergunta: Se você não quer mostrar nada no form então porque está usando o TImage? Porque está fazendo -> Image1.Picture.LoadFromFile.. Bitmap.Assign(Image1.picture); ? Porque não faz direto-> Bitmap.LoadFromFile... e manda esse Timage pro inferno? -
Opa, então me fala como se habilita ela. Abraço.
-
Outra melhoria que observei que também pode se feita no fórum é quando alguém editar um post, marcar aquele post como não lido, senão como agente vai adivinhar que acrescentaram novas informações?
-
Ahh, isso aí é facinho, é só você hackear o formato .pdf :P . Ou achar algum código de alguém que já tenha hackeado.
-
Funcionou? Como acha que são usados os recursos do executável(retórica)? ResHacker é aquele que o micheus mencionou. Se for não precisa, o Delphi tem o Image Editor que abre o .res. É eu ví aqui depois.
-
Mas eu quero o título na minha janela, homem. Bom com esse seu post essa dúvida já está resolvida. Valeu.
-
Esquecí de perguntar. Como que você vai colocar o ícone ao lado do ítem? Vai usar um componente próprio ou vai usar o OnDraw do TMenuItem mesmo?
-
O nome dos ícones são "STAY_ON" e "STAY_OFF" e estão no .res principal. -> 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;
-
Bom, eu queria que alguém me dissesse como é que o Windows espera que os programas façam, ou seja, ele foi programado para se pegar um DC a cada Paint ou pegar um e usar o programa inteiro.
-
Só lembrando que naquele componente que você me passou pra olhar o OnDraw tem os dois 13x13. Não sei se vai servir pra você. Não é necessário porque o menu tem latura ajustável então o windows redimensiona o ícone.
-
Pois é, mas o handle do canvas do form só pega área cliente eu eu quero a janela toda.
-
Beleza, mas porque então o TForm pega um a cada Paint se pode fazer assim, não ficaria mais lento?