ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Dicas para ajudar todos (Colaborem postando suas rotinas)
Ir à página Anterior  1, 2, 3 ... 12, 13, 14, 15, 16  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
labambamogi
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 4 de Novembro de 2011
Mensagens: 119

MensagemEnviada: Ter Abr 01, 2014 9:49 am    Assunto: Re: Alteração de Tamanho da Combobox Responder com Citação

Você já tentou o comando abaixo ?
ComboBox1.Perform(CB_SETDROPPEDWIDTH, 200, 0);

Nos links seguintes há exemplos c/ o tamanho variável.

http://www.activedelphi.com.br/forum/viewtopic.php?t=65727&sid=42e7d04a8b2d087c6b32d6029a6ee1fd
http://delphi.about.com/od/tcombobox/a/sizing-combobox-drop-down-width-no-cut-off-right-edge-placements.htm
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Qua Mai 07, 2014 10:33 am    Assunto: Problema do FireDAC Responder com Citação

Estou analisando o FireDAC, e enfrentei um, digamos, "BUG".
O que acontece é o seguinte: Pelos testes que eu fiz com o Firebird (deixo bem claro aqui que não testei em outros bancos) que, quando se adiciona um registro com autoincremento no campo de chave primária e com a propriedade "Autocommit = True", ele simplesmente acrescenta o valor de -1, -2, -3, etc... Buscando na internet, já consegui resolver o problema!

No evento AfterInsert do componente ADQuery, coloque o seguinte código (postei de forma genérica. Adapte para o seu caso):

Código:
procedure TDM.ADQueryAfterInsert(DataSet: TDataSet);
var
  nCodigo: Variant;
begin
  nCodigo := ADConnection.GetLastAutoGenValue('GENERATOR_ID') + 1;
  ADQueryCAMPO.Value := nCodigo;
end;


E no evento AfterCancel, coloque o seguinte código (postei de forma genérica. Adapte para o seu caso):

Código:
procedure TDM.ADQueryAfterCancel(DataSet: TDataSet);
var
  nCodigo: Variant;
begin
  DataSet.Edit;
  nCodigo := ADConnection.GetLastAutoGenValue('GENERATOR_ID');
  ADQueryCAMPO.Value := nCodigo;
  DataSet.Post;
end;


Espero ter ajudado!

T++
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
labambamogi
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 4 de Novembro de 2011
Mensagens: 119

MensagemEnviada: Dom Ago 31, 2014 2:32 pm    Assunto: Responder com Citação

Enviando parâmetro de data (ou qualquer outro tipo) como nulo (null)
Para mandar outro tipo, basta mudar o DataType.

cds.Params.ParamByName('dData').Clear;
cds.Params.ParamByName('dData').DataType := ftDate;
cds.Params.ParamByName('dData').Bound := True;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
edsedsrp
Novato
Novato


Registrado: Terça-Feira, 3 de Junho de 2014
Mensagens: 39

MensagemEnviada: Sex Out 24, 2014 11:56 am    Assunto: CALCULANDO DIAS UTEIS Responder com Citação

function SomaDiasUteis(wDataInicio : TDate; wQtde: Integer): TDate;
function SubtraiDiasUteis(wDataInicio : TDate; wQtde: Integer): TDate;
function CalculaDiasUteis(wDataInicio : TDate; wDataFim: TDate): Integer;

