![]() |
Delphi-Version: 7
Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Guten Tag zusammen,
habe gerade das folgende Programm geschrieben:
Delphi-Quellcode:
procedure TForm1.AmpelUmschaltenClick(Sender: TObject);
begin if imAmpelRot.Visible=True then begin imAmpelRot.Visible:=False imAmpelRotGelb.Visible:=True end else if imAmpelRotGelb.Visible=True then begin imAmpelRotGelb.Visible:=False imAmpelGruen.Visible:=True end else if ImAmpelGruen.Visible=True then begin ImAmpelGruen.Visible:=False ImAmpelGelb.Visible:=True end else ImAmpelGelb.Visible:=False ImAmpelRot.Visible:=True end; end. Das ist halt so ne Ampel die die ganze Zeit umgeschaltet werden soll aber ich rall nicht wierklich was an dem Programm falsch sein soll. Kann mir einer von euch sagen, wie ich das ändern soll? Danke im Voraus! |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Was bekommst du denn als Fehler?
Kleiner Tipp nebenbei
Delphi-Quellcode:
teste niemals auf True oder False wie du es machst sondern so
if
imAmpelRot.Visible=True then
Delphi-Quellcode:
Siehe
if imAmpelRot.Visible then
Begin ... end ![]() Edit: ebenso vergisst du ";" zu setzen zwischen deinen Begin und End's
Delphi-Quellcode:
then begin
ImAmpelGruen.Visible:=False; <<< besser ImAmpelGelb.Visible:=True; end [DELPHI]
Delphi-Quellcode:
procedure TForm1.AmpelUmschaltenClick(Sender: TObject);
begin if imAmpelRot.Visible then begin imAmpelRot.Visible:= False; imAmpelRotGelb.Visible:= True; end else if imAmpelRotGelb.Visible then begin imAmpelRotGelb.Visible:=False; imAmpelGruen.Visible:=True; end else if ImAmpelGruen.Visible then begin ImAmpelGruen.Visible:=False; ImAmpelGelb.Visible:=True; end else Begin ImAmpelGelb.Visible:=False; ImAmpelRot.Visible:=True; end; end; |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Und formatieren den Quellcode ;)
Delphi-Quellcode:
Durch das Einrücken wird der Fehler direkt sichtbar ;)
procedure TForm1.AmpelUmschaltenClick(Sender: TObject);
begin if imAmpelRot.Visible then begin imAmpelRot.Visible := False; imAmpelRotGelb.Visible := True; end else if imAmpelRotGelb.Visible then begin imAmpelRotGelb.Visible := False; imAmpelGruen.Visible := True; end else if ImAmpelGruen.Visible then begin ImAmpelGruen.Visible := False; ImAmpelGelb.Visible := True; end else ImAmpelGelb.Visible := False; ImAmpelRot.Visible:=True; // Sicher dass das so gewollt ist? end; end. |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
|
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Auf jeden Fall schon einmal vielen Dank für die zahlreichen Antworten, aber ich habe es mit euren Quelltexten versucht, nur das geht auch i.wie nicht. Könnt ihr mir vielleicht die akuten Fehler nennen?
Also Delphi sagt immer: [Error] Unit1.pas(36): Not enough actual parameters [Error] Unit1.pas(37): Not enough actual parameters [Error] Unit1.pas(38): Not enough actual parameters [Error] Unit1.pas(44): Not enough actual parameters [Error] Unit1.pas(45): Not enough actual parameters [Error] Unit1.pas(46): Not enough actual parameters [Warning] Unit1.pas(79): Text after final 'END.' - ignored by compiler [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' Den Quelltext dazu habt ihr ja! Danke wieder einmal im Voraus! |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Aber nicht den kompletten. Was steht den in den angemahnten Zeilen?
|
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Gerade mal spaßeshalber probiert.
Einfachen meinen QuellText vom Post oben kopieren und es klappt, es sei denn du hast noch mehr stehen, welches meinen Code ungültig machen könnte? |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Das ist zuerst einmal sehr nett, dass ihr euch alle so eine Mühe gebt mein Problem zu lösen. Ich stell mal den ganzen Quelltext rein, dann ist es euch vielleicht klarer!
u
Delphi-Quellcode:
nit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; type TForm1 = class(TForm) AmpelEinschalten: TButton; AmpelAusschalten: TButton; AmpelUmschalten: TButton; ImAmpelRotGelb: TImage; ImAmpelRot: TImage; ImAmpelGruen: TImage; ImAmpelGelb: TImage; procedure AmpelEinschaltenClick(Sender: TObject); procedure AmpelAusschaltenClick(Sender: TObject); procedure AmpelUmschaltenClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.AmpelEinschaltenClick(Sender: TObject); begin TForm1.AmpelEinschaltenClick.Visible:=False; TForm1.AmpelAusschaltenClick.Visible:=True; TForm1.AmpelUmschaltenClick.Visible:=True; ImAmpelRot.Visible:=True; end; procedure TForm1.AmpelAusschaltenClick(Sender: TObject); begin TForm1.AmpelEinschaltenClick.Visible:=True; TForm1.AmpelAusschaltenClick.Visible:=False; TForm1.AmpelUmschaltenClick.Visible:=False; ImAmpelRot.Visible:=False; ImAmpelGruen.Visible:=False; ImAmpelGelb.Visible:=False; ImAmpelRotGelb.Visible:=False; end; procedure TForm1.AmpelUmschaltenClick(Sender: TObject); begin if imAmpelRot.Visible then begin imAmpelRot.Visible := False; imAmpelRotGelb.Visible := True; end else if imAmpelRotGelb.Visible then begin imAmpelRotGelb.Visible := False; imAmpelGruen.Visible := True; end else if ImAmpelGruen.Visible then begin ImAmpelGruen.Visible := False; ImAmpelGelb.Visible := True; end else begin ImAmpelGelb.Visible := False; ImAmpelRot.Visible:=True; end; end; |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Bitte verwende Delphi-Tags für deinen Quellcode.
Und was bekommst du für Fehlermeldungen und wo? |
AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
Bitte verwende das nächste Mal passende Code-Tags ( in diesem Fall Delphi) in dem du den Quelltext im Editor markierst und dann das Code-Icon ( bzw. Delphi-Icon) anklickst.
Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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