Fórum Erro em procedure! #450601

01/08/2013

0

Saudações galera,
estou tendo problemas com um código, já tentei resolver mas não obtive sucesso.

  
private
procedure getImgInfo(Sender: TObject; A, B: String);


procedure TfMain.Button1Click(Sender: TObject);
var
  i, Idx, Left, Top, Count : integer;
  Graph : TGraphic;
  Img : TImage;
  EdPath, EdFileName : TEdit;
begin
  openImg.Execute;
  Left := 5;
  Top := 5;
  Count := 0;
  Idx := 0;
  for i:=0 to openImg.Files.Count-1 do
    begin
      try
        begin
          Graph := TPngImage.Create;
          Graph.LoadFromFile(openImg.Files[i]);

          EdPath := TEdit.Create(pImgs);
          EdPath.Left := Left + 101;
          EdPath.Visible := False;
          EdPath.Text := ExtractFilePath(openImg.Files[i]);

          EdFileName := TEdit.Create(pImgs);
          EdFileName.Left := Left + 101;
          EdFileName.Visible := False;
          EdFileName.Text := ExtractFileName(openImg.Files[i]);

          Img := TImage.Create(pImgs);
          Img.Parent := pImgs;
          Idx := Idx + 1;
          Img.Name := ''Img_''+IntToStr(Idx);
          Img.Width := 100;
          Img.Height := 100;
          Img.Left := Left;
          Img.Proportional := True;
          Left := Left + 101;
          Img.Top := Top;
          Img.Picture.Assign(Graph);
          Img.BringToFront;
          Count := Count + 1;
          Img.OnClick := getImgInfo(Img, edPath.Text, edFileName.Text); // Linha com o erro
          Edit1.Text := ExtractFilePath(openImg.Files[i]);
          Edit2.Text := ExtractFileName(openImg.Files[i]);

          if Count = 2 then
            begin
              Left := 5;
              Top := Top + 101;
              Count := 0;
            end;
        end;
      except on E : Exception do
        ShowMessage(''Houve um erro :'' + E.Message);
      end;
    end;
end;


Está retornando esta mensagem:
[dcc32 Error] uMain.pas(74): E2010 Incompatible types: ''TNotifyEvent'' and ''procedure, untyped pointer or untyped parameter''


Já tentei mudar tudo, de várias formas. Mas, de uma forma ou de outra, sempre acaba nesse mesmo warning.
O que há de errado?
[]''s
Thiago Oliari

Thiago Oliari

Responder

Posts

01/08/2013

Francisco Macário

Olá.

A assinatura da procedure deve ser identica a do evento.


private
  procedure getImgInfo(Sender: TObject);


  Img.OnClick := getImgInfo;


Então você terá que ajustar a forma de obter os parametros de getImgInfo.

Espero que ajude.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar