Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch? (https://www.delphipraxis.net/154442-delphi-anfaenger-mache-ich-mit-diesem-if-satz-falsch.html)

Timm3r 10. Sep 2010 17:39

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!

youuu 10. Sep 2010 17:42

AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
 
Was bekommst du denn als Fehler?

Kleiner Tipp nebenbei

Delphi-Quellcode:
if
imAmpelRot.Visible=True

then
teste niemals auf True oder False wie du es machst sondern so

Delphi-Quellcode:
if imAmpelRot.Visible then
Begin
  ...
end
SieheHier

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;

jfheins 10. Sep 2010 17:47

AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
 
Und formatieren den Quellcode ;)

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
         ImAmpelGelb.Visible := False;
      
      ImAmpelRot.Visible:=True; // Sicher dass das so gewollt ist?
   end;              
end.
Durch das Einrücken wird der Fehler direkt sichtbar ;)

mkinzler 10. Sep 2010 17:58

AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
 
CrossPost DF

Timm3r 10. Sep 2010 18:34

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!

mkinzler 10. Sep 2010 18:36

AW: Delphi-Anfänger - Was mache ich mit diesem if-Satz falsch?
 
Aber nicht den kompletten. Was steht den in den angemahnten Zeilen?

youuu 10. Sep 2010 19:02

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?

Timm3r 10. Sep 2010 19:32

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;

Luckie 10. Sep 2010 19:44

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?

mkinzler 10. Sep 2010 19:45

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 13:11 Uhr.
Seite 1 von 2  1 2      

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