Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped.. (https://www.delphipraxis.net/78322-inkompatible-typen-tnotifyevent-und-procedure-untyped.html)

hirnstroem 3. Okt 2006 08:45


Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped..
 
'loha Folks,

In einem OnRenderCell Ereignis wird folgende Prozedur ausgeführt, welche ein Symbol als Control in ein IWDBGrid einfügt und bei einem OnClick Ereignis auf eine weitere Prozedur verweist, welche in diesem Fall das Grid sortiert:
Delphi-Quellcode:
procedure TfrmDeviceManagementSelect.grdDeviceRenderCell(ACell: TIWGridCell;
  const ARow, AColumn: Integer);
begin
  if ARow = 0 then
  begin
    if AColumn = 1 then
    begin
      with ACell do
      begin
        Control := TIWImageFile.Create(Self);
        with TIWImageFile(Control) do
        begin
          ImageFile.Filename := './sort.gif';
          OnClick := UserSession.SortBy(DataSet, 'Address'); //*
        end;
      end;
    end;
  end;
end;
Allerdings erscheint beim kompilieren die folgende Meldung bei der mit //* markierten Zeile:

[Pascal Fehler] UDeviceManagementSelect.pas(87): E2010 Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'

Und aus dieser Meldung wird meine Wenigkeit überhaupt nicht schlau.

Delphi-Quellcode:
OnClick := UserSession.SortBy(DataSet, 'Address');
^^ Hier wird ja lediglich gesagt, dass wenn jemand auf das GIF-Image klickt, die Prozedure SortBy mit den entsprechenden Argumenten im Unit UserSession ausgeführt werden soll. Das sollte doch machbar sein?!

Weiss jemand Rat?

Grüsse
hirnstroem

DGL-luke 3. Okt 2006 08:51

Re: Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyp
 
Nein, geht nicht. Ein OnClick-Event hat nur Sender: TObject als Argument. Du musst also erst diesen Event schreiben, zuweisen und in dem kannst du dann auf die Sortier-Prozedur weiterleiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz