![]() |
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:
ich komme nicht weiter :(
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. |
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 |
AW: Bilderschleife
hätte ich ne ahnung von sowas...wie geht es dann??
|
AW: Bilderschleife
Wie geht was?
|
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 |
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. |
AW: Bilderschleife
ich versuchs mal danke
|
AW: Bilderschleife
ich hab jetzt
Code:
aber nach wenn das 2. bild erscheint und man nochmal drückt passiert nichts warum?
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. |
AW: Bilderschleife
Dann passiert doch was. Allerdings das gleiche wie beim ersten Drücken, weil der Status gleich ist.
|
AW: Bilderschleife
nein es bleibt beim 2.bild :( was soll ich machen
|
AW: Bilderschleife
Delphi-Quellcode:
Dir diese Zeile anschauen.
status:=1;
Überlege: Was bewirkt sie? Was passiert bei Status 1? |
AW: Bilderschleife
Okay, fangen wir mal vorne an:
Delphi-Quellcode:
Was zur Hölle ist das? Eine Schleife, die 1001x nichts ausführt? Weißt du überhaupt, was du da machst?
for i:=0 to 1000 do ;
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. |
AW: Bilderschleife
Zitat:
Ich vermute mal, das soll eine Verzögerung bewirken. Deshalb hat mkinzler ja Sleep(500) draus gemacht. |
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ß |
AW: Bilderschleife
Wie sollen die 3 Bilder denn erscheinen? Untereinander, nebeneinander, übereinander, hintereinander...?
|
AW: Bilderschleife
Zitat:
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. |
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. |
AW: Bilderschleife
die bilder sollen nebeneinander sein
|
AW: Bilderschleife
Und was passiert stattdessen?
|
AW: Bilderschleife
Zitat:
Zitat:
Zitat:
|
AW: Bilderschleife
ok wie soll ich den status ändern
|
AW: Bilderschleife
Delphi-Quellcode:
status := <NeuerStatus>;
|
AW: Bilderschleife
Auf jedenfall sollte er sich ändern, sonst landest du immer im selben Case
|
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; |
AW: Bilderschleife
Zitat:
Eine ordentliche Fehlerbeschreibung ist wie folgt aufgebaut:
|
AW: Bilderschleife
Zitat:
|
AW: Bilderschleife
jaaaaaaaaaaaaaaaa es klappppppppppppppppppppt jetzt danke danke.
|
AW: Bilderschleife
juhu
|
AW: Bilderschleife
Delphi-Quellcode:
hab mal alles Unwichtige weggelassen
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; und dann nochmal alles gekürzt
Delphi-Quellcode:
Es wurde nicht grundlos auf eine ordentliche Codeformatierung hingewiesen.
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; 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 :? |
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 |
AW: Bilderschleife
Zitat:
|
AW: Bilderschleife
wir haben 1 mal in der woche info für 2 stunden. die ferien kannst du auch abziehen.
|
AW: Bilderschleife
wie kann ich nun weiter machen?
|
AW: Bilderschleife
Komponenten besitzen die Eigenschaft .Visible
|
AW: Bilderschleife
... sowie die Methoden Show() und Hide().
|
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. |
AW: Bilderschleife
oh :( das hatte ich nicht mit show and hide
|
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. |
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 |
AW: Bilderschleife
kann ich nicht einfach neue procedures reinmachen??
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 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-2025 by Thomas Breitkreuz