![]() |
noob fragen (if schleife/neue procedur)
:oops: hallo, ich weis das ich in letzter zeit vieles frage aber ich finds nicht herraus.ich suche immer in der hilfe und in meinem buch.
so zum problehm: irgendwie erlaubt er folgendes nicht: Zitat:
wie mache ich das und wie füre ich diese aus |
Re: noob fragen (if schleife/neue procedur)
Hallo,
Zitat:
Wenn Waffen gleich 15 ist und kleiner als garnichts? Was ist das für ein Satzbau?! :shock: Also, if Waffen = 15 then, oder if Waffen < 15 then. Ansonsten
Delphi-Quellcode:
Ist es denn so schwer in der Hilfe nach if, then und else zu suchen?
if Waffen = 15 then
begin //Code wenn Waffen gleich 15 //Code wenn Waffen gleich 15 //Code wenn Waffen gleich 15 end else begin //Code wenn Waffen ungleich 15 //Code wenn Waffen ungleich 15 //Code wenn Waffen ungleich 15 end; Grüsse, Daniel :hi: |
ne aber das problehm war ja eiogentlic da mit der 15.
also ich habs jetzt so :
Delphi-Quellcode:
:( geht aber nicht :(
if Waffen1 = 15 then
begin //text im memofeld für spieler 1 memo_infotext.text:='Spieler 1 hat den Schildschmetterer abgefeuert und verliert 15% seiner Waffenpunkte.'; //waffenprozente wegzählen gauge_waffen_1.Progress:=gauge_waffen_1.Progress-5; Waffen1:=gauge_waffen_1.Progress; label_info_Waffen_1.Caption:=IntToStr(Waffen1); //schaden in anzeigen Schaden1:=random(39); Schildschaden1:=Schaden1; gauge_schild_2.Progress:=gauge_schild_2.Progress - Schildschaden1; Schild2:=gauge_schild_2.Progress; label_info_Schild_2.Caption:=IntToStr(Schild2) end else waffen2 <15 then begin label_info_1.Caption:='Sie haben keine Waffenpunkte mehr für diese Aktion'; end end; |
Hallo,
dann sag uns doch bitte was nicht geht. Und was Du erreichen möchtest. Geht es zur RunTime nicht, oder zur DesignTime? Lässt sichs also kompilieren oder nicht? Wenn nicht, was sagt denn der kluge Kompiler? Grüsse, Daniel :hi: |
ahhh sorry habs vergessen;)
Zitat:
|
Beim vorletzten end fehlt das Semikolon(;).
Das Semikolon nur weglassen wenn das end vor einem else steht. |
Nach dem vorletzten end fehlt ein Semikolon. Das macht schon ein paar Meldungen weg. ;)
Ausserdem solltest Du die gesamte Prozedur posten, also samt der Zeile mit procedure am Anfang. Grüsse, Daniel :hi: |
und bei
Delphi-Quellcode:
fehlt auch ein Semikolon.
label_info_Schild_2.Caption:=IntToStr(Schild2)
|
Zitat:
Grüsse, Daniel :hi: |
hab mal alles gemacht trtzdem sinds noch fehler drin :( das fette ist das mit der if scleife.
Delphi-Quellcode:
folgende fehlermeldungen:
//-----------------------------------------------------------------------------
// * Erstellt von Gregor Wegberg * // * [email]egoweb@swissonline.ch[/email] * // * [url]www.feuerfeld.ch[/url] * //----------------------------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Gauges, jpeg; type TForm1 = class(TForm) spieler_eins: TGroupBox; label_leben: TLabel; gauge_leben_1: TGauge; Label1: TLabel; gauge_waffen_1: TGauge; Label2: TLabel; gauge_schild_1: TGauge; Panel1: TPanel; button_waffe_schildschmetterer_1: TButton; button_laser_1: TButton; button_computervirus_1: TButton; spieler_zwei: TGroupBox; Label3: TLabel; gauge_leben_2: TGauge; gauge_waffen_2: TGauge; Label4: TLabel; gauge_schild_2: TGauge; Label5: TLabel; Panel2: TPanel; button_schildschmetterer_2: TButton; button_laser_2: TButton; button_computervirus_2: TButton; memo_infotext: TMemo; Label6: TLabel; label_info_1: TLabel; label_info_2: TLabel; label_info_leben_1: TLabel; label_info_Waffen_1: TLabel; label_info_Schild_1: TLabel; label_info_leben_2: TLabel; label_info_waffen_2: TLabel; label_info_schild_2: TLabel; sauerstoff_1: TPanel; sauerstoff_2: TPanel; label_sauerstoff_1: TLabel; label_sauerstoff_2: TLabel; procedure FormCreate(Sender: TObject); procedure button_waffe_schildschmetterer_1Click(Sender: TObject); procedure button_schildschmetterer_2Click(Sender: TObject); procedure button_laser_1Click(Sender: TObject); procedure button_laser_2Click(Sender: TObject); procedure button_computervirus_1Click(Sender: TObject); procedure button_computervirus_2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Leben1,Waffen1,Schild1,Leben2,Waffen2,Schild2,Schaden1,Schaden2,Schildschaden1,Schildschaden2,Lebenschaden1,Lebenschaden2:integer; implementation uses Math, DateUtils; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin //-------------------------------------------- //vorberreitung memo_infotext.Text:=''; label_info_1.Caption:='Wichtige Informationen'; label_info_2.Caption:='Wichtige Informationen'; Randomize; //variabeln für spieler 1 Leben1:=200; Waffen1:=50; Schild1:=200; //variabeln für spieler 2 Leben2:=200; Waffen2:=50; Schild2:=200; // Variabeln in die Labels einsetzen label_info_leben_1.Caption:=IntToStr(Leben1); label_info_leben_2.Caption:=IntToStr(Leben2); label_info_Waffen_1.Caption:=IntToStr(Waffen1); label_info_Waffen_2.Caption:=IntToStr(Waffen2); label_info_Schild_1.Caption:=IntToStr(Schild1); label_info_Schild_2.Caption:=IntToStr(Schild2); //---------------------------------------- end; //-----------------------------------------------------------------------[b] procedure TForm1.button_waffe_schildschmetterer_1Click(Sender: TObject); if Waffen1 = 15 then begin //text im memofeld für spieler 1 memo_infotext.text:='Spieler 1 hat den Schildschmetterer abgefeuert und verliert 15% seiner Waffenpunkte.'; //waffenprozente wegzählen gauge_waffen_1.Progress:=gauge_waffen_1.Progress-5; Waffen1:=gauge_waffen_1.Progress; label_info_Waffen_1.Caption:=IntToStr(Waffen1); //schaden in anzeigen Schaden1:=random(39); Schildschaden1:=Schaden1; gauge_schild_2.Progress:=gauge_schild_2.Progress - Schildschaden1; Schild2:=gauge_schild_2.Progress; label_info_Schild_2.Caption:=IntToStr(Schild2); end; else waffen2 <15 then begin label_info_1.Caption:='Sie haben keine Waffenpunkte mehr für diese Aktion'; end end;[/b] //----------------------------------------------------------------------- procedure TForm1.button_schildschmetterer_2Click(Sender: TObject); begin //text im memofeld für spieler 2 memo_infotext.Text:='Spieler 2 hat den Schildschmetterer abgefeuert und verliert 15% seiner Waffenpunkte'; //waffenprozente wegzählen gauge_waffen_2.Progress:=gauge_waffen_2.Progress-5; waffen2:=gauge_waffen_2.Progress; label_info_Waffen_2.Caption:=IntToStr(Waffen2); //schaden Schaden2:=random(39); Schildschaden2:=Schaden2; gauge_schild_1.Progress:=gauge_schild_1.Progress - Schildschaden2; Schild1:=gauge_schild_1.Progress; label_info_Schild_1.Caption:=IntToStr(Schild1); end; //----------------------------------------------------------------------- procedure TForm1.button_laser_1Click(Sender: TObject); begin //text im memofeld spieler 1 memo_infotext.Text:='Spieler 1 hat seinen Laser eingestellt und schiesst mit voller Kraft auf den Feind'; //waffenprozente wegzählen gauge_waffen_1.Progress:=gauge_waffen_1.Progress-2; waffen1:=gauge_waffen_1.Progress; label_info_Waffen_1.Caption:=IntToStr(Waffen1); //schaden Schaden1:=random(5)+3; schildschaden1:= Schaden1-2; Lebenschaden1:= schaden1-3; gauge_leben_2.Progress:=gauge_leben_2.Progress - Lebenschaden1; gauge_schild_2.Progress:=gauge_schild_2.Progress - Schildschaden1; Schild2:=gauge_schild_2.Progress; Leben2:=gauge_leben_2.Progress; label_info_leben_2.Caption:=IntToStr(Leben2); label_info_Schild_2.Caption:=IntToStr(Schild2); end; //----------------------------------------------------------------------- procedure TForm1.button_laser_2Click(Sender: TObject); begin //text im memofeld spieler 2 memo_infotext.Text:='Spieler 2 hat an seinem Raumschiff einen Laser! Dieser trift den Gegner mit voller Wucht!'; //waffenprozente gauge_waffen_2.Progress:=gauge_waffen_2.Progress-2; waffen2:=gauge_waffen_2.Progress; label_info_Waffen_2.Caption:=IntToStr(Waffen2); //schaden Schaden2:=random(5)+3; schildschaden2:= Schaden2-2; Lebenschaden2:= schaden2-3; gauge_leben_1.Progress:=gauge_leben_1.Progress - Lebenschaden2; gauge_schild_1.Progress:=gauge_schild_1.Progress - Schildschaden2; Schild1:=gauge_schild_1.Progress; Leben1:=gauge_leben_1.Progress; label_info_leben_1.Caption:=IntToStr(Leben1); label_info_Schild_1.Caption:=IntToStr(Schild1); end; //----------------------------------------------------------------------- procedure TForm1.button_computervirus_1Click(Sender: TObject); begin //text im memofeld spieler 1 memo_infotext.Text:='Spieler 1 ist ein geübter Hacker und Computerspezialist! Sein Virus schafft sogar den neuesten und sichersten Computer platt zu machen'; //Waffenprozent gauge_waffen_1.Progress:=gauge_waffen_1.Progress-10; waffen1:=gauge_waffen_1.Progress; label_info_Waffen_1.Caption:=IntToStr(Waffen1); //Schaden schaden1:=Random(39)+1; Lebenschaden1:=Schaden1-1; gauge_leben_2.Progress:=gauge_leben_2.Progress-Lebenschaden1; Leben2:=gauge_leben_2.Progress; label_info_leben_2.Caption:=IntToStr(Leben2); end; //----------------------------------------------------------------------- procedure TForm1.button_computervirus_2Click(Sender: TObject); begin //text memofeld spieler 2 memo_infotext.Text:='Spieler 2 hat auf dem Intergalactischem Markt für Schwarzwaren einen Tödlichen Virus ersteigert!'; //waffenprozent gauge_waffen_2.Progress:=gauge_waffen_2.Progress-10; waffen2:=gauge_waffen_2.Progress; label_info_Waffen_2.Caption:=IntToStr(Waffen2); //Schaden schaden2:=Random(39)+1; Lebenschaden2:=Schaden2-1; gauge_leben_1.Progress:=gauge_leben_1.Progress-Lebenschaden2; Leben1:=gauge_leben_1.Progress; label_info_leben_1.Caption:=IntToStr(Leben1); end; //---------------------------------------------------------------------- end. Zitat:
|
Außerhalb von der if Abfrage fehlt das begin von deiner procedure
|
hab alle fehler beseitigt :)
|
dann geht wohl jetzt alles ?
|
perfekter als perfekt :p
|
An deiner Quelltexformatierung musst du aber noch arbeiten.
Richtiger Code sieht in etwa so aus, dient vor allem der Lesbarkeit für dich und andere:
Delphi-Quellcode:
Sinn und Zweck des Codes sind ohne jede Bedeutung aber getrachtet es als mein geistiges Eigentum :mrgreen:
procedure TForm1.Rechne(Laenge, Winkel, Breite: Extended;
x: Boolean; Anzahl : Integer; Liste:TStrings); var Wert : Extended; i : Integer; function GetValue( Length, x : Extended):Extended; begin Winkel := degtorad(Winkel); result := Breite * tan(Winkel); end; begin Wert := GetValue(Laenge,Winkel); liste.Clear; Liste.Add('1. Bahn: ' + (FloattoStrf(Laenge,ffNumber,3,2))); for i := 0 to Anzahl -2 do begin if x then laenge := laenge - wert else laenge := laenge + wert; Liste.Add((Inttostr(i+2))+'. Bahn: ' + (FloattoStrf(Laenge,ffnumber,3,2))); end; end; |
ich habe noch ganz oben wegen der eigenen procedur gefragt? wie geht das?
|
Neue Frage, neuer Thread.
Geschlossen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 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