Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Fabricio Cabral
    @fabriciofx
    Certo
    Ah, nas tuas declarações: I -> Interface, T -> Tipo, F* -> Field?
    Marcos Douglas B. Santos
    @mdbs99
    Sim.
    Esse é um padrão da linguagem (como Ruby, que escreve_tudo_assim) e também devido ao case-insensitive
    Fabricio Cabral
    @fabriciofx
    Certo.
    Mas tô criticando não. Só confirmando.
    Marcos Douglas B. Santos
    @mdbs99
    Tranquilo, eu sei
    Fabricio Cabral
    @fabriciofx
    :)
    Marcos Douglas B. Santos
    @mdbs99
    Mas o que parece ser uma gambiarra por causa da falta de case-sensitive, virou um padrão que deixa o código melhor de ler
    O "F" é como o this. Só que escreve menos e é mais elegante.
    O "I" nem preciso dizer que a Microsoft também usa no C# (copia do Pascal).
    O "T"... Tipo... bem eu acho legal (talvez pq já estou acostumado).
    Tem gente que usa "C" pra constantes assim CFooConst. Se eu tiver que usar uma constante, ainda prefiro o formato C: FOO_CONST
    Fabricio Cabral
    @fabriciofx
    Blza
    Marcos Douglas B. Santos
    @mdbs99
    O "P" é de Ponteiro
    type
      TMyRec = record
        a: string;
      end;
    
      PMyRec = ^TMyRec;
    Fabricio Cabral
    @fabriciofx
    E se for ponteiro de ponteiro? PP* ?
    Marcos Douglas B. Santos
    @mdbs99
    Tem gente que usa assim mesmo
    Fabricio Cabral
    @fabriciofx
    Se for ponteiro de ponteiro de uma constante que foi declarada como um field?
    PPCF* ?
    Marcos Douglas B. Santos
    @mdbs99
    :D
    Claro que não pô
    Não tem sentido num ponteiro pra constante
    Também não tem ponteiro pra um Field, já que ele é (deveria) ser privado a classe.
    Essa programação utilizando ponteiros é bem baixo-nível. Também serve pra manipular estruturas de libs (C) e fazer coisas que exigem velocidade e baixo uso de memória (estou dizendo o que vc já sabe)
    Fabricio Cabral
    @fabriciofx
    Em C isso faria sentido
    Marcos Douglas B. Santos
    @mdbs99
    Fabricio Cabral
    @fabriciofx
    Ei, vou dar uma saída
    t+
    Marcos Douglas B. Santos
    @mdbs99
    Falow...
    Marcos Douglas B. Santos
    @mdbs99
    :+1:
    Marcos Douglas B. Santos
    @mdbs99
    Para quem ainda não viu, esse é o artigo dessa semana
    http://objectpascalprogramming.com/observando-objetos
    Fabricio Cabral
    @fabriciofx
    :thumbsup:
    Manoel Pedro Jr
    @Manoelgjr_twitter
    Boa tarde a todos
    This message was deleted
    @mdbs99 Marcos tive um probleminha com teu exemplo desse último artigo
    Não estou conseguindo compilar no lazarus está reclamando nesse trecho aqui
    type
      TPerson = class(TInterfacedObject, IObserver)
      private
        FName: string;
        FOnStatus: TStatusEvent; ///erro observer.classes.pas(14,16) Error: Identifier not found "TStatusEvent"
        procedure DoStatus(const Value: string);
    Marcos Douglas B. Santos
    @mdbs99
    @Manoelgjr_twitter
    Falha minha, ficou faltando acrescentar isso no código:
    type
      TStatusEvent = procedure (Sender: TObject; const Value: string) of object;
    Já atualizei o código do Gist
    Manoel Pedro Jr
    @Manoelgjr_twitter
    Imaginei mas pensei que era algum tipo do lazarus que faltava uma uses
    Valeu obrigado @mdbs99
    Marcos Douglas B. Santos
    @mdbs99
    Depois vou subir o exemplo completo
    Manoel Pedro Jr
    @Manoelgjr_twitter
    Ok
    Manoel Pedro Jr
    @Manoelgjr_twitter
    unit1.pas(42,28) Error: Incompatible types: got "SEMAPHORE1.ISemaphore" expected "OBSERVERINTERFACES.ISemaphore"
    @mdbs99 essa eu não entendi mesmo vou aguardar você subir os fontes para eu poder comparar e ver oque danado eu fiz de errado kkkkkkkkk
    Marcos Douglas B. Santos
    @mdbs99
    @Manoelgjr_twitter pelo erro parece que vc tem duas definições de ISemaphore, 1 na semaphore1 e outra na observerinterfaces
    Veja a cláusula uses, vc deve estar confundindo o compilador
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @mdbs99 por incrivel que pareça era na uses mesmo mais na ordem tive que colocar na uses com essa ordem observer.classes, observerinterfaces, semaphore1 com a semaphore1 na frente dava aquele erro ^^
    Marcos Douglas B. Santos
    @mdbs99
    @Manoelgjr_twitter o compilador lê as units declaradas da direita para esquerda
    Fabricio Cabral
    @fabriciofx
    O uses funciona como operador (por causa da associatividade)?
    Marcos Douglas B. Santos
    @mdbs99
    O uses é o mesmo que o import do Java