Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Overload?? (https://www.delphipraxis.net/58936-overload.html)

kleiner Unwissender 14. Dez 2005 20:09


Overload??
 
hi ich bin grad dabei ein kleines programm zu schreiben und nun sagt der mir bei einer procedure:

Zitat:

die überladene Prozedur '...' muss mit der Direktive 'overload' gekennzeichnet sein.

jetzt stellen sich mir 3 fragen:

1. was heist das, und

2. ab wann ist eine datei "überladen"?

3. was muss ich tun damit das wieder alles klappt?

_______
ich muss dazu sagen, das ich gerade erst anfange zu programmieren und von daher nicht ganz soviel ahnung habe, wäre also für ne leicht verständliche antwort sehr dankbar :oops:

Luckie 14. Dez 2005 20:13

Re: Overload??
 
Zeigt doch al den relevanten Code. So kann man nur raten, was du gemacht hast.

Airblader 14. Dez 2005 20:14

Re: Overload??
 
Sieht irgendwie aus, als willst du eine Prozedur deklarieren, die bereits existiert -> du überlädst sie -> er meckert ;)
Aber wie Luckie meinte - mit etwas Code könnte man es genauer sagen.

air

Kroko1999 14. Dez 2005 20:16

Re: Overload??
 
Overload heißt, zwei Proceduren haben den gleichen Namen, aber verschiedene Parameter
zBsp
Delphi-Quellcode:
procedure Add (const Summand1,Summand2: Integer; var Summe: Integer); overload;
function Add (const Summand1,Summand2: Integer): Integer; overload;

Airblader 14. Dez 2005 20:17

Re: Overload??
 
@Kroko

Vllt. irre ich mich, aber die 1. Prozedur muss doch ohne overload gekennzeichnet werden, oder? ;)

air

kleiner Unwissender 14. Dez 2005 20:18

Re: Overload??
 
aber vorsicht! weder code, noch algorithmus sind optimiert, ich hab bis jetzt nur das grundgerüst.
verbessern werd ich wenn ich fertig bin.

Delphi-Quellcode:
 procedure FormActivate(Sender: TObject);
    procedure Sclieen1Click(Sender: TObject);
    procedure CBSp1Click(Sender: TObject);
    procedure CBSp2Click(Sender: TObject);
    procedure CBSp3Click(Sender: TObject);
    procedure CBSp4Click(Sender: TObject);
    procedure Mannschaften_zuweisen;
    procedure GruppeA1Click(Sender: TObject);
    procedure GruppeB1Click(Sender: TObject);
    procedure GruppeC1Click(Sender: TObject);
    procedure GruppeD1Click(Sender: TObject);
    procedure GruppeE1Click(Sender: TObject);
    procedure GruppeF1Click(Sender: TObject);
    procedure GruppeG1Click(Sender: TObject);
    procedure GruppeH1Click(Sender: TObject);
    procedure CBSp5Click(Sender: TObject);
    procedure CBSp6Click(Sender: TObject);
    procedure TabelleA;
    procedure ergebnis_berechnenSp1;
    procedure ergebnis_berechnenSp2;
    procedure ergebnis_berechnenSp3;
    procedure ergebnis_berechnenSp4;
    procedure ergebnis_berechnenSp5;
    procedure ergebnis_berechnenSp6;
    procedure TabelleA;
    procedure Button1Click(Sender: TObject);
Delphi-Quellcode:
procedure TForm1.TabelleA;
begin
        plzM1:=1;
        plzM2:=1;
        plzM3:=1;
        plzM4:=1;
        if PuM1 > PuM2 then
          plzM1:=plzM1+1;
        if PuM2 > PuM1 then
          plzM2:=plzM2+1;
        if PuM1 = PuM2 then
          begin
           if mintoreM1 > mintoreM2 then
               plzM1:=plzM1+1
           else
            begin
            if mintoreM2 > mintoreM1 then
               plzM2:=plzM2+1
            else
              begin
               if toreM1 > toreM2 then
                 plzM1:=plzM1+1
               else
                 plzM2:=plzM2+1
               end
              end
            end;

        if PuM1 > PuM3 then
          plzM1:=plzM1+1;
        if PuM3 > PuM1 then
          plzM3:=plzM3+1;
        if PuM1 = PuM3 then
          begin
           if mintoreM1 > mintoreM3 then
               plzM1:=plzM1+1
           else
            begin
            if mintoreM3 > mintoreM1 then
               plzM3:=plzM3+1
            else
              begin
               if toreM1 > toreM3 then
                 plzM1:=plzM1+1
               else
                 plzM3:=plzM3+1
               end
              end
            end;


        if PuM1 > PuM4 then
          plzM1:=plzM1+1;
        if PuM4 > PuM1 then
          plzM4:=plzM4+1;
        if PuM1 = PuM4 then
          begin
           if mintoreM1 > mintoreM4 then
               plzM1:=plzM1+1
           else
            begin
            if mintoreM4 > mintoreM1 then
               plzM4:=plzM4+1
            else
              begin
               if toreM1 > toreM4 then
                 plzM1:=plzM1+1
               else
                 plzM4:=plzM4+1
               end
              end
            end;


        if PuM2 > PuM3 then
          plzM2:=plzM2+1;
        if PuM3 > PuM2 then
          plzM3:=plzM3+1;
        if PuM2 = PuM3 then
          begin
           if mintoreM2 > mintoreM3 then
               plzM2:=plzM2+1
           else
            begin
            if mintoreM3 > mintoreM2 then
               plzM3:=plzM3+1
            else
              begin
               if toreM2 > toreM3 then
                 plzM2:=plzM2+1
               else
                 plzM3:=plzM3+1
               end
              end
            end;

        if PuM2 > PuM4 then
          plzM2:=plzM2+1;
        if PuM4 > PuM2 then
          plzM4:=plzM4+1;
        if PuM2 = PuM4 then
          begin
           if mintoreM2 > mintoreM4 then
               plzM2:=plzM2+1
           else
            begin
            if mintoreM4 > mintoreM2 then
               plzM4:=plzM4+1
            else
              begin
               if toreM2 > toreM4 then
                 plzM2:=plzM2+1
               else
                 plzM4:=plzM4+1
               end
              end
            end;

        if PuM3 > PuM4 then
          plzM3:=plzM3+1;
        if PuM4 > PuM3 then
          plzM4:=plzM4+1;
        if PuM3 = PuM4 then
          begin
           if mintoreM3 > mintoreM4 then
               plzM3:=plzM3+1
           else
            begin
            if mintoreM4 > mintoreM3 then
               plzM4:=plzM4+1
            else
              begin
               if toreM3 > toreM4 then
                 plzM3:=plzM3+1
               else
                 plzM4:=plzM4+1
               end
              end
            end;

        case plzM1 of
         1: begin
             LbMannschaft4.Caption:=m1;
             label8.Caption:=floattostr(puM1);
            end;
         2: begin
             LbMannschaft3.Caption:=m1;
             label7.Caption:=floattostr(puM1);
            end;
         3: begin
             LbMannschaft2.Caption:=m1;
             label6.Caption:=floattostr(puM1);
            end;
         4: begin
             LbMannschaft1.Caption:=m1;
             label5.Caption:=floattostr(puM1);
            end;
        end;

        case plzM2 of
         1: begin
             LbMannschaft4.Caption:=m2;
             label8.Caption:=floattostr(puM2);
            end;
         2: begin
             LbMannschaft3.Caption:=m2;
             label7.Caption:=floattostr(puM2);
            end;
         3: begin
             LbMannschaft2.Caption:=m2;
             label6.Caption:=floattostr(puM2);
            end;
         4: begin
             LbMannschaft1.Caption:=m2;
             label5.Caption:=floattostr(puM2);
            end;
        end;

        case plzM3 of
         1: begin
             LbMannschaft4.Caption:=m3;
             label8.Caption:=floattostr(puM3);
            end;
         2: begin
             LbMannschaft3.Caption:=m3;
             label7.Caption:=floattostr(puM3);
            end;
         3: begin
             LbMannschaft2.Caption:=m3;
             label6.Caption:=floattostr(puM3);
            end;
         4: begin
             LbMannschaft1.Caption:=m3;
             label5.Caption:=floattostr(puM3);
            end;
        end;

        case plzM4 of
         1: begin
             LbMannschaft4.Caption:=m4;
             label8.Caption:=floattostr(puM4);
            end;
         2: begin
             LbMannschaft3.Caption:=m4;
             label7.Caption:=floattostr(puM4);
            end;
         3: begin
             LbMannschaft2.Caption:=m4;
             label6.Caption:=floattostr(puM4);
            end;
         4: begin
             LbMannschaft1.Caption:=m4;
             label5.Caption:=floattostr(puM4);
            end;
        end;
end;

Kroko1999 14. Dez 2005 20:19

Re: Overload??
 
TabelleA ist doppelt!

kleiner Unwissender 14. Dez 2005 20:21

Re: Overload??
 
oh ich habs gefunden!
danke, 2mal gleich procedure, naja passiert^^

aber danke für die schnelle hilfe!!!!

Kroko1999 14. Dez 2005 20:21

Re: Overload??
 
Zitat:

Zitat von Airblader
@Kroko

Vllt. irre ich mich, aber die 1. Prozedur muss doch ohne overload gekennzeichnet werden, oder? ;)

air

Du irrst Dich probiere es aus, es müssen alle gleichen Proc's als overload deklariert werden

Airblader 14. Dez 2005 20:22

Re: Overload??
 
Zitat:

Zitat von Kroko1999
Zitat:

Zitat von Airblader
@Kroko

Vllt. irre ich mich, aber die 1. Prozedur muss doch ohne overload gekennzeichnet werden, oder? ;)

air

Du irrst Dich probiere es aus, es müssen alle gleichen Proc's als overload deklariert werden

Wie gesagt, ich war mir nicht mehr ganz sicher ;)
Irgendwas habe ich da dennoch im Hinterkopf :gruebel: Könnte es vllt. bei override gewesen sein?

Der_Unwissende 14. Dez 2005 20:33

Re: Overload??
 
Zitat:

Zitat von Airblader
Wie gesagt, ich war mir nicht mehr ganz sicher ;)
Irgendwas habe ich da dennoch im Hinterkopf :gruebel: Könnte es vllt. bei override gewesen sein?

Ja, bei Override musst du nur die Methode markieren, die gerade ihren Vorgänger überschreibt. Sonst müsstest du den Code deines Vorfahrens editieren und das wäre kein hübscher Ansatz.
Bei overload möchte Delphi hingegen sicher gehen, dass du auch weißt, dass eine Methode doppelt deklariert wurde (mit unterschiedlichen Parametern) und deswegen musst du es an jede schreiben.

Gruß Der (nicht kleine?) Unwissende


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz