Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function schreiben + übergabe von Parametern (https://www.delphipraxis.net/24449-function-schreiben-uebergabe-von-parametern.html)

Albi 21. Jun 2004 10:08


Function schreiben + übergabe von Parametern
 
Hallo,

ich habe mir ein kleines Programm geschrieben in dem ich in ein Edit-Feld einen Wert eintragen kann und mir dann die übereinstimmungen in einem Grid angezeigt werden. Da diese Abfrage ingesamt 4x vorkommt, habe ich mir gedacht, dafür eine kleine Function zu schreiben aber irgendwie komm ich damit nicht ganz klar.

Ich will in die Function das Datenmodul, die entsprechende Dataset sowie den zu suchenden String übergeben aber ich da immer ne Fehlermeldung:

Zitat:

Form12.pas(916): Inkompatible Typen: 'TForm' und 'Class reference'
Hier mein Versuch. (Ich muß dazu sagen, es ist das erste mal das ich mich an Function herantraue)

Code:
function TForm12.SearchVers(DM: TForm; DS: TIBDataSet;
  SearchText: String): String;
begin
  With DM Do
  Begin
    With DS Do
      Begin
        Close;
        Params[0].value:= SearchText;
        open;
      end;
  end;

end;

sakura 21. Jun 2004 10:11

Re: Function schreiben + übergabe von Parametern
 
Welche Zeile ist den 916?

...:cat:...

Albi 21. Jun 2004 10:17

Re: Function schreiben + übergabe von Parametern
 
Zeile 916 ist die wo ich versuche das Datenmodul zu übergeben, wenn ich das rausnehme läuft die Function ohne Fehlermeldung durch.

Zitat:

function TForm12.SearchVers(DM: TForm; DS: TIBDataSet;
SearchText: String): String;

BluesKid 21. Jun 2004 10:19

Re: Function schreiben + übergabe von Parametern
 
Moin moin

Zeig doch mal wie du die function aufrufst.


schönen Gruß

Sam

Albi 21. Jun 2004 10:24

Re: Function schreiben + übergabe von Parametern
 
Aufrufen würde ich die Function dann so, wenn ich sie compiliert bekomme:

Code:
SearchVers(Datenmodul,Dataset, Searchstring);

Sharky 21. Jun 2004 10:26

Re: Function schreiben + übergabe von Parametern
 
Zitat:

function TForm12.SearchVers(DM: TForm; DS: TIBDataSet;
SearchText: String): String;
Ähmm... TForm ist aber kein TDataModul!

BluesKid 21. Jun 2004 10:33

Re: Function schreiben + übergabe von Parametern
 
...und überleg mal ob du da nich lieber ne procedure draus machst...diese function liefert ja gar kein Ergebnis zurück


schönen Gruß

Sam

Albi 21. Jun 2004 10:57

Re: Function schreiben + übergabe von Parametern
 
:gruebel: Soll die Function doch aber eigentlich auch nicht, sondern soll nur das DataSet in schwung bringen und diese zeigt mir dann das Ergebnis.

Ich habe das mit dem DatenModul jetzt rausgenommen und setze nur noch die parameter für die Dataset und den Searchstring und so geht das auch.

Hier mein Ergebnis:

Code:
function TFormMandGeg.SearchVers(DS: TIBDataSet;
  SearchText: String): String;
begin
With DS Do
  Begin
    Close;
    Params[0].value:= SearchText;
    open;
  end;
end;
Und der Aufruf erfolg so:

Code:
SearchVers(DMMa.IBDSVersHPF,MHPFTxt.Text)
Würde mich jetzt aber trotzdem mal interessieren, wann nimmt man denn am besten eine Procedure und wann eine Function?

BluesKid 21. Jun 2004 11:07

Re: Function schreiben + übergabe von Parametern
 
Ob das wirklich so wichtig ist kann ich auch nich sagen :-)

Funktionen liefer eben Ergebnise so wie in der Mathematik auch und Proceduren sind einfach nur Anweisungen.

f(x) = x² liefert für meinetwegen für x= 5 das ergebniss 25 aber "Mach die Türe zu" muss das ja nich unbedingt..man kann zwar auch aus "Mach die Tür zu" ne function machen die true/false zurückgibt ob die Türe geschlossen wurde, aber es ist nicht unbedingt nötig...is wohl ne Frage von Stil usw.

schönen Gruß

Sam

Sharky 21. Jun 2004 11:12

Re: Function schreiben + übergabe von Parametern
 
Zitat:

Zitat von Albi
...Würde mich jetzt aber trotzdem mal interessieren, wann nimmt man denn am besten eine Procedure und wann eine Function?

Eine Funktion verwendest Du wenn Du ein Ergebniss haben möchtest.

Delphi-Quellcode:
function AddINT (a,b : Integer) : Integer;
begin
  result := a + b;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c : Integer;
begin
  c := AddINT (5,3);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.
Seite 1 von 2  1 2      

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