Retornando um fração do texto contida em um campo que amarzene texto

23 julho, 2010

Para retornar uma parte do texto de um campo blob (que esteja armazenando um texto, ex:um memo), basta usar o comando

select substring(campo_blob,1,70) from tabela

onde:

campo_blob :  campo na tabela do tipo blob (ou outro que contenha o texto, varchar, char) onde armazena o texto;

1 : posição inicial do texto que quer retornar;

70 : quantidade de caractes que deseja retornar.

Espero ter ajudado.

Até a próxima.


Livro sobre Delphi 2010 Marco Cantu

5 março, 2010

Marco Cantu disponibilizou hoje (05/03/2010) seu novo livro Delphi 2010 Handbook no site da embarcadero.

Para baixar, tem que ser usuário registrado na embarcadero.

o link para o livro no site da embarcadero é

Delphi 2010 Handbook

link para o livro 4shared

Delphi 2010 Handbook

até.


Vídeos Delphi Conference OnLine

26 fevereiro, 2010

Foi disponibilizado as apresntações do Delphi Conference OnLine ocorrido no dia 25/02/2010, aos interessaados, o link segue logo a baixo:

Delphi Conference Online

Até a próxima.


Busca entre 2 parâmetros

8 fevereiro, 2010

Olá pessoal, postarei como realizar uma busca entre 2 parâmetros.

Ao usar o tradicional select campo from tabela where valor <= paramentro and valor >= parametro, podemos usar a função between.

A função between serve para compara se um valor esta dentro da faixa de valores desejada.

Ex.:

para saber se um valor esta ente os números 100 e 150 basta fazer

SELECT CAMPO FROM TABELA WHERE VALOR BETWEEN 100 AND 150.

E só para ressaltar, o between serve tanto para números, como para datas e strings.

Espero ter ajudado.

Até a próxima.


Tradução mensagens do Delphi 2010

26 janeiro, 2010

Ola pessoal, procurando pela net, achei uma página que ensina a traduzir as mensagens do Delphi sem precisar instalare/ou substituir os arquvos do Delphi 2010.

Sempre que pesquisei sobre como traduzir as mensagens do Delphi obtive, na maioria das vezes, a mesma resposta.  Basicamente essas respostas envolviam a substituição das units do Delphi por outras já traduzidas.

Enfim encontrei algo mais elegante.  Todas as mensagens do Delphi são declaradas como resourcestring, que é uma área onde são declaradas “constantes” que podem ser alteradas em run-time, ou seja, sem a necessidade de recompilar o projeto.

Para alterar essas “constantes” usamos a função VirtualProtec (windows.pas). Através dela obtemos a estrutura do resourcestring armazenado no executável e a alteramos.  Para simplificar criei um método que faz toda a operação.

procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar);
var
POldProtect: DWORD;
begin
VirtualProtect(AResString, SizeOf(AResString^), PAGE_EXECUTE_READWRITE, @POldProtect);
AResString^.Identifier := Integer(ANewValue);
VirtualProtect(AResString, SizeOf(AResString^), POldProtect, @POldProtect);
end;

Para utilizar esse método basta passar o ponteiro do resourcestring e seu novo valor.  Exemplo:

resourcestring

rsMinhaMensagem = ‘Exemplo de alteração do resourcestring’;
.
.
.
SetResourceString(@rsMinhaMensagem, ‘rsMinhaMensagem mudou’);

As declarações de resourcestring do Delphi estão espalhadas em várias units (corbcnst, midconst, mxconsts, comconst, webconst, ibconst, bdeconst, comstrs, consts), portanto para traduzir basta localiza-las na pastasource da instalação do Delphi e executar o método SetResourceString para cada constante que deseja traduzir.  Exemplo:

SetResourceString(@SMsgDlgYes, ‘Novo Yes’);

Toda a tradução pode ser declarada na inicialização de uma unit comum a todos os seus projetos.  Você encontrará mais detalhes no projeto exemplo.

Esse conceito pode ser utilizado para a internacionalização de seu sistema, ou seja, poderíamos declarar todas as mensagens como resourcestring e cria um mecanismo no sistema que permita ao usuário trocar a linguagem.  Nas versões mais atuais do Delphi já temos opções que simplificam esse trabalho.

Ai vai o link da página onde foi extraido o artigo.

Leandro Piga

Espero ter ajudado.

Até a próxima.

Meu arquivo de tradução

Tradução Delphi 2010 ou superior.

 

unit uTraducao;

interface

uses Windows, Consts;

procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar);

const
SNewMsgDlgYes: PChar = ‘&Sim’;
SNewMsgDlgOK: PChar = ‘Ok’;
SNewMsgDlgCancel: PChar = ‘Cancelar’;
SNewMsgDlgNo: PChar = ‘&Não’;
SNewMsgDlgWarning = ‘Aviso’;
SNewMsgDlgError = ‘Erro’;
SNewMsgDlgInformation = ‘Informação’;
SNewMsgDlgConfirm = ‘Confirme’;
SNewMsgDlgHelp = ‘&Ajuda’;
SNewMsgDlgHelpNone = ‘Não há arquivo de ajuda’;
SNewMsgDlgHelpHelp = ‘Ajuda’;
SNewMsgDlgAbort = ‘&Abortar’;
SNewMsgDlgRetry = ‘&Repetir’;
SNewMsgDlgIgnore = ‘&Ignorar’;
SNewMsgDlgAll = ‘&Todos’;
SNewMsgDlgNoToAll = ‘N&ão para Todos’;
SNewMsgDlgYesToAll = ‘Sim pata &Todos’;

implementation

procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar);
var
POldProtect: DWORD;
begin
VirtualProtect(AResString, SizeOf(AResString^), PAGE_EXECUTE_READWRITE,
@POldProtect);
AResString^.Identifier := Integer(ANewValue);
VirtualProtect(AResString, SizeOf(AResString^), POldProtect, @POldProtect);
end;

initialization

SetResourceString(@SMsgDlgYes, SNewMsgDlgYes);
SetResourceString(@SMsgDlgOK, SNewMsgDlgOK);
SetResourceString(@SMsgDlgCancel, SNewMsgDlgCancel);
SetResourceString(@SMsgDlgNo, SNewMsgDlgNo);
SetResourceString(@SMsgDlgWarning, SNewMsgDlgWarning);
SetResourceString(@SMsgDlgError, SNewMsgDlgError);
SetResourceString(@SMsgDlgInformation, SNewMsgDlgInformation);
SetResourceString(@SMsgDlgConfirm, SNewMsgDlgConfirm);
SetResourceString(@SMsgDlgHelp, SNewMsgDlgHelp);
SetResourceString(@SMsgDlgHelpNone, SNewMsgDlgHelpNone);
SetResourceString(@SMsgDlgHelpHelp, SNewMsgDlgHelpHelp);
SetResourceString(@SMsgDlgAbort, SNewMsgDlgAbort);
SetResourceString(@SMsgDlgRetry, SNewMsgDlgRetry);
SetResourceString(@SMsgDlgIgnore, SNewMsgDlgIgnore);
SetResourceString(@SMsgDlgAll, SNewMsgDlgAll);
SetResourceString(@SMsgDlgNoToAll, SNewMsgDlgNoToAll);
SetResourceString(@SMsgDlgYesToAll, SNewMsgDlgYesToAll);

end.


Update 4, 5 RAD Studio, Delphi & C++Builder 2010

15 dezembro, 2009

27492 Update 4, 5 & Boost Lib for RAD Studio, Delphi & C++Builder 2010.


Slides e Exemplos do Delphi Conference Brasil 2009

8 dezembro, 2009

Bom pessoal, está disponível os slides e exemplos do que aconteceu no Delphi Conference Brasil 2009 em São Paulo, dia 24 de Novembro de 2009.

O link para acessar o conteúdo está logo aqui Delphi Conference Brasil

Mais alguns detalhes estão no site do Andreano Lanusse

Espero ter ajudado.

Até a próxima.


Último dia do mês em Delphi

3 dezembro, 2009

Olá, para saber o último dia de algum mês em delphi, basta utilizar a função nativa DaysOf(data).

Basta adicionar ao uses a unit DateUtils.

Vamos ao Exemplo prático, para este exemplo usei o Delphi 2010:

uses DateUtils;

procedure DiasDoMes(data:TDate);

var ultimodia,mes : Word;

begin

ultimodia:=DaysOf(Data);

mes:=MonthOf(Data);

ShowMessage(O mês ‘+IntToStr(mes)+’ vai até dia ‘+IntToStr(ultimodia));

end;

A Unit DateUtils contem várias rotinas para trabalhar com datas, vale a pena dar uma olhada.

Espero ter ajudado, até a próxima.


Fotos Delphi Conference Brasil

26 novembro, 2009

Algumas fotos do evento realizado na capital paulista no dia 24-11-2009.

Abertura Delphi Conference Brasil

David

Caxueira, David e Márcio

minicurso Rave Reports

assinatura digital


Delphi 2010 Update 2, 3

11 novembro, 2009

Olá Pessoal, a Embarcadero disponibilizou 2 Updates para Delphi 2010

  1. Update 2
  2. Update3

para atualizar basta clicar nos links a cima ou em check for update na pasta da Embarcadero Delphi 2010 no menu iniciar.

Espero ter ajudado.

Até a próxima.