Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bilderschleife (https://www.delphipraxis.net/156778-bilderschleife.html)

Bellla 14. Dez 2010 19:27

Bilderschleife
 
Hallo, habe ein Problem
Ich möchte ein auge als anfangsbild es gibt mehrere Buttons.
fangen wir mit dem ersten an. drückt man den ersten button sollen fotos kommen.
drückt maneinen anderen button erscheinen andere bilder
ich habe so angefangen



Code:
var
  Form1: TForm1;
  status:integer;
  i:integer;

implementation

{$R *.dfm}

procedure TForm1.B1Click(Sender: TObject);
begin
if status=0 then
            begin
            for i:=0 to 1000 do ;
            image2.visible:=true;
            if image2.Visible then

            begin;
            image1.visible:=false;
            status:=1;
            exit;
            end;
            end


            else if status=2 then
            begin
            for i:=0 to 1000 do ;
            if image3.Visible then

            begin;
            image2.visible:=false;
            status:=2;
            end;
            end



            else if status=3then
            begin
            for i:=0 to 1000 do ;
            if image4.Visible then

            begin;
            image3.visible:=false;



            status:=4;
            exit;
            end;


end;
end;

end.
ich komme nicht weiter :(

mkinzler 14. Dez 2010 19:40

AW: Bilderschleife
 
Was soll des passieren? So funktioniert es jedenfalls nicht!
Und rücke mal deinen Code richtig ein, so dass du siehst welcher Code jeweils einen Block bildet

Bellla 14. Dez 2010 19:42

AW: Bilderschleife
 
hätte ich ne ahnung von sowas...wie geht es dann??

mkinzler 14. Dez 2010 19:44

AW: Bilderschleife
 
Wie geht was?

Bellla 14. Dez 2010 19:47

AW: Bilderschleife
 
das was ich machen will also man hat ein anfangsbild sagen wir image1
ich habe jetzt da 5 buttons drauf.
auf jeden button möchte ich ungefähr 3 bilder unterbringen. wenn ich button1 drücke kommen die ersten 3 bilder, wenn ich jetzt den button2 drücke verschwinden die 3 bilder und es kommen 3 neue.



bitte hilf mir es ist so wichtig. ich kann das nicht

mkinzler 14. Dez 2010 19:58

AW: Bilderschleife
 
Ich würde Case satt der verschachtelten Ifs nehmen.
Delphi-Quellcode:
var
  Form1: TForm1;
  status:integer;
  i:integer;

implementation

{$R *.dfm}

procedure TForm1.B1Click(Sender: TObject);
begin
    case status of
        0:
        begin
            sleep ( 500); //Halbe Sekunde
            image2.visible:=true;
            //if image2.Visible then -> überflüssig, weil du dies ja gerde explizit gemacht hast
            image1.visible:=false;
            status:=1;
        end;
        2:
        begin
            sleep(500);
            image2.visible:=false:
            status:=2;
        end;
        ...
    end;
end;

end.

Bellla 14. Dez 2010 20:00

AW: Bilderschleife
 
ich versuchs mal danke

Bellla 14. Dez 2010 20:07

AW: Bilderschleife
 
ich hab jetzt
Code:
var
  Form1: TForm1;
  status:integer;
  i:integer;

implementation

{$R *.dfm}

procedure TForm1.B1Click(Sender: TObject);
begin
 case status of
        0:
begin
sleep ( 500);
image2.visible:=true;
image1.visible:=false;
status:=1;
end;

2:
begin
sleep(500);
image2.visible:=false;
image3.visible:=true;
status:=2;
end;

3:
begin
sleep(500);
image3.visible:=false;
image4.visible:=true;
status:=3;

end;

end;
end;
end.
aber nach wenn das 2. bild erscheint und man nochmal drückt passiert nichts warum?

implementation 14. Dez 2010 20:10

AW: Bilderschleife
 
Dann passiert doch was. Allerdings das gleiche wie beim ersten Drücken, weil der Status gleich ist.

Bellla 14. Dez 2010 20:11

AW: Bilderschleife
 
nein es bleibt beim 2.bild :( was soll ich machen

implementation 14. Dez 2010 20:12

AW: Bilderschleife
 
Delphi-Quellcode:
status:=1;
Dir diese Zeile anschauen.
Überlege: Was bewirkt sie?
Was passiert bei Status 1?

Namenloser 14. Dez 2010 20:14

AW: Bilderschleife
 
Okay, fangen wir mal vorne an:
Delphi-Quellcode:
for i:=0 to 1000 do ;
Was zur Hölle ist das? Eine Schleife, die 1001x nichts ausführt? Weißt du überhaupt, was du da machst?

Außerdem ist deine Problembeschreibung absolut unpräzise. Beschreibe doch mal klar und deutlich, was du willst, und was stattdessen passiert. Und zwar so, dass jemand, der keine Vorahnung hat, es versteht. Schließlich willst du, dass andere dir helfen -- da ist es ja wohl das mindeste, sich wenigstens bei der Problembeschreibung Mühe zu geben. Vor allem wenn es "so wichtig11!1™" ist.

implementation 14. Dez 2010 20:16

AW: Bilderschleife
 
Zitat:

Zitat von NamenLozer (Beitrag 1068495)
? Eine Schleife, die 1000x nichts ausführt?

1001x :P

Ich vermute mal, das soll eine Verzögerung bewirken. Deshalb hat mkinzler ja Sleep(500) draus gemacht.

Bellla 14. Dez 2010 20:20

AW: Bilderschleife
 
also nochmal. ich brauche ein projekt über mich selbst.
ich habe fotos aus meiner kindheit....
ich habe angefangen indem ich ein bild von einem auge reingemacht habe. das soll der einblick in mein leben sein.
auf diesem auge sieht man 5 buttons.
drücke ich einen dieser buttons sollen 3 neue bilder erscheinen, also muss das auge weg sein.
ich muss auch i-wie zum auge zurückkommen per klick.
wenn ich jetzt ein anderes button drücke kommen 3 neue bilder.
wie diese bilder erschein könnt ihr euch aussuchen.
gruß

Namenloser 14. Dez 2010 20:23

AW: Bilderschleife
 
Wie sollen die 3 Bilder denn erscheinen? Untereinander, nebeneinander, übereinander, hintereinander...?

implementation 14. Dez 2010 20:23

AW: Bilderschleife
 
Zitat:

Zitat von Bellla (Beitrag 1068498)
wie diese bilder erschein könnt ihr euch aussuchen.

Du schreibst das Programm, du solltest es dir aussuchen.
Und wenn du ein Problem hast, erkläre bitte genau, wo es liegt, dann können wir dir helfen.

Wenn du auf unsere Beiträge eingehen würdest, würde es uns auch einfacher fallen.

mkinzler 14. Dez 2010 20:24

AW: Bilderschleife
 
Du änderst den Status auch nicht mehr!

Btw. Ich hatte den Code so schön eingerückt. Aber scjeinbar scheint es dich zu stören, wenn man auf einen Blick sieht, was zusammen gehört.
Auch die Verwendung von passenden Tags (Delphi-Tag) würde die Lesbarkeit verbessern.

Bellla 14. Dez 2010 20:24

AW: Bilderschleife
 
die bilder sollen nebeneinander sein

Namenloser 14. Dez 2010 20:26

AW: Bilderschleife
 
Und was passiert stattdessen?

implementation 14. Dez 2010 20:28

AW: Bilderschleife
 
Zitat:

Zitat von NamenLozer (Beitrag 1068505)
Und was passiert stattdessen?

Zitat:

Zitat von Bellla
aber nach wenn das 2. bild erscheint und man nochmal drückt passiert nichts warum?

Und die Ursache wurde bereits genannt:
Zitat:

Zitat von mkinzler (Beitrag 1068502)
Du änderst den Status auch nicht mehr!


Bellla 14. Dez 2010 20:30

AW: Bilderschleife
 
ok wie soll ich den status ändern

implementation 14. Dez 2010 20:30

AW: Bilderschleife
 
Delphi-Quellcode:
status := <NeuerStatus>;

mkinzler 14. Dez 2010 20:30

AW: Bilderschleife
 
Auf jedenfall sollte er sich ändern, sonst landest du immer im selben Case

Bummi 14. Dez 2010 20:34

AW: Bilderschleife
 
@mkinzler
er hat den Fehler in Deinem Beispiel weiter ausgebaut. :-D
Delphi-Quellcode:
        2:
        begin
            sleep(500);
            image2.visible:=false:
            //status:=2; falsch
            Status:=3;
        end;

Namenloser 14. Dez 2010 20:37

AW: Bilderschleife
 
Zitat:

Zitat von implementation (Beitrag 1068506)
Zitat:

Zitat von NamenLozer (Beitrag 1068505)
Und was passiert stattdessen?

Zitat:

Zitat von Bellla
aber nach wenn das 2. bild erscheint und man nochmal drückt passiert nichts warum?


Gut, hab ich übersehen. Aber wenn ich mir als potentieller Helfer solche wichtigen Informationen mühsam aus der letzten Zeile eines Beitrages heraussuchen muss, die man hier recht leicht übersieht, ist das auch nicht so wie es sein soll.

Eine ordentliche Fehlerbeschreibung ist wie folgt aufgebaut:
  1. Was will ich tun
  2. Wie habe ich es probiert
  3. Was passiert/Welche Fehler treten auf?
Das alles zusammen, schön hintereinander aufgereiht, möglichst in Absätze gegliedert, im Eingangspost. Hier war zwar immerhin der 2. Punkt weitestgehend erfüllt, der auch gerne vernachlässigt wird (also schon mal besser als nichts), aber der 1. und 3. eben nur unzureichend. Das versuche ich dem OP gerade deutlich zu machen.

mkinzler 14. Dez 2010 20:38

AW: Bilderschleife
 
Zitat:

Zitat von Bummi (Beitrag 1068513)
@mkinzler
er hat den Fehler in Deinem Beispiel weiter ausgebaut. :-D
Delphi-Quellcode:
        2:
        begin
            sleep(500);
            image2.visible:=false:
            //status:=2; falsch
            Status:=3;
        end;

Das war sein Beispiel. Ich ahtte das nur übersehen :oops:

Bellla 14. Dez 2010 20:41

AW: Bilderschleife
 
jaaaaaaaaaaaaaaaa es klappppppppppppppppppppt jetzt danke danke.

Bellla 14. Dez 2010 20:46

AW: Bilderschleife
 
juhu

himitsu 14. Dez 2010 20:47

AW: Bilderschleife
 
Delphi-Quellcode:
if status = 0 then
begin
  image2.visible := true;
  if image2.visible then
  begin;
    image1.visible := false;
    status := 1;
  end;
end

else if status = 2 then
begin
  if image3.visible then
  begin;
    image2.visible := false;
    status := 2;
  end;
end

else if status = 3 then
begin
  if image4.visible then
  begin;
    image3.visible := false;
    status := 4;
  end;
end;
hab mal alles Unwichtige weggelassen

und dann nochmal alles gekürzt
Delphi-Quellcode:
if status = 0 then
begin
  image2.visible := true;
  image1.visible := false;
  status := 1;
end

else if (status = 2) and image3.visible then
begin
  image2.visible := false;
  status := 2;
end

else if (status = 3) and image4.visible then
begin
  image3.visible := false;
  status := 4;
end;
Es wurde nicht grundlos auf eine ordentliche Codeformatierung hingewiesen.
Was soll denn bei Status 1 passieren?
Wozu sollen die For-Schleifen gut sein?
Du setzt vieles nur auf False (visible), aber fragst es denoch auf True ab, was ja nie eintritt.

Case oder If, macht hierbei keinen Unterschied, da dieses nur die Befehle, aber nicht die fehlerhafte Logik verändert.

Lösung:
Überleg die nochmal, was du genau machen willst
und vergleiche dieses mit deinem Code.

[edit]
OK, nun gab's zwischendrin doch schon ein paar neue Antworten :?

Bellla 14. Dez 2010 20:57

AW: Bilderschleife
 
also das wa ich grad habe ist das selbe wie deins nur ist deins leichter.


nächstes problem
so jetzt habe ich einen button. wenn ich drücke kommen immer verschiedene bilder.nach dem 4 bild möchte ich wieder das auge also immage1. wo sich dann die anderen buttons befinden. jetzt kann ich das nächste button drücken.
wenn ich jetzt button 2 drücke soll man aber die restlichen 4 buttons nicht sehen.
könnt ihr mir auch hier helfen.

ich hoffe ich habe mich gut ausgedrückt aber ich habe einfach keine ahnung. lerne informatik also delphi erst seit 3 monaten

implementation 14. Dez 2010 21:03

AW: Bilderschleife
 
Zitat:

Zitat von Bellla (Beitrag 1068524)
lerne informatik also delphi erst seit 3 monaten

Aber scheinbar nicht sehr intensiv. Das ist eine Aufgabe, die man nach 3 Monaten eigentlich stellen kann :gruebel:

Bellla 14. Dez 2010 21:05

AW: Bilderschleife
 
wir haben 1 mal in der woche info für 2 stunden. die ferien kannst du auch abziehen.

Bellla 14. Dez 2010 21:07

AW: Bilderschleife
 
wie kann ich nun weiter machen?

mkinzler 14. Dez 2010 21:09

AW: Bilderschleife
 
Komponenten besitzen die Eigenschaft .Visible

implementation 14. Dez 2010 21:10

AW: Bilderschleife
 
... sowie die Methoden Show() und Hide().

Bellla 14. Dez 2010 21:12

AW: Bilderschleife
 
also B1.Visible:=false;
aber wie mache ich das man den letzten click macht und auf das auge kommt also das erste bild.
auf dem ersten bild sieht man die restlichen buttons. die sollen natürlich nicht da sein, wenn man einen der buttons anklickt, nur das wo man angeklickt hat.

Bellla 14. Dez 2010 21:13

AW: Bilderschleife
 
oh :( das hatte ich nicht mit show and hide

mkinzler 14. Dez 2010 21:15

AW: Bilderschleife
 
Überleg dir mal, was du genau sagen willst. Und dann versuche es so zu formulieren, dass wir es auch verstehen.
Ich würde den Startzustand auch einen Status geben.

Bellla 14. Dez 2010 21:16

AW: Bilderschleife
 
das problem ist doch ich weiß gar nicht was die statuse zu bedeuten haben.
ich hatte ein beispiel von einer ampel, die man mit status programmiert hat und habe das auf mein problem angewendet

Bellla 14. Dez 2010 21:18

AW: Bilderschleife
 
kann ich nicht einfach neue procedures reinmachen??


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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