Usando BookMark de maneira simples


Olá amigos, estou trazendo hoje uma dica rápida para quem deseja usar o bookmark. Primeiro vamos esclarecer o que é BookMark e depois mostrar uma das mais simples maneiras de utilizar esse recurso.

O que é BookMark ?

Bookmark é um artifício que temos a nossa disposição para marcar um registro no ClientDataSet e depois localizá-lo rapidamente. Imagine o BookMark como um marcador de páginas (seria essa a tradução ao pé da letra), sendo assim você marca o registro no qual quer retornar futuramente, navega pelos outros registros do ClientDataSet e quando desejar, faz a chamada para o seu bookmark e retorna ao registro marcado. Parece fácil não é?

É fácil sim!

Para utilizar o bookmark da maneira mais simples, devemos utilizar o marcador como uma string. Crie uma variável private no seu form do tipo string. Ela será utilizada para receber o marcador do ClientDataSet, como também para indicar qual a posição o ClientDataSet deve colocar o ponteiro posteriormente.
Está parecendo complicado né, mas você verá que é brincadeira de criança fazer isso.
Construa um form conforme o modelo abaixo ou baixe aqui o exemplo completo.
BookMark
Não se preocupe com os dados isso será resolvido no exemplo criando uma tabela temporária. Agora vamos a codificação para aqueles que não baixaram o exemplo vou colocar abaixo o código da unit.


unit uExemploBookMark;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, DBClient, Grids, DBGrids;

type
TExemploBookMark = class(TForm)
DBGrid1: TDBGrid;
CDS: TClientDataSet;
ds: TDataSource;
BitBtn1: TBitBtn;
MemorizaBookMark: TBitBtn;
LocalizaBookMark: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure MemorizaBookMarkClick(Sender: TObject);
procedure LocalizaBookMarkClick(Sender: TObject);
private
{ Private declarations }
BookMarkString : String;  // essa variavel ira auxiliar no uso do bookmark
public
{ Public declarations }
end;

var
ExemploBookMark: TExemploBookMark;

implementation

{$R *.dfm}

procedure TExemploBookMark.BitBtn1Click(Sender: TObject);
var
  I: Integer;
begin
  // aqui estamos criando nossa tabela temporaria
  CDS.FieldDefs.Add('codigo',ftInteger);
  CDS.FieldDefs.Add('descricao',ftString, 50);
  CDS.CreateDataSet;

  // aqui estamos criando os registros na tabela temporaria
  for I := 1 to 10 do
  begin
    CDS.Append;
    CDS.FieldByName('codigo').AsInteger   := i;
    CDS.FieldByName('descricao').AsString := 'Descrição - '+inttostr(i);
    CDS.Post;
  end;
end;

procedure TExemploBookMark.LocalizaBookMarkClick(Sender: TObject);
begin
  // dessa maneira dizemos ao clientdataset para ir para o endereco 
  // armazenado na nossa variavel
  CDS.Bookmark := BookMarkString;
end;

procedure TExemploBookMark.MemorizaBookMarkClick(Sender: TObject);
begin
  // aqui estamos atribuindo o endereco atual do registro na nossa 
  // variavel
  BookMarkString := Cds.Bookmark;
end;

end.





Para testar aponte o cursor para um registro qualquer selecionando o registro e depois clique no botão Memoriza BookMark, feito isso navegue pelo gride apontando agora qualquer outro registro e depois clique no botão Localiza BookMark, nesse instante o cursor deverá retornar para o registro memorizado anteriormente.


Vocês perceberam como foi fácil utilizar o bookmark dessa maneira? Para marcar nosso registro utilizamos BookMarkString := Cds.Bookmark; e para retornar ao registro marcado fizemos o contrário CDS.Bookmark := BookMarkString; .


Claro que alguns irão dizer que é melhor utilizar o bookmark criando um ponteiro,  etc. Sim, realmente se criarmos um ponteiro do tipo TBookMark, poderemos utilizar funcionalidades mais complexas, proporcionando um controle maior e mais seguro, mas o objetivo aqui era justamente demonstrar a parte fácil desse recurso e sua implementação sendo feita da maneira mais simples possível, espero que tenham gostado.

“¿Eres un buen programador?”


 

Olá amigos, trago novamente outro texto do Martín Bien, dessa vez ele traz uma reflexão dos pontos positivos que um bom programador deve ter para se destacar. Além dos pontos citados por ele, eu ainda acrescentaria um:
BOA VONTADE
Acredito que se todos tivessem boa vontade em ajudar a resolver os problemas dos outros também, metade das mazelas do mundo seriam resolvidas. É parece exagero, não é? Mas pense em quantas vezes você esteve na situação de ter que apresentar um documento (ou um punhado deles) e o atendente olha para você com desprezo e depois de vários minutos fazendo “han ham”, ele te fala: “Desculpe senhor, mas está faltando a segunda via de cor verde desse documento, o senhor poderá voltar outro dia e fazer o pedido novamente, mas infelizmente terá de entrar na fila.”. É você já ficou irritado só de lembrar de alguma coisa parecida. Agora imagine o seu chefe lhe trazendo uma tarefa e você fazendo “han ham” , e depois você se vira e fala: “É isso aqui….sei não hein….acho que não vai rolar…” , é você acaba de matar a sua boa vontade de resolver o problema do próximo(no caso o SEU CHEFE) e talvez tenha acabado de virar mais um problema para o próximo também, fica aqui o meu ponto para o qual devemos ter atenção, a boa vontade.
Abaixo está o texto do Martín Bien na íntegra. Como no outro post, me isentei de fazer a tradução, até para poder exercitar o espanhol. Acredito que  vocês não terão dificuldades também na leitura. Espero que gostem passem a ter esses pontos como focos de atenção no seu comportamento.

“Creatividad

Muchas personas a las que les cuento que para ser programador necesitas de mucha creatividad se quedan impactadas, esto porque siempre se asocia a las computadoras con la falta de creatividad, vamos, las computadoras son máquinas, pero nosotros los programadores NO.
Hasta ahora no conozco un lenguaje de programación el cual no te brinde diferentes soluciones a un mismo problema. Es lo que comúnmente se llama "There Is More Than One Way To Do It", que en español se traduce como: hay más de una manera para lograrlo.
Por eso creo que el primer punto que un buen programador debe de tener es creatividad. Creatividad para crear soluciones factibles, rápidas y sencillas a problemas complicados.
Por mi experiencia, esto es lo más difícil, pues la creatividad no la aprendes, no hay un libro acerca de "Creatividad Básica", no existen cursos que te puedan dar creatividad y la creatividad no la compras en la tienda. Creo que la creatividad la llevas dentro y unos tenemos poca y otros mucho más.
Pero lo que es un hecho es que sin creatividad inmediatamente te vuelves un mal programador, porque aunque la solución sea evidente es la falta de esta misma creatividad que te imposibilita ver lo que esta enfrente de ti.

Conocimientos

El segundo punto, por supuesto que son los conocimientos. Pues aunque tengas creatividad si no tienes conocimientos no puedes llevar a cabo lo que ideaste.
Yo creo que un buen programador más que saber el ¿cómo? sabe el ¿por qué? de las cosas. No es lo mismo saber como solucionar un problema a saber realmente como funciona esa solución.
Por ejemplo, en el artículo que hice anterior a este acerca de la memoria en perl, les dije que para poder usar la memoria de manera eficiente era importante comprender como es que funcionaba la liberación de la misma por perl para poder usarlo a nuestro favor. En ese artículo más que el ¿cómo? vimos el ¿por qué?.
Entonces como segundo punto un buen programador debe de comprender porque un lenguaje actúa de esta u otra manera, para poder usarlo al 100%.

Consulta

Como tercer punto, y el que a muy pocas personas he visto mencionar es la capacidad de consulta.
Es imposible que una sola persona sepa las soluciones a completamente todos los problemas, y la verdad es que la mayoría de nosotros ha de saber como un 50% de las capacidades completas de un lenguaje de programación.
Es aquí donde entra la importancia de este punto. Todo buen programador debe de tener la capacidad de encontrar conocimiento necesario de manera rápida, ya sea buscando en libros o en la web.
Muchas veces yo me veo en la necesidad de buscar ciertas funciones que se que existen pero que no recuerdo las sintáxis completamente, para lo que uso mi LIBRO DE CONSULTA, el cual dividí en 3 categorías: Básico, Intermedio y Experto para una mejor consulta.

Eficiencia

Llegamos a nuestro cuarto punto: la eficiencia.
Un buen programador debe de llegar a soluciones de manera rápida y eficiente. Es lógico que varias veces se necesitan hacer pruebas para saber si un código funciona. Pero creo que todo buen programador debe de tener una guía de trabajo, un plan personal con el cual lleva a cabo todos sus desarrollos.
Este plan debe de tener pasos muy claros, para evitar otro tipo de confusiones. Este tema lo trate en: Guía para iniciar un proyecto.
Creo que estos cuatro puntos son suficiente para saber si un programador es bueno o malo. Pero recuerden que esta es mi opinión personal, de seguro deben de haber maneras mejores de evaluar, pero yo siempre lo hago por estos 4 puntos.
Y tú ¿qué tan bueno eres? “ (Martín Bien)

"Como Reconocer A Los Buenos Programadores"


 

Senhores eu li esse texto de um amigo cadastrado no LinkedIn, achei interessante divulgar o ponto de vista dele sobre como reconhecer um bom programador, poupei-me o trabalho de traduzi-lo, pois acredito que seja perfeitamente compreensivo para todos os termos utilizados. Acredito que muitos irão se identificar com todos  ou a grande parte dos pontos positivos citados pelo Martín Bien, se quiser conhecê-lo um pouco mais visite o perfil dele no LinkedIn.
Coloquei o texto dele na íntegra logo abaixo.

 

“Indicadores positivos:


le apasiona la tecnología
programa en su tiempo libre, es su hobby
hablará largo y tendido de cualquier tema técnico si se le pregunta
ha tenido proyectos personales significativos a través de los años
aprende nuevas tecnologías por si solo
tiene opiniones fuertes sobre cual tecnología es la mejor para varios usos
se siente incomodo trabajando con tecnologías que el crea no son "correctas"
puede mantener una buena conversación en cualquier variedad de temas, no tan solo aquellos que sean técnicos
empezó a programar mucho antes de entrar a la universidad o al trabajo
tiene proyectos personales grandes que no necesariamente aparecen en el résumé
conoce de una gran variedad de tecnologías (las cuales no necesariamente están en el résumé)

Indicadores negativos:


Solo programa mientras está en el trabajo
No le gusta hablar de programación, aunque se le pregunte
Aprende nuevas tecnologías cuando la compañía lo envía a tomar cursos
Usa la tecnología que le indiquen, cualquier tecnología es "buena"
Empezó a programar en la universidad
Toda su experiencia en programación está en su résumé
Enfocado en uno o dos plataformas de programación (ejemplo: todo lo que tiene que ver con aplicaciones de java) sin ninguna experiencia fuera de esa plataforma. “

Delphi Conference - Inscrições Abertas


Amigos, mais uma vez teremos o prazer de recebermos uma DELPHI CONFERENCE aqui em São Paulo, essa nova edição acontece em 24 de novembro no CENTRO FECOMERCIO DE EVENTOS‎.  Dentre os palestrantes estarão presentes Andreano Lanusse(não preciso apresentar né?), Bruno Lichot ( que participa de um ótimo grupo no Yahoo NDDV · N-Tier, DataSnap e Delphi na Veia!!!!),  Manuel Edésio(um abraço ao amigo Edésio, quando quiser ir passear em Pindamonhangaba é só falar! ) e tantos outros que farão dessa reunião um espetáculo sem dúvida nenhuma.
Os temas das palestras são diversos e serão apresentados simultaneamente em 3 salas e mais o auditório. Tenho certeza que você ficará ainda com jeito de “quero mais”, por perder um ou outro assunto, que você tanto quer ouvir, mas este estará sendo apresentado ao mesmo tempo na sala ao lado. Por isso mesmo indique esse evento aos seus amigos, leve-os, dividam-se para poderem aproveitar ao máximo o evento, discutindo e pondo em prática as dicas apresentadas, garanto que eles vão gostar da idéia. Clique aqui e veja a agenda do evento!
Já sei eu não falei o quanto isso tudo vai custar né !? Bom o custo a princípio é R$0,00 (isso mesmo zero reais), mas para isso você deve fazer a inscrição e comparecer ao evento, pois caso contrário, haverá a cobrança de uma taxa de R$ 100,00. Nada mais justo cobrar pelo seu pouco caso ao fazer a inscrição e dar o bolo não acha?. Faça sua inscrição o quanto antes! Se quiser pode fazer o download do formulário aqui. Daí você imprime o formulário, preenche, envia uma cópia digitalizada para brazil.atendimento@borland.com e espera o email de confirmação que deverá chegar dentro de 48 horas. Ufa podia ser mais fácil né!.
Ah! leia as letras miúdas da página de inscrição! Lá você verá que o estacionamento não está incluso ( Nossa! Fazem um evento gratuito e ainda tem gente que vai reclamar que não tem estacionamento de graça, quer apostar?).
{5b173c9a-425b-4594-af16-f7924e91fb8e}_convite_delphi_conferece_01
 
|  JoséHenriqueBR. Blogger Template By Lawnydesignz Powered by Blogger