zwei Parameter bei Event übergeben

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
diejohi
Beiträge: 9
Registriert: Mo 29. Dez 2014, 15:13

zwei Parameter bei Event übergeben

Beitrag von diejohi »

Hallo zusammen,
ich möchte mit einem Event zwei Parameter übergeben

type
TFindFiles = class;
TOnFindFile = procedure(Sender: TFindFiles, Filename: string) of object;

und erhalte die Fehlermeldung: Syntax error, ")" expected but "," found.

Meines Wissens kann ich mehrere Parameter über geben, was habe ich falsch gemacht?

Danke Euch schon mal
Dieter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: zwei Parameter bei Event übergeben

Beitrag von mse »

Bitte zeige alle relevanten Teile des Programmtextes.

diejohi
Beiträge: 9
Registriert: Mo 29. Dez 2014, 15:13

Re: zwei Parameter bei Event übergeben

Beitrag von diejohi »

Ich hoffe das sind die relevanten Teile:

Code: Alles auswählen

type
    TFindFiles = class;
    TOnFindFile = procedure(Sender: TFindFiles, Filename: string) of object;
    TOnDirectoryFind = procedure(Sender: TFindFiles, Directory: string) of object;
    TFindFiles = class(TObject)
 
private
    FSubfolders: Boolean;
    FMask: string;
    FFileInfo: TWin32FindData;
    FOnFindFile: TOnFindFile;
    FOnFindDirectory: TOnDirectoryFind;
public
    constructor Create;
    procedure Find(RootFolder: string);
    property SubFolders: Boolean read FSubFolders write FSubFolders;
    property Mask: string read FMask write FMask;
    property FileInfo: TWin32FindData read FFileInfo;
    property OnFileFind: TOnFindFile read FOnFindFile write FOnFindFile;
    property OnDirectoryFind: TOnDirectoryFind read FOnFindDirectory write FOnFindDirectory;
end;
 
 
        try
          repeat
            if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY =
              FILE_ATTRIBUTE_DIRECTORY then
              if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..') then
              begin
                FFileInfo := wfd;
                if Assigned(OnDirectoryFind) then
                  OnDirectoryFind(TFindFiles, RootFolder + wfd.cFileName);
                Find(RootFolder + wfd.cFileName);
              end;
          until FindNextFile(hFile, wfd) = False;
        finally
          windows.FindClose(hFile);
        end;
      end;
      hFile := FindFirstFile(PChar(RootFolder + Self.Mask), wfd);
      if hFile <> INVALID_HANDLE_VALUE then
      try
        repeat
          if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <>
            FILE_ATTRIBUTE_DIRECTORY then
          begin
            FFileInfo := wfd;
            if Assigned(OnFileFind) then
              OnFileFind(TFindFiles, RootFolder + wfd.cFileName);
          end;
        until FindNextFile(hFile, wfd) = False;
      finally
        Windows.FindClose(hFile);
      end;
Zuletzt geändert von Lori am Mo 12. Jan 2015, 17:50, insgesamt 1-mal geändert.
Grund: Highlighter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: zwei Parameter bei Event übergeben

Beitrag von mse »

Der "relevante Teil" war bereits im ersten Beitrag, sorry. ;-)

Code: Alles auswählen

 
TOnFindFile = procedure(Sender: TFindFiles; Filename: string) of object;
 
Procedureparameter werden bei der Definition durch ";" getrennt nicht ",".

diejohi
Beiträge: 9
Registriert: Mo 29. Dez 2014, 15:13

Re: zwei Parameter bei Event übergeben

Beitrag von diejohi »

Danke Dir. Nun wird es fehlerfrei übersetzt. Mal testen ob es so funktioniert wie ich das möchte.

Einen schönen Sonntag

Antworten