AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Nach bestimmer Variable bestimme Aktion ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Nach bestimmer Variable bestimme Aktion ausführen

Ein Thema von Fractal · begonnen am 22. Apr 2014 · letzter Beitrag vom 22. Apr 2014
Antwort Antwort
Seite 3 von 3     123   
CocoPops
(Gast)

n/a Beiträge
 
#21

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:23
Fractal,

gemeint ist, dass du dich nicht nur deine Fehler hier posten sollst, sondern auch den passenden Code dazu.

Zitat:
Fatal: Syntax error, ";" expected but "ELSE" found...
jedoch krieg ich immer noch Schlecht angezeigt, obwohl 4/10 Ok anzeigen müsste.
Lösung wurde schon mehr als ein Mal gepostet:
Delphi-Quellcode:
procedure TErgebnisse.FormActivate(Sender: TObject);
begin
   PresentRatePictures;
end;

procedure TErgebnisse.PresentRatePictures;
begin
   Schlecht.Visible := n < 4; // 0, 1, 2, 3
   Ok.Visible := (n > 3) and (n < 7); // 4, 5, 6
   Gut.Visible := (n > 6) and (n < 10); // 7, 8, 9
   Perfekt.visible := n = 10; // 10
end;
Zudem würde ich, wie auch bereits erwähnt, von den vier Labels wegkommen.
Entweder ein einziges Label und bei der Ergebnisauswertung das Caption ändern, oder, wie ebenfalls bereits erwähnt, ein TImage nutzen und dann das passende Image (Ergebnis) aus einer TImageList laden.

Geändert von CocoPops (22. Apr 2014 um 16:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#22

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:26
Zitat:
Was sagt der Debugger?
Nichts
Dann zwinge Deinen Debugger erstmal, Dir zu zeigen welchen Wert 'n' hat, wenn der Code der die Bilder umschaltet, ausgeführt wird.

Dann schaust Du Dir am besten auch nochmal im Detail an, wann überhaupt Dein FormActivate ausgeführt wird und ob Du den Code nicht vielleicht lieber zu einem anderen Zeitpunkt ausführen lassen würdest (z.B. nachdem die Ergebnisse ausgewertet wurden).
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:32
Der Link funktioniert wohl nicht ganz richtig, darum ein Zitat:
Zitat:
Die Antwort 42 ist das kürzeste und bekannteste Zitat aus der verfilmten[1] Roman- und Hörspielreihe Per Anhalter durch die Galaxis von Douglas Adams.

Es ist die Antwort auf die vom Autor unklar gestellte Frage „nach dem Leben, dem Universum und dem ganzen Rest“ (“life, the universe and everything”), die in der Geschichte der größte existierende Computer des Universums zu errechnen hat und sie als mit absoluter Sicherheit korrekt darstellt. Letztlich aber können die Protagonisten mit der Antwort nichts anfangen, weil niemand weiß, wie die eigentliche Frage lautete.
(Wikipedia 42(Antwort))

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
CocoPops
(Gast)

n/a Beiträge
 
#24

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:32
N müsste immer einen Wert erhöht werden, wenn der richtige Button (die richtige Antwort) angeklickt wurde.

Und den Code PresentRatePictures; (oder wie auch immer er bei dir heißt) würde ich ausführen, jedes Mal, wenn du auf einen Button klickst ODER
nach dem Button-Klick der letzten Frage.
  Mit Zitat antworten Zitat
Fractal

Registriert seit: 16. Apr 2014
9 Beiträge
 
#25

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:41
Ok, habs mit
Delphi-Quellcode:
procedure TErgebnisse.FormActivate(Sender: TObject);
begin
   PresentRatePictures;
end;

procedure TErgebnisse.PresentRatePictures;
begin
   Schlecht.Visible := n < 4; // 0, 1, 2, 3
   Ok.Visible := (n > 3) and (n < 7); // 4, 5, 6
   Gut.Visible := (n > 6) and (n < 10); // 7, 8, 9
   Perfekt.visible := n = 10; // 10
end;
gemacht und es kommt folgender Fehler.. :
Code:
unit33.pas(23,25) Hint: Parameter "Sender" not used
unit33.pas(102,23) Error: Identifier not found "PresentRatePictures"
unit33.pas(105,42) Error: method identifier expected
unit33.pas(107,12) Error: Identifier not found "Schlecht"
unit33.pas(108,6) Error: Identifier not found "Ok"
unit33.pas(109,7) Error: Identifier not found "Gut"
unit33.pas(110,11) Error: Identifier not found "Perfekt"
unit33.pas(115) Fatal: There were 6 errors compiling module, stopping
Wenn auf den richtigen Button geklickt wird:
Delphi-Quellcode:
  n := StrToIntDef(Ergebnisse.Zahl.caption, 0);
  n := n + 1;
  Ergebnisse.Zahl.caption := IntToStr(n);
Ja bin jetzt nur noch bei einem Label.

Geändert von Fractal (22. Apr 2014 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#26

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:44
Wo ist der Fehler mit dem else ?

Warum zeigst du nur Fragmente und nicht die gesamte Unit bzw. die beiden Units?

Wieso muss man dir alles aus der Nase ziehen? Möchtest du, das wir dir helfen, oder ist dir nur langweilig?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
CocoPops
(Gast)

n/a Beiträge
 
#27

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:49
Zitat:
... gemacht und es kommt folgender Fehler.. :
Deswegen sollte man nicht Copy & Pasten. Vorher muss man versuchen den Code zu verstehen.

Ich kenne die Fehlermeldungen von Lazurus (weg damit ...) nicht, aber du hast sicherlich vergessen GANZ OBEN IN DER UNIT IM PRIVATE-ABSCHNITT procedure PresentRatePictures; zu deklarieren.

Zitat:
Ja bin jetzt nur noch bei einem Label.
Wenn du doch nur noch ein Label hast, wieso benutzt du dann noch
Delphi-Quellcode:
Schlecht.Visible := n < 4; // 0, 1, 2, 3
   Ok.Visible := (n > 3) and (n < 7); // 4, 5, 6
   Gut.Visible := (n > 6) and (n < 10); // 7, 8, 9
   Perfekt.visible := n = 10; // 10
?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 16:50
Grundlagen-Tutorial speziell OOP: http://www.delphi-treff.de/tutorials...rogrammierung/
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#29

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 19:01
Der Vollständigkritshalber (nur für den Fall, dass es nicht bereits vorgeschlagen wurde):
Delphi-Quellcode:
  Schlecht.Visible := n in [0..3];
  Ok.Visible := n in [4..6];
  Gut.Visible := n in [7..9];
  Perfekt.visible := n in [10];
  Mit Zitat antworten Zitat
CocoPops
(Gast)

n/a Beiträge
 
#30

AW: Nach bestimmer Variable bestimme Aktion ausführen

  Alt 22. Apr 2014, 21:27
Und um es noch komplizierter zu machen, da sich hier in diesem Thread sonst wohl nichts mehr tut:
Delphi-Quellcode:
Schlecht.Visible := (n = 0) or (n = 1) or (n = 2) or (n = 3);
Ok.Visible := (n = 4) or (n = 5) or (n = 6);
Gut.Visible := (n = 7) or (n = 8) or (n = 9);
Perfekt.visible := n = 10;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.
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