[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 |