Ir para conteúdo
Fórum Script Brasil

*_Felipe_*

Membros
  • Total de itens

    24
  • Registro em

  • Última visita

Posts postados por *_Felipe_*

  1. estava eu testando meu programa e após ter feito algumas modificações, esse comando parou de funcionar no dbgrid :

    private
    procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
    (...)
    procedure TForm1.OnMessageOwn(var Msg: TMsg; var Handled: Boolean) ;
    var i: SmallInt;
    begin
    if Msg.message = WM_MOUSEWHEEL then
    begin
    Msg.message := WM_KEYDOWN;
    Msg.lParam := 0;
    i := HiWord(Msg.wParam) ;
    if i > 0 then
    Msg.wParam := VK_UP
    else
    Msg.wParam := VK_DOWN;
    Handled := False;
    end;
    end;[/codebox]

    não entendi nada, mas tenta usa pontos de interrupçao dai tu vai ver em que comando exatamente ta o erro.

  2. como usa isso?

    clica no lado esquerdo da linha (na parte cinza)

    ai a linha vai ficar vermelha (ou outra cor dependendo da tua configuraçao), se ele não parar no ponto de interrupçao

    é prq tu fez alguma coisa errada

    ou tem uma variavel que não vai ser usada no programa, dai o delphi pula

    ai bota tu escolhe aonde colocar o ponto

    se o programa executar

    e n der erro, é porque o erro ta mais pra frente

    saco?

    falo

  3. Não amigo não é esse o erro é esse:

    Project sistemacfc.exe raised exception class EConverteError with message " / / 'is not a valid date'.

    Process stopped. Used Step or Run continue.

    no meu programa também dava este erro

    porq eu tentava pesquisar e o maskedit tava vazio

    dai eu botei um if maskedit1.text <> ' / /'

    e resolveu

    o erro é que a tua data não ta indo pra variavel

    ou algo do tipo

    mas n sei aonde esta

    tenta usar pontos de interrupçao

    pra ver aonde da o erro

    e dpois posta aqui

    ateh

  4. O dataset está ligado ao DataSource, e é dele que as informações utilizadas nos componentes data-aware vem.

    Quando eu escrevo dataset me refiro a classe do componente de acesso ao banco que você utiliza. Por exemplo, TTable, TQuery, TZTable, TClientDataSet....

    Como você's (você não é o único) não informam o que usam para acessar os dos, e eu não sou advinho, então eu uso a classe pai de todos eles (TDataSet). Captou?! ;)

    humm.. foi mal então :x, agora consegui

    quando eu dava 2 cliques no query n aparecia nada, agora que descobri o "add all fields"...

  5. Já experimentou definir o formato de apresentação na propriedade DisplayFormat do campo no dataset?

    Se não, acesse a lista de Fields do dataset - duplo-click no componente dataset), acesse a propriedade DisplayFormat e a defina com dd/mm/yyyy.

    acontece que eu uso o datasource e não o dataset ..

  6. eu puxo uma data do banco de dados (QuickDesk)

    e vai se mostrado num DBGrid

    mas ela vem em formato americano ..

    a data de hoje vai ta assim: 06/05/2007

    e quando eu vo localizar tenho que digitar em formato brasileiro (05/06/2007) pra ele poder localizar

    então eu suponho que seja só alguma coisa na exibiçao

    espero resposta

    falows ;D

  7. quero saber como eu utilizo um erro

    por exemplo

    fname:= InputBox(fname,'Caminho do arquivo:','c:\gerar brd\');

    AssignFile(Input,fname);

    nesse caso ele pede o caminho do arquivo..

    e depois abre, mas se o arquivo n existir da erro

    quero fazer que em vez de dar um erro de Delphi

    eu diga qual foi o erro e encerre o programa.

    alguma coisa assim

    if erro='file not found' then

    begin

    close;

    end

    else

    ...........

    end;

  8. gostaria que alguém me ensinasse ou me passasse uma apostila

    que ensine a gerar relatorio no Delphi.. atravéz do SQL

    eu até sei usar, mas não lembro..

    coisas como adicionar variaveis, vetores e etc em um relatorio..

    me falaram que o Crystal Reports é bom

    mas nunca usei ...

    espero resposta, abraço x)

  9. eu ate entendi oqe os gringos disseram

    mas era muito complicado...

    mas clareou uma ideia

    resolvi descomplicar e criei uma variavel para receber os caracteres, já que o problema na recepçao acontecia apenas com variaveis que tem vetor

    ficou assim:

    aux1:='';
              for q2:=z to z1 do
              begin
                aux1 := aux1 + Cumulative[ncx].fch3[aux][q2];
              end;
              Feeder[ncx].head3 := aux1;

    n sei como n tinha pensado nisso antes ehuieuhe

    abraço e valeu pela ajuda na duvida d antes =D

  10. duvida 2......a danada da foto

    fotos serão arquivadas numa pasta (c:\locadora\fotos) e ao digitar o numero do cadastro do cliente....a foto deve aparecer num 'image1'.

    as fotos tem o nome: foto1.jpg, foto2.jpg, foto3.jpg.....etc

    a duvida é como chamar essa foto para o image1.....já tenho alguma coisa pronta mas não sei como fazer o código de chamar a foto lá na pasta.

    alguém poderia me dar essa luz????????????????/

    tem 2 jeitos de faze isso, ou vai na propriedade "picture" do image1 ou digita image1.picture.loadfromfile('c:\locadora\fotos\arquivo.jpg');

    a primeira duvida eu n sei.. mals :x

    abraç x)

  11. Eis a questão, seria interessante se quando clicasse no botão salvar ele habilitasse a imagem!!!

    não sei se entendi bem

    mas acho que voce deve deixar a imagem com a propriedade "picture" vazia

    e quando voce clicar no botao salvar :

    image1.Picture:= "Caminho da Imagem";

    falows.

  12. esse programa ta me dando uma dor de cabeça, acho que ate vo te que estender o estagio :S

    bom .. esse programa serve pra fazer a leitura de um relatorio

    gerado por uma maquina, aqui da empresa, que coloca componentes em uma placa

    eu não coloquei o StuffString() prq da AccessViolation...

    procedure TPrincipalForm.Button1Click(Sender: TObject);
    type
      TCumulative = record
        xc, xch:integer;
        cum,hc1,hc2,hc3:string;
        fc,ncf,fch1,fch2,fch3:array[0..50] of string;
      end;
      TPCB = record
        nome,quant,porc,tempot,tempom,quantc:string;
        idmaq:integer;
      end;
      TFeeder = record
        feeder, ofpcb, comment, quant, erros, aproveitamento:string;
        head1, erros1, head2, erros2, head3, erros3:string;
        idpcb:integer;
      end;
      THead1 = record
        head,acoes,errosf,errosm:string;
        idpcb:integer;
      end;
      THead2 = record
        head,acoes,errosf,errosm:string;
        idpcb:integer;
      end;
      THead3 = record
        head,acoes,errosf,errosm:string;
        idpcb:integer;
      end;
    var
      Cumulative: array[0..9] of TCumulative;
      Feeder: array[0..49] of TFeeder;
      PCB: Array[0..9] of TPCB;
      Head1: Array[0..29] of THead1;
      Head2: Array[0..29] of THead2;
      Head3: Array[0..29] of THead3;
      rel,fname,mata,tlg,tus,rat:string;
      i:integer;
      x,ml,nc:integer;
      xt, xth:integer;
      xczote,xchzote,ncx:integer;
      tri,ht1,ht2,ht3: string;
      cc,c1,c2,c3,c4,c5,c6,che,ch1: boolean;
      w,que,q1,q2,q3,q4,q5,q6,z,z1,aux:integer;
      mtempol,mtempou,mporc:string;
      cnome,cquant,cporc,ctempot,ctempom,cquantc:string;
      cffeeder,cfcomment,cfquant,cferros,cfaproveitamento: array[0..50] of string;
      chhead1,chacoes1,cherrosf1,cherrosm1:string;
      chhead2,chacoes2,cherrosf2,cherrosm2:string;
      chhead3,chacoes3,cherrosf3,cherrosm3:string;
      cfhead1,cferros1,cfhead2,cferros2,cfhead3,cferros3: array[0..50] of string;
    begin
      fname:= InputBox(fname,'Caminho do arquivo:','c:\gerar brd\');
      AssignFile(Input,fname);
      reset(Input);
      readln(mata);
    
      //e segue usando readln e armazenando variaveis, na qual uma delas é o fch3. 
      //porém as variaveis estão assim(exemplo): fch3 = 'H3=     81    1    0'; e neste caso, significa que a cabeça 3, agiu 81 vezes e errou 1, então tenho que dividir ela em:
      //head3 = 81 e erros3 = 1
      //os booleans c1,c2 e c3 servem para alternar entre os valores.
      //o boolean che serve para quando um valor for encontrado, então procura o proximo valor.
    
      for ncx:=0 to nc do
      begin
      //vai separando variaveis, até chegar na vez do fch3
      ...
      ...
      ...
        for aux:=0 to Cumulative[ncx].xch do
        begin
          que:=0;
          q1:=0;
          q2:=0;
          q3:=0;
          c1:=false;
          c2:=true;
          c3:=true;
          che:=false;
          for que:=1 to 20 do
          begin
            if c1 = false then
            begin
              if che=false then
              begin
                if Cumulative[ncx].fch3[aux][que] = ' ' then
                begin
                  che:=true;
                end;
              end
              else
              begin
                if Cumulative[ncx].fch3[aux][que] <> ' ' then
                begin
                  c1:=true;
                  c2:=false;
                  che:=false;
                  ch1:=false;
                end;
              end;
            end;
            if c2 = false then
            begin
              if ch1 = false then
              begin
                z:=que;
                ch1:=true;
              end;
              if che = false then
              begin
                if Cumulative[ncx].fch3[aux][que] = ' ' then
                begin
                  z1:=que-1;
                  che:=true;
                  for q2:=z to z1 do
                  begin
                    Feeder[ncx].head3[aux] := Feeder[ncx].head3[aux] + Cumulative[ncx].fch3[aux][q2]);
                  end;
                end;
              end
              else
              begin
                if Cumulative[ncx].fch3[aux][que] <> ' ' then
                begin
                  c2:=true;
                  c3:=false;
                  che:=false;
                  ch1:=false;
                end;
              end;
            end;
            if c3 = false then
            begin
              if ch1 = false then
              begin
                z:=que;
                ch1:=true;
              end;
              if che = false then
              begin
                if Cumulative[ncx].fch3[aux][que] = ' ' then
                begin
                  z1:=que-1;
                  che:=true;
                  for q3:=z to z1 do
                  begin
                    Feeder[ncx].erros3[aux] := Feeder[ncx].erros3[aux] + Cumulative[ncx].fch3[aux][q3];
                  end;
                  c3:=true;
                end;
              end;
            end;
          end;
        end;
      end;
    end;

  13. eu tenho dois exemplos

    que usa QuickDesk como base de dados

    são basicos, de quando eu fazia curso tecnico. Uma agenda telefonica e um de vendas e compras. me adiciona no MSN: lipebolsoni@hotmail.com

    mas só posso mandar anoite, porqe os exemplos tão em casa e eu to no trabalho.

    falow abraço!

  14. TCumulative = record
        xc, xch:integer;
        cum,hc1,hc2,hc3:string;
        fc,ncf,fch1,fch2,fch3:array[0..50] of string;
    
    TFeeder = record
        feeder, ofpcb, comment, quant, erros, aproveitamento:string;
        head1, erros1, head2, erros2, head3, erros3:string;
        idpcb:integer;

    acredito eu que o "shortstring" dito no erro, é porque "head3" está sendo adicionado de apenas um caracter de "fch3"!

    p.s: como se bota aquela janelinha "quote" que voces usam para exibir o cogido fonte?

  15. O erro é: Incompatible types: 'Char' and 'ShortString'

    esta na linha destacada:

    for q2:=z to z1 do

    begin

    Feeder[ncx].head3[aux] := Feeder[ncx].head3[aux] + Cumulative[ncx].fch3[aux][q2];

    end;

    a variavel "head3" é vetor tipo string, dentro de um record (Feeder).

    "Head3" deve receber apenas alguns caracteres da variavel "fch3", que tambem é um vetor.

    a variavel "q2" é o numero do(s) caracter(es) à ser pego da variavel "fch3", e "aux" é a posiçao no vetor!

    se eu tento utilizar a funçao "strcat" assim:

    StrCat(Feeder[ncx].head3[aux], Cumulative[ncx].fch3[aux][q2]);

    o erro muda: [Error] Principal.pas(1280): Incompatible types: 'Char' and 'PAnsiChar'

    No mesmo programa tenho esta linha:

    PCB[ncx].tempom := PCB[ncx].tempom + Cumulative[ncx].cum[q5];

    e ela funciona, portanto o erro está no vetor

    mas não sei oque fazer. Se precisar eu boto uma parte maior do codigo.

    Desde já agradeço =)

×
×
  • Criar Novo...