Einzelnen Beitrag anzeigen

BerleFreund

Registriert seit: 30. Jan 2019
7 Beiträge
 
#1

[dcc64 Fehler] ProgrammInfo.pas(272): E2009 Inkompatible Typen: 'Methodenzeiger und r

  Alt 30. Jan 2019, 10:13
Hallo zusammen,

bin neu hier im Forum und habe folgendes Problem :

Beim erstellen meines Programms bekomme ich diese Fehlermeldung :
[dcc64 Fehler] ProgrammInfo.pas(272): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'

Ich habe auch schon im Forum gesucht aber keine Erklärung für diesen Fehler gefunden,
vielleicht auch nicht richtig verstanden was dort erklärt wurde.

Hier mal mein Programm welches aus zwei Units und einem Formular besteht.
In der Unit Start gibt es ein Menu mit dem Menüpunkt Programminfo. In der Unit Programminfo wird auf dem Form1
ein Stringgrid erzeugt. Diesem StringGrid möchte ich unter OnDrawCell die Procedure FrawCellsgPI zuweisen.
Dabei kommt dann die Fehlermeldung.

Delphi-Quellcode:
unit Start;

interface

uses
  Winapi.Windows, Winapi.Messages, ...

type
  TForm1 = class(TForm)
  MainMenu1 : TMainMenu;

  procedure ProgramminfoClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

uses ProgrammInfo;

{$R *.dfm}

procedure TForm1.ProgramminfoClick(Sender: TObject);
begin
  ProgramminfoClick2(Sender);
end;

// #################################################

unit ProgrammInfo;

interface

uses
  Winapi.Windows, Winapi.Messages, ...

  procedure DrawCellsgPI(Sender: tobject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
  procedure ProgramminfoClick2(Sender: TObject);

implementation

uses Start;

procedure DrawCellsgPI(Sender: tobject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

var textformat : cardinal;
    celltext : string;
    myDrawRect : TRect;

begin
  with (Sender as TStringGrid) do
  begin
    ...
  end;
end;

procedure ProgramminfoClick2(Sender: TObject);

var sgPI : TStringGrid; // StringGrid für ProgrammInfo

begin
  sgPI := TStringGrid.Create(nil);
  sgPI.Parent := Form1;
  sgPI.ondrawcell := DrawCellsgPI; // !!! Hier ist der Fehler !!!
  sgPI.FixedCols := 0;
  sgPI.FixedRows := 1;
  sgPI.FixedColor := clActiveBorder;
  sgPI.Height := 678;
  sgPI.Left := 420;
  sgPI.Top := 235;
  sgPI.Width := 1480;
  ...
end;
Kennt jemand dafür eine Lösung bzw. kann mir genau erklären wo mein Problem liegt ?

Vielen Dank im Vorraus für Eure Hilfe

Geändert von Luckie (30. Jan 2019 um 10:55 Uhr) Grund: Delphi Tags ergänzt. Bitte selber dran denken.
  Mit Zitat antworten Zitat