Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   ShowModal überladen (https://www.delphipraxis.net/165697-showmodal-ueberladen.html)

bwolf 12. Jan 2012 08:01

ShowModal überladen
 
Hi,

ich will die Funktion ShowModal eines Formulars überladen, damit ich zusätzlich einen Parameter mit übergeben kann.
Allerdings habe ich das Problem das das ModalResult der überladenen Funktion immer 0 ist.

Hier der Code:

Code:
...
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function ShowModal(AParam : Integer): Integer; overload;
  end;
...



function TfrmTest.ShowModal(AParam : Integer): Integer;
begin
  inherited ShowModal;
end;


// iResult ist immer 0
iResult := frmTest.ShowModal(iTest);
Was mache ich Falsch?
Danke!

himitsu 12. Jan 2012 08:08

AW: ShowModal überladen
 
Sei froh, daß es "zufällig 0 ist.
Dich hat Delphi (der Compiler) doch bestimmt gewarnt, wegen dem undefinierten Funktionsergebnis. :stupid:

Tja, aber wenn man vergißt das Vergebnis zuzuweisen, dann braucht man sich nicht zu wundern :zwinker:
Delphi-Quellcode:
Result := inherited ShowModal;
.

bwolf 12. Jan 2012 08:14

AW: ShowModal überladen
 
Hi und danke für die Antwort!
So klappts - ich dachte eigentlich das die Zuweisung des Results im vererbten Aufruf von ShowModal passiert.

himitsu 12. Jan 2012 08:34

AW: ShowModal überladen
 
In der anderen Methde wird das das Result dieser anderen Methode zugewiesen.
Das Result deiner Methode wird damit natürlich nicht gesetzt.

bwolf 12. Jan 2012 09:25

AW: ShowModal überladen
 
Ja jetzt wo du es sagst erscheint das sehr logisch :?
Danke nochmal für die erläuterung.

shmia 12. Jan 2012 10:34

AW: ShowModal überladen
 
Zitat:

Zitat von bwolf (Beitrag 1145529)
ich will die Funktion ShowModal eines Formulars überladen, damit ich zusätzlich einen Parameter mit übergeben kann.

Ich würde den Parameter als Property des Formulars deklarieren und die Methode ShowModal lassen wie sie ist.
Falls du deinen Code in einem Jahr anschaust könnte es durchaus sein, dass du einige WTFs ausrufst ("was hab' ich mir damals nur dabei gedacht?").


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

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