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