[Notes2-team] RE: Problemas no Envio de =?ISO-8859-1?Q?C=F3digo?=
Brought to you by:
andersonrb
|
From: Anderson R. B. <and...@po...> - 2004-03-02 04:42:59
|
Ok, consegui encaminhar o source para o meu e-mail. O e-mail
=E9 muuuiiittooo grande pra ser encaminhado pra lista realmente...
Bom, Josimar, temos v=E1rios problemas, vou abordar item por
item, espero que tu LEIA TUDO - tem coisas que eu tinha te pedido pra
fazer de um jeito e voc=EA fez de outro... e tem coisas que eu n=E3o tinh=
a
dito tamb=E9m (minha culpa):
* Quanto aos componentes do SynEdit:
O c=F3digo foi organizado para que tudo que faz parte do SynEdit seja
criado em run-time apenas. Isto n=E3o =E9 s=F3 por que algumas pessoas n=E3=
o
querem instalar o pacot=E3o do synedit (onde eu me incluo), mas principal=
mente
para que possamos mexer =E0 vontade no SynEdit sem que outro app
que algu=E9m desenvolva usando o synedit d=EA problemas. Ent=E3o se vc fo=
r
usar algum componente a mais do SynEdit, crie ele em run-time. (Eu
particurlamente n=E3o pretendo instalar o SynEdit no Delphi, ent=E3o nem
pude compilar os sources que tu enviou... tudo que escrevi no e-mail
foi de olhar o c=F3digo, pois abrir os sources no Delphi dava um monte
de erros por causa da falta de componentes...)
OBS1: a maioria dos componentes que tu usou n=E3o precisam ser criados
na inicializa=E7=E3o do Notes, v=E1rios poderiam ser criados apenas quand=
o
forem ser usados. Isso pode te parecer bobagem, mas um dos itens
chaves para o sucesso do Notes =E9 que ele carregue o mais r=E1pido poss=ED=
vel.
Ent=E3o tudo o que puder ser criado apenas quando necess=E1rio (component=
es
para impress=E3o pra dar um exemplo) deve ser criado no instante em que
for necess=E1rio e destru=EDdo logo depois. Outra sa=EDda =E9 ter uma fun=
=E7=E3o que
cheque se o componente foi criado e se n=E3o foi o crie:
function PrintDlg();
begin
if not Assigned(fPrintDlg) then
fPrintDlg:=3D TPrintDlg.create();
result:=3D fPrintDlg; =20
end;
Assim o componente =E9 criado apenas quando necess=E1rio e o programa ini=
cia
bem mais r=E1pido.
OBS2: estou criando um componente autocompletar para o Notes, n=E3o
usaremos o do SynEdit. As principais partes dele est=E3o prontas, mas
estou dando prioridade ao que temos que fazer para a vers=E3o Alpha...
OBS3: tu vai ver que no geral n=E3o usamos muita coisa pronta (o synedit =
=E9
uma exce=E7=E3o). Isto =E9 principalmente pra que possamos nos diferencia=
r de
programas como Syn e Context, que simplesmente usam todos os componentes
do SynEdit. Para o Notes valer =E0 pena =E9 preciso que ele v=E1 al=E9m d=
o que=20
os concorrentes
fazem, em outras palavras: n=E3o basta usar o SynEdit e imitar os di=E1lo=
gos do
delphi ou do VisualStudio para fazermos um grande editor - isto j=E1 foi=20
feito.
Uma das coisas que temos pensadas para o futuro =E9 desenvolver o nosso
pr=F3prio componente de edi=E7=E3o baseado no SynEdit, justamente para po=
der
fazer algo muito melhor do que aqueles programas que j=E1 existem.
* Quanto ao Grep:
Temos v=E1rios probleminhas. O primeiro =E9 que a id=E9ia =E9 que o di=E1=
logo de=20
busca em arquivos
n=E3o seja separado do di=E1logo de busca no arquivo atual. Ent=E3o n=E3o=
=20
ter=EDamos um di=E1logo
para "buscar em arquivos". Lembra os di=E1logos que te enviei?! A id=E9ia=
=20
era implementar eles
apenas. Como eu tinha te dito tamb=E9m, Josimar, o Jonas passou quase um=20
m=EAs construindo
uma classe (ela t=E1 em ..\editor\NotesSeeker.pas no source do Notes) par=
a=20
fazer pesquisas em
strings muito r=E1pida e com todas as op=E7=F5es que necessitamos, ent=E3=
o tu=20
deve usar a classe que
ele fez para buscar em arquivos ao inv=E9s de tentar reinventar a roda. A=
=20
=FAnica coisa que falta na
classe dele s=E3o as Express=F5es Regulares.
Pergunta: Tu saberia modificar a classe para que ela pudesse usar=20
express=F5es regulares?! Se tu
conseguisse fazer isto, poder=EDamos ter no Notes todas as op=E7=F5es de=20
buscas que existem!!!
Se voc=EA conseguir mexer na classe pra adicionar express=F5es regulares=20
ficar=E1 muito mais
f=E1cil de us=E1-las no Notes inteiro, seria muito bom. Voc=EA pode fazer=
isto?!
* Quanto as Macros:
N=E3o quero parecer pessimista, mas acho que o componente do SynEdit n=E3=
o=20
vai funcionar no
Notes por causa do modo que implementamos as coisas. Por outro lado, n=E3=
o=20
pretend=EDamos
colocar macros nessa vers=E3o pois pretendemos criar uma linguagem de=20
script (algo bem mais
poderoso do que as macros do synedit). A gente pode tentar mexer no=20
componente pra
adaptar ele para o Notes (a=ED est=E1 a vantagem de criar tudo em run-tim=
e,=20
heheheh). Tu quer
muito que tenhamos macros?! Se quiser, trabalhamos para botar e depois=20
no Notes 2
fazemos a linguagem de script... pelo que tu disse parece que os eventos=20
n=E3o est=E3o
gravados. Talvez falte setar o synedit ou chamar algum m=E9todo...
Mas sem eu poder compilar o c=F3digo fica complicado de te ajudar... v=EA
se mexe nessas quest=F5es que pontuei no e-mail e manda para um source=20
novo pro
sourceforge (j=E1 te coloquei no projeto do Notes l=E1 e daqui =E0 pouco =
vou=20
abrir uma
pasta com permiss=F5es pra todo mundo... o melhor seria usarmos CVS mesmo=
.)
* Quanto a impress=E3o:
Fora a coisa de tentar criar tudo em run-time, fiquei pensado outra=20
coisa: tu acha que o
preview de impress=E3o =E9 algo necess=E1rio para um aplicativo como o No=
tes?!=20
No geral
programadores n=E3o imprimem nada, n=E3o sei se vale =E0 pena ter isto...=
qual=20
=E9 a tua opini=E3o?!
OBS4: esqueci de dizer que 3 preocupa=E7=F5es constantes s=E3o: 1) o tama=
nho=20
do execut=E1vel;
2) consumo de recursos (mem=F3ria principalmente); 3) que no futuro=20
teremos uma vers=E3o para linux, heheheh.
Acho que =E9 isto...
Abra=E7o,
Anderson R. Barbieri
Coordenador do projeto
|