function SomaDiasUteis(wDataInicio : TDate; wQtde: Integer): TDate;
begin
while wQtde > 0 do
begin
wDataInicio := wDataInicio + 1;
// VERIFICA SE NAO É SABADO OU DOMINGO
if ((DayOfWeek(wDataInicio) <> 1) and (DayOfWeek(wDataInicio) <7> 0 do
begin
wDataInicio := wDataInicio - 1;
if ((DayOfWeek(wDataInicio) <> 1) and (DayOfWeek(wDataInicio) <> 7)) then
begin
// VERIFICA SE NAO É FERIADO
with QryValidacao do // OU A TABELA QUE VC USAR PARA FAZER VALIDACAO E SELECT
begin
Close;
SQL.Text := 'select DATA from cad_feriados '
+ 'where DATA = ' + QuoteDStr(FormatDateTime('YYYY-MM-DD',wDataInicio));
Open;
if IsEmpty then
wQtde := wQtde - 1;
end;
end;
end;
Result := wDataInicio;
end;

function CalculaDiasUteis(wDataInicio : TDate; wDataFim: TDate): Integer;
var
wQtde : Integer;
begin
wQtde := 0;
if wDataFim <= wDataInicio then
Result := 0
else begin
wDataInicio := wDataInicio - 1; // PARA CONSIDERAR A DATA INICIAL
while wDataInicio <= wDataFim do
begin
wDataInicio := wDataInicio + 1;
if ((DayOfWeek(wDataInicio) <> 1) and (DayOfWeek(wDataInicio) <> 7)) then
begin
// VERIFICA SE NAO É FERIADO
with QryValidacao do // OU A TABELA QUE VC USAR PARA FAZER VALIDACAO E SELECT
begin
Close;
SQL.Text := 'select DATA from cad_feriados '
+ 'where DATA = ' + QuoteDStr(FormatDateTime('YYYY-MM-DD',wDataInicio));
Open;
if IsEmpty then
wQtde := wQtde + 1;
end;
end;
end;
Result := wQtde;
end;
end;


-- FERIADOS DE 2012 A 2030 NACIONAIS FIXOS MAIS PASCOA-PAIXAO DE CRISTO E CORPUS CHRISTI
-- CONSCIENCIA NEGRA E REVOLUCAO PAULISTA

CREATE TABLE cad_feriados(
ANO int(4) NOT NULL DEFAULT 0,
DATA date NOT NULL,
DESCRICAO varchar(100) DEFAULT '',
PRIMARY KEY (ANO,DATA),
INDEX DATA (DATA),
INDEX ANO (ANO)
)
ENGINE = MYISAM;

insert into cad_feriados values (2012,'2012-01-01','ANO NOVO');
insert into cad_feriados values (2012,'2012-21-04','TIRADENTES');
insert into cad_feriados values (2012,'2012-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2012,'2012-09-07','INDEPENDENCIA');
insert into cad_feriados values (2012,'2012-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2012,'2012-11-02','FINADOS');
insert into cad_feriados values (2012,'2012-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2012,'2012-12-25','NATAL');
insert into cad_feriados values (2012,'2012-04-06','PAIXAO DE CRISTO');
insert into cad_feriados values (2012,'2012-04-08','PASCOA');
insert into cad_feriados values (2012,'2012-02-21','CARNAVAL');
insert into cad_feriados values (2012,'2012-02-21','CORPUS CHRISTI');
insert into cad_feriados values (2012,'2012-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';
insert into cad_feriados values (2012,'2012-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';

insert into cad_feriados values (2013,'2013-01-01','ANO NOVO');
insert into cad_feriados values (2013,'2013-21-04','TIRADENTES');
insert into cad_feriados values (2013,'2013-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2013,'2013-09-07','INDEPENDENCIA');
insert into cad_feriados values (2013,'2013-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2013,'2013-11-02','FINADOS');
insert into cad_feriados values (2013,'2013-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2013,'2013-12-25','NATAL');
insert into cad_feriados values (2013,'2013-03-29','PAIXAO DE CRISTO');
insert into cad_feriados values (2013,'2013-03-31','PASCOA');
insert into cad_feriados values (2013,'2013-02-12','CARNAVAL');
insert into cad_feriados values (2013,'2013-05-30','CORPUS CHRISTI');
insert into cad_feriados values (2013,'2013-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2013,'2013-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';


insert into cad_feriados values (2014,'2014-01-01','ANO NOVO');
insert into cad_feriados values (2014,'2014-21-04','TIRADENTES');
insert into cad_feriados values (2014,'2014-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2014,'2014-09-07','INDEPENDENCIA');
insert into cad_feriados values (2014,'2014-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2014,'2014-11-02','FINADOS');
insert into cad_feriados values (2014,'2014-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2014,'2014-12-25','NATAL');
insert into cad_feriados values (2014,'2014-04-18','PAIXAO DE CRISTO');
insert into cad_feriados values (2014,'2014-04-20','PASCOA');
insert into cad_feriados values (2014,'2014-03-04','CARNAVAL');
insert into cad_feriados values (2014,'2014-06-19','CORPUS CHRISTI');
insert into cad_feriados values (2014,'2014-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2014,'2014-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2015,'2015-01-01','ANO NOVO');
insert into cad_feriados values (2015,'2015-21-04','TIRADENTES');
insert into cad_feriados values (2015,'2015-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2015,'2015-09-07','INDEPENDENCIA');
insert into cad_feriados values (2015,'2015-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2015,'2015-11-02','FINADOS');
insert into cad_feriados values (2015,'2015-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2015,'2015-12-25','NATAL');
insert into cad_feriados values (2015,'2015-04-03','PAIXAO DE CRISTO');
insert into cad_feriados values (2015,'2015-04-05','PASCOA');
insert into cad_feriados values (2015,'2015-02-17','CARNAVAL');
insert into cad_feriados values (2015,'2015-06-04','CORPUS CHRISTI');
insert into cad_feriados values (2015,'2015-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2015,'2015-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2016,'2016-01-01','ANO NOVO');
insert into cad_feriados values (2016,'2016-21-04','TIRADENTES');
insert into cad_feriados values (2016,'2016-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2016,'2016-09-07','INDEPENDENCIA');
insert into cad_feriados values (2016,'2016-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2016,'2016-11-02','FINADOS');
insert into cad_feriados values (2016,'2016-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2016,'2016-12-25','NATAL');
insert into cad_feriados values (2016,'2016-03-25','PAIXAO DE CRISTO');
insert into cad_feriados values (2016,'2016-03-27','PASCOA');
insert into cad_feriados values (2016,'2016-02-09','CARNAVAL');
insert into cad_feriados values (2016,'2016-05-26','CORPUS CHRISTI');
insert into cad_feriados values (2016,'2016-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2016,'2016-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2017,'2017-01-01','ANO NOVO');
insert into cad_feriados values (2017,'2017-21-04','TIRADENTES');
insert into cad_feriados values (2017,'2017-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2017,'2017-09-07','INDEPENDENCIA');
insert into cad_feriados values (2017,'2017-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2017,'2017-11-02','FINADOS');
insert into cad_feriados values (2017,'2017-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2017,'2017-12-25','NATAL');
insert into cad_feriados values (2017,'2017-04-14','PAIXAO DE CRISTO');
insert into cad_feriados values (2017,'2017-04-16','PASCOA');
insert into cad_feriados values (2017,'2017-02-28','CARNAVAL');
insert into cad_feriados values (2017,'2017-06-15','CORPUS CHRISTI');
insert into cad_feriados values (2017,'2017-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2017,'2017-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2018,'2018-01-01','ANO NOVO');
insert into cad_feriados values (2018,'2018-21-04','TIRADENTES');
insert into cad_feriados values (2018,'2018-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2018,'2018-09-07','INDEPENDENCIA');
insert into cad_feriados values (2018,'2018-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2018,'2018-11-02','FINADOS');
insert into cad_feriados values (2018,'2018-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2018,'2018-12-25','NATAL');
insert into cad_feriados values (2018,'2018-03-30','PAIXAO DE CRISTO');
insert into cad_feriados values (2018,'2018-04-01','PASCOA');
insert into cad_feriados values (2018,'2018-02-13','CARNAVAL');
insert into cad_feriados values (2018,'2018-05-31','CORPUS CHRISTI');
insert into cad_feriados values (2018,'2018-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2018,'2018-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2019,'2019-01-01','ANO NOVO');
insert into cad_feriados values (2019,'2019-21-04','TIRADENTES');
insert into cad_feriados values (2019,'2019-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2019,'2019-09-07','INDEPENDENCIA');
insert into cad_feriados values (2019,'2019-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2019,'2019-11-02','FINADOS');
insert into cad_feriados values (2019,'2019-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2019,'2019-12-25','NATAL');
insert into cad_feriados values (2019,'2019-04-19','PAIXAO DE CRISTO');
insert into cad_feriados values (2019,'2019-04-21','PASCOA');
insert into cad_feriados values (2019,'2019-03-05','CARNAVAL');
insert into cad_feriados values (2019,'2019-06-20','CORPUS CHRISTI');
insert into cad_feriados values (2019,'2019-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2019,'2019-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2020,'2020-01-01','ANO NOVO');
insert into cad_feriados values (2020,'2020-21-04','TIRADENTES');
insert into cad_feriados values (2020,'2020-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2020,'2020-09-07','INDEPENDENCIA');
insert into cad_feriados values (2020,'2020-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2020,'2020-11-02','FINADOS');
insert into cad_feriados values (2020,'2020-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2020,'2020-12-25','NATAL');
insert into cad_feriados values (2020,'2020-04-17','PAIXAO DE CRISTO');
insert into cad_feriados values (2020,'2020-04-19','PASCOA');
insert into cad_feriados values (2020,'2020-02-25','CARNAVAL');
insert into cad_feriados values (2020,'2020-06-11','CORPUS CHRISTI');
insert into cad_feriados values (2020,'2020-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2020,'2020-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2021,'2021-01-01','ANO NOVO');
insert into cad_feriados values (2021,'2021-21-04','TIRADENTES');
insert into cad_feriados values (2021,'2021-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2021,'2021-09-07','INDEPENDENCIA');
insert into cad_feriados values (2021,'2021-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2021,'2021-11-02','FINADOS');
insert into cad_feriados values (2021,'2021-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2021,'2021-12-25','NATAL');
insert into cad_feriados values (2021,'2021-04-02','PAIXAO DE CRISTO');
insert into cad_feriados values (2021,'2021-04-04','PASCOA');
insert into cad_feriados values (2021,'2021-02-16','CARNAVAL');
insert into cad_feriados values (2021,'2021-06-03','CORPUS CHRISTI');
insert into cad_feriados values (2021,'2021-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2021,'2021-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2022,'2022-01-01','ANO NOVO');
insert into cad_feriados values (2022,'2022-21-04','TIRADENTES');
insert into cad_feriados values (2022,'2022-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2022,'2022-09-07','INDEPENDENCIA');
insert into cad_feriados values (2022,'2022-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2022,'2022-11-02','FINADOS');
insert into cad_feriados values (2022,'2022-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2022,'2022-12-25','NATAL');
insert into cad_feriados values (2022,'2022-04-15','PAIXAO DE CRISTO');
insert into cad_feriados values (2022,'2022-04-17','PASCOA');
insert into cad_feriados values (2022,'2022-03-01','CARNAVAL');
insert into cad_feriados values (2022,'2022-06-16','CORPUS CHRISTI');
insert into cad_feriados values (2022,'2022-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2022,'2022-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2023,'2023-01-01','ANO NOVO');
insert into cad_feriados values (2023,'2023-21-04','TIRADENTES');
insert into cad_feriados values (2023,'2023-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2023,'2023-09-07','INDEPENDENCIA');
insert into cad_feriados values (2023,'2023-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2023,'2023-11-02','FINADOS');
insert into cad_feriados values (2023,'2023-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2023,'2023-12-25','NATAL');
insert into cad_feriados values (2023,'2023-04-07','PAIXAO DE CRISTO');
insert into cad_feriados values (2023,'2023-04-09','PASCOA');
insert into cad_feriados values (2023,'2023-02-21','CARNAVAL');
insert into cad_feriados values (2023,'2023-06-08','CORPUS CHRISTI');
insert into cad_feriados values (2023,'2023-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2023,'2023-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2024,'2024-01-01','ANO NOVO');
insert into cad_feriados values (2024,'2024-21-04','TIRADENTES');
insert into cad_feriados values (2024,'2024-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2024,'2024-09-07','INDEPENDENCIA');
insert into cad_feriados values (2024,'2024-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2024,'2024-11-02','FINADOS');
insert into cad_feriados values (2024,'2024-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2024,'2024-12-25','NATAL');
insert into cad_feriados values (2024,'2024-03-29','PAIXAO DE CRISTO');
insert into cad_feriados values (2024,'2024-03-31','PASCOA');
insert into cad_feriados values (2024,'2024-02-13','CARNAVAL');
insert into cad_feriados values (2024,'2024-05-30','CORPUS CHRISTI');
insert into cad_feriados values (2024,'2024-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2024,'2024-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2025,'2025-01-01','ANO NOVO');
insert into cad_feriados values (2025,'2025-21-04','TIRADENTES');
insert into cad_feriados values (2025,'2025-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2025,'2025-09-07','INDEPENDENCIA');
insert into cad_feriados values (2025,'2025-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2025,'2025-11-02','FINADOS');
insert into cad_feriados values (2025,'2025-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2025,'2025-12-25','NATAL');
insert into cad_feriados values (2025,'2025-04-18','PAIXAO DE CRISTO');
insert into cad_feriados values (2025,'2025-04-20','PASCOA');
insert into cad_feriados values (2025,'2025-03-04','CARNAVAL');
insert into cad_feriados values (2025,'2025-06-19','CORPUS CHRISTI');
insert into cad_feriados values (2025,'2025-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2025,'2025-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2026,'2026-01-01','ANO NOVO');
insert into cad_feriados values (2026,'2026-21-04','TIRADENTES');
insert into cad_feriados values (2026,'2026-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2026,'2026-09-07','INDEPENDENCIA');
insert into cad_feriados values (2026,'2026-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2026,'2026-11-02','FINADOS');
insert into cad_feriados values (2026,'2026-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2026,'2026-12-25','NATAL');
insert into cad_feriados values (2026,'2026-04-03','PAIXAO DE CRISTO');
insert into cad_feriados values (2026,'2026-04-05','PASCOA');
insert into cad_feriados values (2026,'2026-02-17','CARNAVAL');
insert into cad_feriados values (2026,'2026-06-04','CORPUS CHRISTI');
insert into cad_feriados values (2026,'2026-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2026,'2026-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2027,'2027-01-01','ANO NOVO');
insert into cad_feriados values (2027,'2027-21-04','TIRADENTES');
insert into cad_feriados values (2027,'2027-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2027,'2027-09-07','INDEPENDENCIA');
insert into cad_feriados values (2027,'2027-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2027,'2027-11-02','FINADOS');
insert into cad_feriados values (2027,'2027-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2027,'2027-12-25','NATAL');
insert into cad_feriados values (2027,'2027-03-26','PAIXAO DE CRISTO');
insert into cad_feriados values (2027,'2027-03-28','PASCOA');
insert into cad_feriados values (2027,'2027-02-09','CARNAVAL');
insert into cad_feriados values (2027,'2027-05-27','CORPUS CHRISTI');
insert into cad_feriados values (2027,'2027-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2027,'2027-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2028,'2028-01-01','ANO NOVO');
insert into cad_feriados values (2028,'2028-21-04','TIRADENTES');
insert into cad_feriados values (2028,'2028-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2028,'2028-09-07','INDEPENDENCIA');
insert into cad_feriados values (2028,'2028-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2028,'2028-11-02','FINADOS');
insert into cad_feriados values (2028,'2028-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2028,'2028-12-25','NATAL');
insert into cad_feriados values (2028,'2028-04-14','PAIXAO DE CRISTO');
insert into cad_feriados values (2028,'2028-04-16','PASCOA');
insert into cad_feriados values (2028,'2028-02-29','CARNAVAL');
insert into cad_feriados values (2028,'2028-06-15','CORPUS CHRISTI');
insert into cad_feriados values (2028,'2028-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2028,'2028-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2029,'2029-01-01','ANO NOVO');
insert into cad_feriados values (2029,'2029-21-04','TIRADENTES');
insert into cad_feriados values (2029,'2029-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2029,'2029-09-07','INDEPENDENCIA');
insert into cad_feriados values (2029,'2029-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2029,'2029-11-02','FINADOS');
insert into cad_feriados values (2029,'2029-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2029,'2029-12-25','NATAL');
insert into cad_feriados values (2029,'2029-03-30','PAIXAO DE CRISTO');
insert into cad_feriados values (2029,'2029-04-01','PASCOA');
insert into cad_feriados values (2029,'2029-02-13','CARNAVAL');
insert into cad_feriados values (2029,'2029-05-31','CORPUS CHRISTI');
insert into cad_feriados values (2029,'2029-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2029,'2029-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';

insert into cad_feriados values (2030,'2030-01-01','ANO NOVO');
insert into cad_feriados values (2030,'2030-21-04','TIRADENTES / PASCOA');
insert into cad_feriados values (2030,'2030-05-01','DIA DO TRABALHO');
insert into cad_feriados values (2030,'2030-09-07','INDEPENDENCIA');
insert into cad_feriados values (2030,'2030-10-12','DIA DAS CRIANCAS');
insert into cad_feriados values (2030,'2030-11-02','FINADOS');
insert into cad_feriados values (2030,'2030-11-15','PROCLAMACAO DA REPUBLICA');
insert into cad_feriados values (2029,'2030-04-19','PAIXAO DE CRISTO');
insert into cad_feriados values (2030,'2030-12-25','NATAL');
insert into cad_feriados values (2030,'2030-03-05','CARNAVAL');
insert into cad_feriados values (2030,'2030-06-20','CORPUS CHRISTI');
insert into cad_feriados values (2030,'2030-11-20','CONSCIENCIA NEGRA (SOMENTE NAS CIDADES ONDE ADEREM ESTE FERIADO)';
insert into cad_feriados values (2030,'2030-07-09','REVOLUCAO CONSTITUCIONALISTA PAULISTA(SOMENTE EM SÃO PAULO)';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8913
Localização: Sinop-MT

MensagemEnviada: Sex Out 31, 2014 1:00 pm    Assunto: Responder com Citação

pessoal, achei esta dica pra fazer o backup dos componentes do delphi de forma q nao precisa reinstalar tudo de novo:

http://topwise.com.br/artigos/backup-das-configuracoes-do-delphi/

nao testei ela, mas deixo aqui caso alguem precise usar.

no meu caso eu fiz assim:

    instalei Win 7 64 no meu Note + o Virtual Box e criei varias VMs:

    Delphi7 - VM com o Win7 64 + Delphi 7 instalado

    Delphi 6 - VM com D6 instalario no Win XP (ainda tenho alguns projetos nele hehehe, mas to migrando tudo)

    WebDeveloper - VM com ferramentas pra programar pra Web (de vez em qdo dou uma ajuda pra alguns amigos q mexem com PHP)

    Android - VM para programar para Android (instalei o Android Studio e o Basic4Android - este ultimo mto facil de usar, mas ainda nao fiz nada "viavel" para o android

    Windows 8 - VM com o Windows 8

    Windows 10 - VM com a versao Technical Preview do Win10 pra testes

    Linux - uma VM com o Ubuntu q uso raramente, so pra nao ficar de fora do mundo linux hehehe

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
drmcarvalho
Novato
Novato


Registrado: Quinta-Feira, 16 de Outubro de 2014
Mensagens: 17

MensagemEnviada: Seg Nov 03, 2014 8:07 am    Assunto: Como usar algumas CONSTRAINT do SQL Server Responder com Citação

Aqui tem um exemplo de como usar algumas das constraint do SQL Server.



Código:

-- SCRIPT CRIADO POR : MAURO C. PICHILIANI
-- DATE : 21/01/2002
-- EXEMPLOS DE USO DAS CONSTRAINTS DESFAULT , CHECK ,  PRIMARY KEY , UNIQUE E FOREIGN KEY
-----------------------------------------------------


/*
************************************
   EXEMPLOS DA CONSTRAINT DEFAULT
************************************
*/

-- CRIACAO DA CONSTRAINT

CREATE TABLE TESTE_D
(
   COD INT  NOT NULL,
   NOME VARCHAR (50) NOT NULL DEFAULT 'DESCONHECIDO'
)
GO

-- INSERINDO DADOS NORMALMENTE
INSERT INTO TESTE_D VALUES(1,'ALINE')

-- INSERINDO DADOS SEM PASSAR O CAMPO NOME
INSERT INTO TESTE_D (COD) VALUES(2)

-- INSERINDO DADOS , EXPLICITAMENTE DIZENDO PARA INSERIR O VALOR DEFAULT NO CAMPO NOME
INSERT TESTE_D VALUES(3,DEFAULT)


-- INSERINDO A CONSTRAINT DEFAULT PARA O CAMPO COD

ALTER TABLE TESTE_D
ADD CONSTRAINT DF_PADRAO DEFAULT 99 FOR COD

-- INSERINDO DOIS VALORES DEFAULT
INSERT TESTE_D VALUES(DEFAULT,DEFAULT)

-- REMOVENDO A CONSTRAINT DEFAULT DF_PADRAO

ALTER TABLE TESTE_D
DROP CONSTRAINT DF_PADRAO


/*
************************************
   EXEMPLOS DA CONSTRAINT CHECK
************************************
*/


-- CRIACAO DA CONSTRAINT

CREATE TABLE TESTE_C
(
   COD INT  NOT NULL,
   NOME VARCHAR (50) ,

   CONSTRAINT CK_VERIFICA CHECK ( DATALENGTH(NOME) > 10 )
)
GO

-- TESTANDO ALGUNS INSERCOES CORRETAS

INSERT INTO TESTE_C VALUES(1,'12345678901')
INSERT INTO TESTE_C VALUES(2,'VANESSA SILVA')

-- TESTANDO ALGUNS INSERCOES INVÁLIDAS

INSERT INTO TESTE_C VALUES(3,'ERIKA')
INSERT INTO TESTE_C VALUES(4,'MICHELE')

-- DESABLITANDO A CONSTRAINT

ALTER TABLE TESTE_C
NOCHECK CONSTRAINT CK_VERIFICA


-- TESTANDO ALGUNS INSERCOES VALIDAS

INSERT INTO TESTE_C VALUES(5,'VIVAN')

-- REMOVENDO A CONSTRAINT

ALTER TABLE TESTE_C
DROP CONSTRAINT CK_VERIFICA


/*
************************************
 EXEMPLOS DA CONSTRAINT PRIMARY KEY
************************************
*/

-- CRIACAO DA CONSTRAINT

CREATE TABLE TESTE_PK1
(
   COD INT NOT NULL PRIMARY KEY ,
   NOME VARCHAR(50)
)
GO

-- INSERINDO VALORES VALIDOS

INSERT  TESTE_PK1 VALUES(1,'ABC')
INSERT  TESTE_PK1 VALUES(2,'DEF')

-- VALORES INVALIDOS

INSERT  TESTE_PK1 VALUES(NULL,'FGH')
INSERT  TESTE_PK1 VALUES(2,'FGH')


-- CRIANDO A CONSTRAINT PRIMARY KEY BASEADO EM MAIS DE UM CAMPO

CREATE TABLE TESTE_PK2
(
   COD1 INT NOT NULL,
   COD2 INT NOT NULL,
   
   CONSTRAINT PK_TESTE PRIMARY KEY (COD1,COD2)
)
GO

-- INSERINDO DADOS VALIDOS

INSERT TESTE_PK2(COD1,COD2) VALUES(1,2)
INSERT TESTE_PK2(COD1,COD2) VALUES(1,1)


-- INSERINDO DADOS INVALIDOS

INSERT TESTE_PK2(COD1,COD2) VALUES(3,NULL)
INSERT TESTE_PK2(COD1,COD2) VALUES(NULL,4)

-- REMOVENDO A CONSTRAINT

ALTER TABLE TESTE_PK2
DROP CONSTRAINT PK_TESTE



/*
************************************
   EXEMPLOS DA CONSTRAINT UNIQUE
************************************
*/

-- CRIACAO DA TABELA

CREATE TABLE TESTE_U
(
   COD INT NULL ,
   NOME VARCHAR(50)
)

GO

-- DEFININDO UMA CONSTRAINT UNIQUE PARA O CAMPO COD

ALTER TABLE TESTE_U
ADD CONSTRAINT UQ_UNICA UNIQUE (COD)

-- INSERINDO VALORES VALIDOS

INSERT INTO TESTE_U VALUES(1,'A')
INSERT INTO TESTE_U VALUES(NULL,NULL)

-- INSERINDO VALORES INVALIDOS

INSERT INTO TESTE_U VALUES(NULL,'A')
INSERT INTO TESTE_U VALUES(1,'B')

-- VERIFICANDO O INDICE CRIADO PELA CONSTRAINT

SELECT * FROM sysindexes
WHERE NAME = 'UQ_UNICA'

-- APAGANDO A CONSTRAINT

ALTER TABLE TESTE_U
DROP CONSTRAINT  UQ_UNICA


/*
*************************************
 EXEMPLOS DA CONSTRAINT FOREIGN KEY
*************************************
*/

-- CRIACAO DA TABELA QUE SERA REFENCIADA

CREATE TABLE TESTE_FK1
(
   COD1 INT NOT NULL PRIMARY KEY,
   COD2 INT NULL UNIQUE
)
GO

-- INSERINDO ALGUNS DADOS NA TABELA TESTE_FK1

INSERT INTO TESTE_FK1 VALUES(1,1)
INSERT INTO TESTE_FK1 VALUES(2,NULL)
INSERT INTO TESTE_FK1 VALUES(3,2)


-- CRIACAO DA TABELA QUE CONTERA AS CHAVES ESTRANGEIRAS

CREATE TABLE TESTE_FK2
(
   COD1_FK INT NOT NULL FOREIGN KEY REFERENCES TESTE_FK1(COD1) ,
   COD2_FK INT     NULL
)
GO   

-- COLOCADO A SEGUNDA CONSTRAINT

ALTER TABLE TESTE_FK2
ADD CONSTRAINT FK_TESTE FOREIGN KEY (COD2_FK) REFERENCES TESTE_FK1(COD2)


-- INSERINDO ALGUNS VALORES VALIDOS

INSERT INTO TESTE_FK2 VALUES(1,NULL)
INSERT INTO TESTE_FK2 VALUES(1,2)
INSERT INTO TESTE_FK2 VALUES(2,1)
INSERT INTO TESTE_FK2 VALUES(2,1)

-- INSERINDO ALGUNS VALORES INVALIDOS

INSERT INTO TESTE_FK2 VALUES(NULL,1)
INSERT INTO TESTE_FK2 VALUES(2,3)
INSERT INTO TESTE_FK2 VALUES(4,NULL)

-- DESABILITANDO A CONSTRAINT CHAVE ESTRANGEIRA

ALTER TABLE TESTE_FK2
NOCHECK CONSTRAINT FK_TESTE

-- INSERINDO VALORES VALIDOS

INSERT INTO TESTE_FK2 VALUES(1,6)
INSERT INTO TESTE_FK2 VALUES(3,3)

-- REMOVENDO OS DADOS QUE NAO PERMITEM A HABILITACAO DA CONSTRAINT FK_TESTE

DELETE FROM TESTE_FK2
WHERE  COD1_FK = 1 AND  COD2_FK = 6

DELETE FROM TESTE_FK2
WHERE  COD1_FK = 3 AND  COD2_FK = 3

-- HABILITANDO A CONSTRAINT FK_TESTE

ALTER TABLE TESTE_FK2
CHECK CONSTRAINT FK_TESTE


-- REMOVENDO A CONSTRAINT FK_TESTE

ALTER TABLE TESTE_FK2
DROP  CONSTRAINT FK_TESTE

/* FIM DO ARQUIVO */


Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
drmcarvalho
Novato
Novato


Registrado: Quinta-Feira, 16 de Outubro de 2014
Mensagens: 17

MensagemEnviada: Seg Nov 03, 2014 8:14 am    Assunto: Descobrir quais são as tabelas pai e quais sao as filhas. Responder com Citação

Aqui tem dois scripts SQL que são muito uteis no meu dia a dia.

Para indetificar as tabelas filho da tabela selecionada.
Código:

SELECT
    Name AS ChaveEstrangeira,
    OBJECT_NAME(Referenced_Object_ID) AS TabelaPai,
    OBJECT_NAME(Parent_Object_ID) AS TabelaFilho
FROM SYS.FOREIGN_KEYS
WHERE Referenced_Object_ID = OBJECT_ID('tabela_clientes')



Para indetificar as tabelas pai da tabela selecionada.
Código:

SELECT
    Name AS ChaveEstrangeira,
    OBJECT_NAME(Parent_Object_ID) AS TabelaFilho,
    OBJECT_NAME(Referenced_Object_ID) AS TabelaPai
FROM SYS.FOREIGN_KEYS
WHERE Parent_Object_ID = OBJECT_ID('tabela_produtos')


Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1015
Localização: Vitória - ES

MensagemEnviada: Ter Nov 04, 2014 5:30 am    Assunto: Responder com Citação

Exemplo que preparei de Orientação a Objetos usando Delphi:

https://app.box.com/s/9bsp9heorlprhvp3zmig
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
xsouza
Novato
Novato


Registrado: Quarta-Feira, 17 de Dezembro de 2014
Mensagens: 1

MensagemEnviada: Qua Dez 17, 2014 2:10 pm    Assunto: Responder com Citação

nao esta faltando nada no ultimo "if" por aqui nao funcionou
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1015
Localização: Vitória - ES

MensagemEnviada: Sáb Dez 27, 2014 5:58 pm    Assunto: Responder com Citação

xsouza escreveu:
nao esta faltando nada no ultimo "if" por aqui nao funcionou


Foi feito no Delphi 2010. Substitua os foreach por for normal se usar numa versão mais antiga do Delphi.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Zorro
Novato
Novato


Registrado: Segunda-Feira, 27 de Novembro de 2006
Mensagens: 74

MensagemEnviada: Sáb Mar 14, 2015 7:03 pm    Assunto: Inserindo imagem Jpeg em banco access Responder com Citação

Sou um novato....e como entendo a dificuldade de todos os também novatos, trouxe essa dica para quem precisar:

Crie um BD no access, campo foto tem que ser do tipo Objeto Ole, tamanho 100 (acho que tá bom).
Em um form no Delphi: 1 DBImage, 1 ADOTable, 1DataSource, 1 ADOConnection, 1 button e 1 OpenPictureDialog....linke-os, como de costume.
No evento onClick do botão:

procedure TForm1.Button1Click(Sender: TObject);
var JPG: TJPEGIMAGE;
BEGIN
if OPENPICTUREDIALOG1.Execute then
begin
JPG:= TJPEGIMAGE.CREATE;
JPG.LOADFROMFILE(OPENPICTUREDIALOG1.FILENAME);
ClipBoard.ASSIGN(JPG);
DBIMAGE1.PASTEFROMClipBoard;
JPG.FREE;
end;
end;

Na Uses do form, acrescente: JPEG,ClipBrd.

Aqui, funcionou corretamente.

Valeu!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
labambamogi
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 4 de Novembro de 2011
Mensagens: 119

MensagemEnviada: Ter Abr 14, 2015 6:01 pm    Assunto: OpenDialog sem informar arquivo ou seja, apenas diretório Responder com Citação

Quando tive a necessidade de informar uma pasta (ou diretório) apenas, mas sem escolher um arquivo, recorri a objetos de terceiros como o JvSelectDirectory do Jedi, mas existe uma maneira de selecionar apenas a pasta utilizando apenas objetos do Delphi, basta declarar a unit FileCtrl na cláusula uses do seu form e utilizar a função FileCtrl.SelectDirectory de uma dessas maneiras:

Código:

SelectDirectory(s, [], 0);

ou
Código:

SelectDirectory('Select a directory', s, s, []);


Como aqui não dá p/ colar uma imagem, vejam-nas aqui: http://stackoverflow.com/questions/7422689/selecting-a-directory-with-topendialog

Abraço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1015
Localização: Vitória - ES

MensagemEnviada: Sáb Mai 02, 2015 10:43 am    Assunto: Responder com Citação

Baseado na dica de cima, e para estudar como criar componentes, fiz um componente simples TDirectoryDialog (obs: feito no Delphi 2010, outras versões pode ser diferente)

1- Crie um novo pacote (File->New->Package) e renomeie para DirectoryEditors;

2- Vá às opções do projeto, Description e marque a opção "Designtime only";

3- Vá na pasta "Requires" do projeto e adicione a dependência "designide.dcp";

4- Adicione as units abaixo:
Código:
unit DirectoryDialog;

interface

{$WARN UNIT_PLATFORM OFF}

uses
  Controls, Classes, FileCtrl;

type
  TDirectoryDialog = class(TComponent)
  private
    FCaption: String;
    FRoot: String;
    FDirectory: String;
    FOptions: TSelectDirExtOpts;
    FOnShow: TNotifyEvent;
    FOnClose: TNotifyEvent;
  public
    constructor Create(AOwner: TComponent); override;
    function Execute: Boolean;
  published
    property Caption: String read FCaption write FCaption;
    property Root: String read FRoot write FRoot;
    property Directory: String read FDirectory write FDirectory;
    property Options: TSelectDirExtOpts read FOptions write FOptions default
      [sdNewUI];
    property OnShow: TNotifyEvent read FOnShow write FOnShow;
    property OnClose: TNotifyEvent read FOnClose write FOnClose;
  end;

implementation

{ TDirectoryDialog }

constructor TDirectoryDialog.Create(AOwner: TComponent);
begin
  inherited;
  Self.FOptions := [sdNewUI];
end;

function TDirectoryDialog.Execute: Boolean;
begin
  if Assigned(Self.FOnShow) then
    Self.FOnShow(Self);
  Result := SelectDirectory(Self.FCaption, Self.FRoot, Self.FDirectory,
    Self.FOptions, TWinControl(Self.Owner));
  if Assigned(Self.FOnClose) then
    Self.FOnClose(Self);
end;

end.

Código:
unit DirectoryDialogEditor;

interface

uses
  Classes, DesignEditors, DesignIntf;

type
  TDirectoryDialogEditor = class(TComponentEditor)
    function GetVerbCount: Integer; override;
    function GetVerb(Index: Integer): String; override;
    procedure ExecuteVerb(Index: Integer); override;
    procedure Edit; override;
  end;

procedure Register;

implementation

uses
  DirectoryDialog;

procedure Register;
begin
  RegisterComponents('Dialogs', [TDirectoryDialog]);
  RegisterComponentEditor(TDirectoryDialog, TDirectoryDialogEditor);
end;

{ TDirectoryDialogEditor }

procedure TDirectoryDialogEditor.Edit;
begin
  Self.ExecuteVerb(0);
end;

procedure TDirectoryDialogEditor.ExecuteVerb(Index: Integer);
begin
  case Index of
    0:
      (Component as TDirectoryDialog).Execute;
  end;
end;

function TDirectoryDialogEditor.GetVerb(Index: Integer): String;
begin
  case Index of
    0:
      Result := '&Test Dialog';
  end;
end;

function TDirectoryDialogEditor.GetVerbCount: Integer;
begin
  Result := 1;
end;

end.


5- Compile, instale e teste em uma aplicação. O novo componente aparecerá na paleta "Dialogs".

Para usar, arraste o componente para a tela e chame da seguinte forma:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if DirectoryDialog1.Execute then
    ShowMessage(DirectoryDialog1.Directory);
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1015
Localização: Vitória - ES

MensagemEnviada: Qua Mai 20, 2015 10:31 pm    Assunto: Responder com Citação

Mais uma consulta de CEP. Dessa vez usando o serviço de http://viacep.com.br:

Código:
unit UConsultaCep;

interface

type
  TCep = class
  private
    FCep: String;
    FLogradouro: String;
    FComplemento: String;
    FBairro: String;
    FLocalidade: String;
    FUf: String;
    FIbge: String;
  public
    property Cep: String read FCep write FCep;
    property Logradouro: String read FLogradouro write FLogradouro;
    property Complemento: String read FComplemento write FComplemento;
    property Bairro: String read FBairro write FBairro;
    property Localidade: String read FLocalidade write FLocalidade;
    property UF: String read FUf write FUf;
    property IBGE: String read FIbge write FIbge;
  end;

  TConsultaCep = class
  public
    class function Get(ACep: String): TCep;
  end;

implementation

uses
  Classes, SysUtils, XMLDoc, XMLIntf, IdHTTP;

type
  TCepGetter = class(TComponent)
  const
    FURL = 'http://viacep.com.br/ws/%s/xml/';
  private
    FHttp: TIdHTTP;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function Get(ACep: String): String;
  end;

  TCepParser = class(TComponent)
  private
    FXml: TXMLDocument;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function Parse(AXml: String): TCep;
  end;

  { TCepParser }

constructor TCepParser.Create(AOwner: TComponent);
begin
  inherited;
  Self.FXml := TXMLDocument.Create(Self);
end;

destructor TCepParser.Destroy;
begin
  Self.FXml.Free;
  inherited;
end;

function TCepParser.Parse(AXml: String): TCep;
  function GetText(ANode: IXMLNode): String;
  begin
    Result := '';
    if Assigned(ANode) then
      Result := UTF8ToString(Trim(ANode.Text));
  end;

begin
  Result := TCep.Create;
  with Self.FXml do
    try
      Active := True;
      LoadFromXML(AXml);
      if Assigned(DocumentElement.ChildNodes.FindNode('erro')) then
        raise Exception.Create('CEP não encontrado.');
      Result.FCep := GetText(DocumentElement.ChildNodes.FindNode('cep'));
      Result.FLogradouro := GetText(DocumentElement.ChildNodes.FindNode
          ('logradouro'));
      Result.FComplemento := GetText(DocumentElement.ChildNodes.FindNode
          ('complemento'));
      Result.FBairro := GetText(DocumentElement.ChildNodes.FindNode('bairro'));
      Result.FLocalidade := GetText(DocumentElement.ChildNodes.FindNode
          ('localidade'));
      Result.FUf := GetText(DocumentElement.ChildNodes.FindNode('uf'));
      Result.FIbge := GetText(DocumentElement.ChildNodes.FindNode('ibge'));
    finally
      Active := False;
    end;
end;

{ TCepGetter }

constructor TCepGetter.Create(AOwner: TComponent);
begin
  inherited;
  Self.FHttp := TIdHTTP.Create(Self);
end;

destructor TCepGetter.Destroy;
begin
  Self.FHttp.Free;
  inherited;
end;

function TCepGetter.Get(ACep: String): String;
begin
  try
    Result := Self.FHttp.Get(Format(Self.FURL, [ACep]));
  except
    on E: EIdHTTPProtocolException do
      if E.ErrorCode = 404 then
        raise Exception.Create('CEP inválido.')
      else
        raise ;
  end;
end;

{ TConsultaCep }

class function TConsultaCep.Get(ACep: String): TCep;
var
  Xml: String;
begin
  with TCepGetter.Create(nil) do
    try
      Xml := Get(ACep);
    finally
      Free;
    end;

  with TCepParser.Create(nil) do
    try
      Result := Parse(Xml);
    finally
      Free;
    end;
end;

end.


Para testes, crie um formulário com um Edit, um Button e um Memo.

Código:
uses
  UConsultaCep;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TConsultaCep.Get(Self.Edit1.Text) do
  try
     Memo1.Clear;
     Memo1.Lines.Add('CEP: ' + Cep);
     Memo1.Lines.Add('Logradouro: ' + Logradouro);
     Memo1.Lines.Add('Complemento: ' + Complemento);
     Memo1.Lines.Add('Bairro: ' + Bairro);
     Memo1.Lines.Add('Localidade: ' + Localidade);
     Memo1.Lines.Add('UF: ' + UF);
     Memo1.Lines.Add('IBGE: ' + IBGE);
  finally
    Free;
  end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1015
Localização: Vitória - ES

MensagemEnviada: Dom Jun 21, 2015 3:28 pm    Assunto: Responder com Citação

Para obter a taxa PTAX de todas as moedas, dê um GET na URL abaixo:

http://www4.bcb.gov.br/Download/fechamento/20150619.csv

Repare que o nome do arquivo é a data de fechamento no formato YYYYMMDD.

Depois é só parsear o arquivo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2, 3 ... 12, 13, 14, 15, 16  Próximo
Página 13 de 16

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB