Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Einfügen von Prozeduren (https://www.delphipraxis.net/111871-einfuegen-von-prozeduren.html)

Namenloser 10. Apr 2008 21:36

Re: Einfügen von Prozeduren
 
[ot]
Zitat:

Zitat von TonyR
Ich habe mir grad deinen Source runtergeladen und bin erschüttert ...
ich schätze die Fehleranzahl auf 30 -.-

Hast du diesen Quellcode erstellt? Wenn ja wie hast du dir das alles gedacht???

Bitte lese dir sämtliche Einsteiger Tutorials durch und versuch dich als erstes an kleinen Projekten, im Moment kann dir Keiner hier helfen.

Ach, am Anfang macht jeder Fehler. Und seitdem ich in meinem Infokurs gesehen habe, wie einer ein Struktogramm aus Labels zusammengebaut hat, und sich gewundert hat, dass es nicht funktioniert, erschüttert mich so schnell nichts mehr :lol:
[/ot]

Cloudwalk 10. Apr 2008 21:43

Re: Einfügen von Prozeduren
 
ich brauch nur die Fragen beantwortet, wie man die Procedur im "head" aufbaut
den Prozedurkopf schreibt und die Prozeduren dann wieder aufruft...

Andreas L. 10. Apr 2008 23:19

Re: Einfügen von Prozeduren
 
Delphi-Quellcode:
procedure Ziehen(Zug, Wid: Integer);
begin
  zug := Dec(Zug); //zieht 1 ab
  if zug = 0 then
  begin
    if wid = 1 then
    begin
      wid := 2;
      spielnachricht.caption := 'Spieler 2 ist an der Reihe.';
      zug := 5;
    end
    else
    begin
      wid := 1;
      spielnachricht.caption := 'Spieler 1 ist an der Reihe.';
      zug := 5;
    end;
  end;
end;

procedure TForm11.Button1Click(Sender: TObject);
begin
  Ziehen(2, 5);
end;

Muetze1 10. Apr 2008 23:37

Re: Einfügen von Prozeduren
 
Grundlegendes Problem was ich sehe: Du hast eine globale Variable namens "Zug" und eine Methode namens "Zug". Diese hat auch noch ein Argument namens "Zug".

Probleme dabei: Der Compiler weiss nicht, was du nun meinst. Wenn es z.B. eine Funktion wäre, dann würde der Name Zug eine weitere Bedeutung in der Funktion bekommen: Zum zuweisen des Rückgabewertes. Dies ist zur Kompatibilität zu Turbo Pascal weiterhin möglich.

Bei Argumenten schreiben viele ein Buchstaben als Präfix in den Namen, damit man erkennt, dass es ein Argument ist (meistens ein A). Auch lokale Variablen bekommen einen Präfix, da es sonst auch mit Properties etc. nicht eindeutig wäre (meist ein kleines L, für "local").

Auch würde ich dir empfehlen diese ganzen globalen Variablendeklarationen direkt in die Form zu verschieben (in den private Abschnitt). Dort nutzt man meist auch einen Präfix um diese zu unterscheiden. Borland hat dort ein kleines F genutzt ("field") und das wurde von vielen adaptiert.

Naja, nur mal so als Anmerkung...

gmc616 11. Apr 2008 01:19

Re: Einfügen von Prozeduren
 
Ich denke mal eine Fehlermeldung wird unter anderem lauten
Code:
[Pascal Fehler] : E2065 Ungenügende Forward- oder External-Deklaration: 'TForm1.Zug'
Das heißt, du hast dem Programm gesagt, dass TForm1 eine Methode names 'Zug' besitzt.
Dann mußt du natürlich diese Methode auch implementieren. 'TForm1.' hast du im Implementation-Teil vor 'Zug (...)' vergessen.

Das du unter anderem auch 3 "Buffen" namens 'Zug' in deinem Code stehen hast, wurde dir ja schon nahe gelegt.

Beispiel:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
      ...
    private
      ...
      procedure MachZug(var AZug, AWid:integer);
      ...
    public
      ...
end;

var
  ... gZug ... : Integer;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MachZug(var AZug,AWid:integer);
begin
  ...
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Seite 2 von 2     12   

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