quarta-feira, junho 24, 2009

Sundown 250

Salve,

Como diz o ditado, a corda sempre estoura do lado mais fraco, e com essa crise que assola as vendas (leia-se dificuldade em obter crédito) as marcas com menor participação no mercado andam sofrendo.

Veja o caso da Sundown, corre-se um boato de que ela pode se "fundir" com a Dafra, o que pode ser interessante pras duas. O mérito nesse caso é todo da Dafra, que em pouquissímo tempo já atropelou a mesma Sundown e ameaça até a Suzuki. Bem, vamos ver no que dá isso, tem que esperar mesmo, já que fala-se tanto

Ainda no campo das expeculações e falando de Sundown, (dizem que) está vindo por aí um novo modelo street com motor de 250cc flex. Se isso for acontecer mesmo será muito bom para o mercado, quanto mais modelos melhor.

Andam circulando algumas imagens, aí embaixo eu coloco uma. Se for essa aí mesmo, confesso que acho de gosto meio duvidoso, meio quadradona, não gostei não, mas gosto não se discute.


Suposta Sundown 250 com farol "não identificado"

Suposta Sundown 250 com farol redondo

Até+


quarta-feira, junho 03, 2009

Validando Campos no Delphi

Salve,

Um coisa particularmente chata (porém fundamental) é a validação dos campos de um Dataset antes do salvamento. Afim de evitar o uso de estruturas condicionais (vulgo IF) desenvolvi uma rotina que faz essa validação de forma simples, bastando apenas a configuração de algumas propriedades e o uso de apenas um evento.

A primeira coisa a se fazer é setar através do FieldsEditor a propriedade Required dos campos que serão obrigatórios. Aproveite e ajuste também a propriedade DisplayLabel, que será usada pela rotina de validação para exibir uma mensagem amigável ao usuário. A seguir pode ser visto como deve ficar cada campo obrigatório no FieldsEditor:



Agora é necessário criar a function que fará a checagem dos campos. Abaixo temos seu código:

function TfrmExemplo.CheckFields(Dataset: TDataset): Boolean;
var i: Integer;
begin

i := 0;
Result := True;

for i := 0 to Dataset.Fields.Count - 1 do
begin
if (Dataset.Fields[i].Required) and (Dataset.Fields[i].IsNull) then
begin
MessageDlg('
O campo ' + Dataset.Fields[i].DisplayLabel + ' não foi informado!', mtWarning, [mbOk], 0);
Result := False;
Break;
end;
end;

end;

Como podemos ver, a função recebe como parâmetro um TDataset, que pode ADO, DBX, BDE, ClientDataSet, enfim, um Dataset. Dentro dela o campos são varridos e aqueles que forem obrigatórios e tiverem valor = nulo será considerado inválido. Neste caso, a função retorna false.

Feito isso, o próximo passo é codificar o evento OnBeforePost do Dataset, para que através da nossa function, o salvamento seja impedido em caso de algum campo em branco.


procedure TfrmExemplo.cdsImpostoDespesaBeforePost(DataSet: TDataSet);
begin

if (CheckFields(Dataset) = False) then
begin
Abort;
end;

end;

Pronto! Agora, sempre antes do salvamento, os campos de nosso Dataset serão validados e, caso algum campo obrigatório tenha ficado em branco, uma mensagem será exibida. A figura a seguir mostra um cadastrinho onde o usuário tentou salvar e deixou um campo obrigatório em branco. Notem que o registro continuará em edição. Ah! Vc pode compartilhar o evento entre vários Datasets, assim a mesma função valida qualquer campo. Bacana né?



Té+

PS: o crédito pela formatação do código fonte é do programinha Delphi2Html, desenvolvido pelo colega Diego Silva.

segunda-feira, junho 01, 2009

CB 300R versus CBX 250 Twister

Salvem,

Agora não é mais especulação. A Honda anunciou oficialmente as substitutas da Twister e da Tornado. São elas: CB 300 R e XRE 300 respectivamente.


Os modelos causaram muito alvoroço no meio motociclístico, despertando paixão e ódio antes mesmo de seus lançamentos. Aliás, há muito tempo esse é um dos assuntos mais "bombantes" nos fóruns e rodinhas de amantes das duas rodas. O que a Honda estaria planejando, como seriam os modelos, e a cilindrada?

Sem sombra de dúvidas o modelo mais esperado era o da substituta da Twister, uma moto que era (e talvez ainda seja) o primeiro patamar de quem quer dar o primeiro passo acima das 125/150cc. O novo modelo enfim chegou, e como não poderia ser diferente, trazendo um pacotão de mudanças, tanto em design, quando em mecânica e ciclística.

Na internet há fotos aos montes - aqui temos algumas - onde as mudanças de design podem ser vistas. Mas e o restante? Como ficou a mecânica da nova "motona"? Para acalmar um pouco a curiosidade fizemos um comparativo (bem limitado) entre as fichas técnicas da recém-nascida CB 300R e a saudosa CBX 250 Twister. Vamos aos números.

CB 300 RCBX 250 Twister
MotorDOHC, 291,6cc, monocilíndrico, 4 tempos, 4 válvulas, arrefecido a ar, com radiador de óleoDOHC, 249cc, monocilíndrico, 4 tempos, 4 válvulas, arrefecido a ar, com radiador de óleo
Potência Máxima26,53 cv a 7.500 rpm24 cv a 8.000 rpm
Torque Máximo2,81 kgf.m a 6.000 rpm2,48 kgf.m a 6.000 rpm
Diâmetro x Curso79,0 x 59,5 mm73,0 x 59,5 mm
AlimentaçãoInjeção eletrônica de combustível PGM-FICarburador VEA2A, Venturi de 30,1 mm
Relação de Compressão9,0 : 19,3:1
Sistema de LubrificaçãoForçada, por bomba trocoidalForçada, por bomba trocoidal
Sistema de IgniçãoEletrônicaEletrônica
Bateria12V – 6 Ah12V – 6 Ah
Farol (Alto/Baixo)60/55W - lâmpada halógena35/35W - lâmpada halógena
Sistema de PartidaElétricaElétrica
Capacidade do Tanque18 litros (3,0 litros de reserva)16,5 litros (reserva 2,5 litros)
Óleo do Motor2,0 litros (1,5 litro para troca)1,8 litros
Transmissão5 velocidades6 velocidades
EmbreagemMultidisco em banho de óleoMultidisco em banho de óleo
Suspensão DianteiraGarfo telescópico com 130 mm de cursoGarfo telescópico com 130 mm de curso
Suspensão TraseiraMonoamortecida com 105 mm de cursoMonoamortecida com 100 mm de curso
Freio DianteiroDisco simples de 276 mm de diâmetro Cáliper de duplo pistãoDisco simples de 276 mm de diâmetro
Freio TraseiroA tambor com 130 mm de diâmetroA tambor com 130 mm de diâmetro
Pneu Dianteiro110/70 – 17M/C 54H (sem câmara)100/80 - 17 M/C 52S (sem câmara)
Pneu Traseiro140/70 – 17M/C 66H (sem câmara)130/70 - 17 M/C 62S (sem câmara)
ChassiBerço semiduploBerço semiduplo
Altura do Assento781 mm782 mm
Altura Mínima do Solo183 mm162 mm
Dimensões (Comp. x Larg. x Alt.)2.085 x 745 x 1.0402.031 x 746 x 1.057 mm
Entre-eixos1.402 mm1.369 mm
Peso Seco143 kg139,7 kg


Vai aqui MINHA opinião sobre algumas das mudanças. Ela é PESSOAL, portanto pode não refletir o que a maioria pensa sobre elas:
  • Retrovisores cromados: nada a ver. Não há detalhes cromados na moto, de onde tiraram esse negócio?
  • Balança traseira em aço: um retrocesso, pq não deixaram a firme e bela balança em alumínio da Twister?
  • 5 marchas: significa uma evolução. Muitos devem achar isso uma heresia, mas saibam que a Twister tem 6 marchas para poder compensar o torque e potência que chegam mais tarde (altos giros), já que seu motor de 4 válvulas privilegia altas rotações e é mais "chocho" em baixas. A injeção e o maior torque da CB 300 permitem o uso de apenas 5 marchas sem prejuízo para a velocidade final e dirigibilidade no cidade. Além disso, convenhamos que é um saco ficar trocando de marcha todo o tempo.
  • Farol: o da Twister é ruim, o da CB 300 tem quase o dobro da potência e um defletor aprimorado, certamente vai iluminar bem mais.
  • Escapamento: assim como o retrovisor, não combina com o conjunto. Deveria ser fosco (em tom alumínio) ou preto.
  • Painel: um primor! Aquele "conta-girão" (o nome certo é tacômetro) analógico no centro é show de bola. O velocímetro digital também é moderno e agradável.


Por enquanto o que dá pra comentar é isso. Vamos esperar chegar na concessionária pra dar uma volta e ter mais impressões.

Té+