Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Würfel mit Shapes
Cano - Mo 02.06.08 15:14
Titel: Würfel mit Shapes
Wir sollen in der Schule einen digitalen Würfel erstellen. Könnte einer uns bitte helfen?
Ist sehr dringend.
Wir haben schon folgendes geschafft:
Unser Formular hat 6 Kreise und einen "würfeln"-Button und wenn man auf "würfeln" drückt sollte sich eigentlich ein Feld anders färben.
Was machen wir falsch?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var x: integer; begin randomize; x:=random(6)+1; if x=1 then shape1.Brush.color:=clblack; if x=2 then shape2.Brush.color:=clblack; if x=3 then shape3.Brush.color:=clblack; if x=4 then shape4.Brush.color:=clblack; if x=5 then shape5.Brush.color:=clblack; if x=6 then shape6.Brush.color:=clblack; readln; end; |
Aber irgendwie passiert nichts.
HILFE!!!!!!!!!!!!! :?
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Moderiert von
Christian S.: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Mo 02.06.2008 um 15:18
Moderiert von
Narses: Titel geändert.
platzwart - Mo 02.06.08 15:18
was genau geht da nicht?
und bitte den titel in was aussagekräftiges ändern...
Christian S. - Mo 02.06.08 15:19
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
| 1.2 Beiträge: |
| Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern. Danke Dir!
Viele Grüße,
Christian
Jakob_Ullmann - Mo 02.06.08 15:19
Was meinst du mit einem digitalen Würfel?
PS: Es geht auch kürzer:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var x: integer; begin randomize; x:=random(6)+1; TShape(FindComponent('Shape' + IntToStr(x))).Brush.Color := clBlack; readln; end; |
ZeitGeist87 - Mo 02.06.08 15:22
Hallo!
Na einen Würfel, der würfelt..am Computer..eben digital ;-)
platzwart - Mo 02.06.08 15:25
aber was soll dann das "readln"?!? und vlt auch die farbe der shapes bei jedem durchlauf zurücksetzen...
ZeitGeist87 - Mo 02.06.08 15:38
Das hat da drin nix verloren...
Jakob_Ullmann - Mo 02.06.08 16:05
Achso. Ich hab jetzt nicht an den Spielwürfel gedacht. Mehr daran, mit Canvas einen Würfel als Schrägbild zu zeichnen. :wink: Also zum Zeichnen: Am besten ohne Shapes
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var zufall: Integer; begin randomize; zufall := random(6) + 1; Canvas.Pen.Color := clBlack; Canvas.Brush.Color := clBlack; Canvas.Rectangle(10 + zufall * 30, 100, 30 + zufall * 30, 120); end; |
Narses - Mo 02.06.08 16:23
Moin!
Ich schätze, das sind die Augen von dem Würfel (sollten dann allerdings 7 sein... :gruebel:), die dann halt passend gefärbt werden sollen. :idea:
cu
Narses
Jakob_Ullmann - Mo 02.06.08 16:35
Wieso sollten es sieben sein?
Nico72 - Mo 02.06.08 16:42
Na 6 am Rand und einer in der Mitte
Jakob_Ullmann - Mo 02.06.08 17:06
Achso. :shock: Dann vielleicht so?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| var augen: array[1..6, 1..7] of Boolean; zufall, i: Integer; begin augen[1][1] := False; augen[1][2] := False; augen[1][3] := False; augen[1][4] := False; augen[1][5] := False; augen[1][6] := False; augen[1][7] := True; augen[2][1] := True; augen[2][2] := False; augen[2][3] := False; augen[2][4] := False; augen[2][5] := False; augen[2][6] := True; augen[2][7] := False; augen[3][1] := True; augen[3][2] := False; augen[3][3] := False; augen[3][4] := False; augen[3][5] := False; augen[3][6] := True; augen[3][7] := True; augen[4][1] := True; augen[4][2] := True; augen[4][3] := False; augen[4][4] := False; augen[4][5] := True; augen[4][6] := True; augen[4][7] := False; augen[5][1] := True; augen[5][2] := True; augen[5][3] := False; augen[5][4] := False; augen[5][5] := True; augen[5][6] := True; augen[5][7] := True; augen[6][1] := True; augen[6][2] := True; augen[6][3] := True; augen[6][4] := True; augen[6][5] := True; augen[6][6] := True; augen[6][7] := False; randomize; zufall := random(6) + 1; for i := 1 to 7 do begin if augen[zufall][i] = True then TShape(FindComponent('Shape' + IntToStr(i))).Brush.Color := clBlack else TShape(FindComponent('Shape' + IntToStr(i))).Brush.Color := clWhite; end; end; |
Narses - Mo 02.06.08 17:34
Moin!
Jakob_Ullmann hat folgendes geschrieben: |
| Achso. :shock: Dann vielleicht so? |
Bischen aufwändig, oder? ;) Vorschlag: :idea:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); type TAugen = set of 1..6; const Stati: array[1..7] of TAugen = ( [2..6],[4..6],[6],[6],[4..6],[2..6],[1,3,5] ); Color: array[Boolean] of TColor = ( clWhite, clBlack ); var Wurf, i: Integer; begin Wurf := Random(6) +1; Button1.Caption := IntToStr(Wurf); for i := 1 to 7 do TShape(FindComponent('Shape'+IntToStr(i))).Brush.Color := Color[Wurf in Stati[i]]; end; |
cu
Narses
Hidden - Mo 02.06.08 17:44
Der Threadsteller hat noch nicht einmal reagiert.. und ihr liefet fertige Quelltexte ab? :shock:
Narses - Mo 02.06.08 17:47
Moin!
Hidden hat folgendes geschrieben: |
| Der Threadsteller hat noch nicht einmal reagiert. |
Nun, er hat immerhin um kurz nach 5 den Titel geändert... :?
Hidden hat folgendes geschrieben: |
| und ihr liefet fertige Quelltexte ab? :shock: |
Tja, was soll ich dazu sagen, glücklich bin ich auch nicht drüber :| aber ich habe (und hätte) auch nicht damit "angefangen"... :P :lol:
Freut mich aber, dass jemand anders auch mal was dazu sagt! :zustimm:
cu
Narses
Hidden - Mo 02.06.08 18:04
Hi,
Delphi-Quelltext
1:
| if augen[zufall][i] = True then |
Bitte niemals auf
TRUE VERGLEICHen. Danke!
mfG,
Guenther A. - Mo 02.06.08 21:11
Wo werden den die anderen Punkte weiß gefärbt? (oder auch in anderer Farbe.)
Mein Ansatz wäre sinngemäß
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| gewuerfeltezahl:=.... For Nr:= 1 to 6 do begin if Nr=gewuerfeltezahl then .... black else .... white end; |
Je nach Komponente für die gezeichneten Kreise wird dann auch noch ein invalidate oder einfache refresh gebraucht.
Gruß Guenther
Moderiert von
Narses: Delphi-Tags hinzugefügt und Frage aus dem Titel in den Text verschoben
GTA-Place - Mo 02.06.08 21:48
Das macht ja keinen Sinn, denn guck dir mal einen Würfel an. Da sind mehr als nur ein Punkt schwarz gefärbt (mit Außnahme der Eins natürlich ;-) ).
Cano - Di 03.06.08 14:06
Titel: gracias
Danke für die guten Vorschläge, aber wir verstehen das irgendwie nicht.
Wir wollten eigentlich, dass sich jeweils nur ein Kreis anders färbt, wenn wir auf "würfeln" drücken. Aber es funktioniert nicht.
Wir sind verzweifelt! :autsch:
ZeitGeist87 - Di 03.06.08 14:11
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var i: Integer; begin; for i:= 1 to 6 do TShape(FindComponent('Shape'+IntToStr(i))).Brush.Color:= clwhite;
x:= random(6)+1;
TShape(FindComponent('Shape'+IntToStr(x))).Brush.Color:= clBlack; end; |
Cano - Mi 04.06.08 10:59
Aber irgendwie passiert da auch nicht mehr als vorher. :cry:
Christian S. - Mi 04.06.08 11:25
Dann zeig mal Deinen Quellcode, wie der aussieht. Dann kann man mal schauen, wo der Fehler ist.
Du hast bisher noch nichts zur Lösung Deines eigenen Problems beigetragen. Dieses Forum versteht sich eher als Hilfe zur Selbsthilfe und nicht als "wir machen Dir Deine Hausaufgaben".
Cano - Mi 04.06.08 11:33
Titel: RE:
Also wir haben jetzt 7 Kreise so wie ihr gesagt habt, aber mit keiner von euren Programmierungen klappt es.
Was machen wir denn nu noch falsch?
Narses - Mi 04.06.08 11:42
Titel: Re: RE:
Moin!
Cano hat folgendes geschrieben: |
Also wir haben jetzt 7 Kreise so wie ihr gesagt habt, aber mit keiner von euren Programmierungen klappt es.
Was machen wir denn nu noch falsch? |
Christian S. hat folgendes geschrieben: |
| Dann zeig mal Deinen Quellcode, wie der aussieht. Dann kann man mal schauen, wo der Fehler ist. |
Packt mal den Inhalt des Projekt-Ordners in ein ZIP-Archiv (aber ohne die EXE) und stell das hier als Anhang rein. Wie sollen wir helfen, wenn wir nicht wissen und ihr nicht verratet, wo genau das Problem ist? :nixweiss: "Geht nicht" ist eine sehr dürftige Fehlerbeschreibung... :roll:
cu
Narses
Cano - Do 05.06.08 17:01
Ja, machen wir, aber den Anhang können wir dann erst Montag ins Netz stellen, da wir vorher nicht an den Computer kommen.
Und noch mal zur Selbsthilfe bzw. "wir machen hier nicht eure Hausaufgaben"!
Wenn wir wüssten, wie das alles funktioniert, dann würden wir uns ja gerne selbst helfen.
Aber wir haben halt keine Ahnung davon.Also können wir uns nich helfe, deshalb haben wir hier nach hilfe gefragt.
Und wenn wir irgendeine sinnvolle Idee hätten, würden wir die euch auch mitteilen, aber die haben wir nicht.
Jede Idee die wir haben funktioniert erst recht nicht. :cry:
Sylvus - Do 05.06.08 17:14
Wollt 'ihr' 'uns' vielleicht veralbern?
Sonst würde mich mal interessieren, wer 'ihr' seid und wer von euch das Programm verlangt.
Ich hätte ja gedacht es wäre ein Lehrer, aber der hätte es bestimmt schon irgendwann mal erklärt, bzw. man könnte ihn um Hilfe fragen. Wenn mal allerdings während der Info-Stunden nur im Internet surft und dann von einem Forum verlangt seine Hausaufgaben zu machen UND diese dann nicht mal versteht, ist das schon ziemlich arm.
Tja ich bin auf Montag gespannt, wenn das Programm hochgeladen wird :P
Achso wie kann man in ein Forum schreiben: "Wir kommen bis Montag nicht an den Computer"??
Ich meine "wo" seid ihr den gerade? Oder besser warum schickt man sich das Programm nicht per Mail?
Also wenn ich an einem Programm arbeite und mir das so wichtig ist, dass ich sogar in einem Forum nachfrage, dann schick ich mir das auch gerne mal per Mail um zu Hause was dran zu machen...
Naja bis Montag, und sorry falls das etwas offtopic war...
hdgdl Sylvus
Christian S. - Do 05.06.08 17:19
Sylvus hat folgendes geschrieben: |
| Wollt 'ihr' 'uns' vielleicht verarschen? |
Mäßige bitte Deinen Tonfall! :mahn:
Hidden - Do 05.06.08 18:27
Cano hat folgendes geschrieben: |
Aber wir haben halt keine Ahnung davon. Also können wir uns nich helfen. [...]
Jede Idee die wir haben funktioniert erst recht nicht. :cry: |
Hi,
Erstaunlich viele achten darauf, sich als besonders hilflos darzustellen.
Eine Theorie ist, dass sie einfach versuchen, fertigen Code "abzufischen" und dann hinterrücks lachen, wenn die Leute hier im Forum ihre Arbeit machen - glaube ich eigentlich nicht.
Die Alternative ist, dass dieses Verhalten
instinktiv ist :gruebel: Naja wieauchimmer.
Ich kann euch jedenfalls den Tipp geben, dass das nicht zum Erfolg führt. Es gehört hier nämlich "nicht zum guten Ton", eure Hausaufgaben
für euch zu machen. Vielmehr
mit euch. Wenn wir sie für euch machen, haben wir euch nächstes Mal wieder "am Hals" :wink:
Da auch wir nicht unbedingt arbeitsliebend sind( :lol: ), fordern wir schon ein gewisses Maß an Eigenanteil.
Was ist also zu tun :?:
- Lest die relevanten Codeteile noch einmal durch. Stellt euch genau vor, was passiert, "spielt Computer".
- Compiliert das Programm(F9). Welche Fehlermeldungen und Warnungen gibt der Compiler aus?
- Versucht, die Fehler zu verstehen. Die betreffenden Schlüsselwörter ruhig mal markieren und F1 drücken. Dann die Forensuche und schließlich Google(Auch mit Google habt ihr immernoch schneller eine Antwort als, wenn ihr hier fragt und wartet).
- Läuft das Programm? Was ist anders als es sein soll, an welchen Codestellen wird dort etwas gemacht? ->"Computer spielen"
- Ihr versteht einen Fehler trotz F1 + Forensuche + Google noch nicht? Dann ruhig mal fragen. Wir brauchen dazu mindestens die wahrscheinlich fehlerhaften Zeilen und ein Wenig drumrum, damit wir euer Konzept verstehen, außerdem eine genaue Beschreibung, was passieren soll und, falls das Programm läuft und nur nicht "funktioniert", was es tun soll.
Die Beschreibung sollte also exakt sein, nicht "geht nicht ... verstehen nicht ... hier Quelltext".
Ich habe jetzt ein wenig Zeit aufgebracht, um euer Problem zu lösen. Bitte bringt ihr jetzt auch ein wenig Zeit auf und geht nochmal alles durch(sobald ihr es vor euch habt). Dann sind wir der Lösung schon ziemlich nahe :wink: Es handelt sich nämlich hier um ein
Kommunikationsproblem; wir müssten nur genau wissen,
was eigenlich genau passieren soll und, was passiert. Dann sagen wir euch schon, was ihr euch genauer ansehen solltet.
mfG,
Jakob_Ullmann - Do 05.06.08 18:53
Hidden hat folgendes geschrieben: |
Delphi-Quelltext 1:
| if augen[zufall][i] = True then |
Bitte niemals auf TRUE VERGLEICHen. Danke! |
Ich hab das Problem weder in dem Thread (den hab ich übrigens schon gelesen) noch jetzt verstanden. Es funktionieren beide Varianten (ich hab's extra nochmal ausprobiert, dasselbe Ergebnis), warum soll man dann nicht auf True vergleichen!?
Moderiert von
Narses: Zitat gekürzt
Narses - Do 05.06.08 19:06
Moin!
Jakob_Ullmann hat folgendes geschrieben: |
| warum soll man dann nicht auf True vergleichen!? |
Das diskutieren wir bitte nicht in diesem Thread, sondern in dem anderen! Danke. ;)
cu
Narses
Cano - Mo 09.06.08 13:13
Hätten wir einen Lehrer, der uns hilft und uns vorher alles erklärt hätte wäre es ja nicht so schlimm.Aber er hat erlich gesagt auch keine Ahnung von der Materie!!!! :evil:
Wir würden uns ja gerne zu Hause damit beschäftigen, aber wir haben delphi nich auf unseren Computer und so können wir das nur in der Schule machen. :cry:
Na ja hier ist die zip-Datei:(Wir haben aber die Datei schon nach einer eurer Variante verändert.:zwinker: )
Narses - Mo 09.06.08 14:27
Moin!
Cano hat folgendes geschrieben: |
| Hätten wir einen Lehrer, der uns hilft und uns vorher alles erklärt hätte wäre es ja nicht so schlimm.Aber er hat erlich gesagt auch keine Ahnung von der Materie!!!! :evil: |
Schon klar, ich wundere mich auch jedesmal, dass Lehrer heutzutage überhaupt noch in der Lage sind, verständliche Worte artikulieren zu können... :roll:
Cano hat folgendes geschrieben: |
| Wir würden uns ja gerne zu Hause damit beschäftigen, aber wir haben delphi nich auf unseren Computer und so können wir das nur in der Schule machen. :cry: |
[url]
http://www.turboexplorer.com[/url]
Cano hat folgendes geschrieben: |
| Na ja hier ist die zip-Datei:(Wir haben aber die Datei schon nach einer eurer Variante verändert.:zwinker: ) |
Hatte ich nicht was von "ohne die EXE" erzählt? :gruebel:
Nunja, jedenfalls scheint ihr komplett keinen Plan zu haben, was ihr da tut. Deshalb :arrow:
Delphi-Crash-Kurs von Christian S. [
http://www.delphi-library.de/topic_Crashkurs+Delphi_37446.html]
Konkret zu dem Problem, warum das c&p nicht geklappt hat:
Macht mal einen Doppelklick auf dem Button auf Form3. Was passiert? Richtig, es wird ein (neuer!) Ereignishandler angelegt, der überhaupt nix mit dem kopierten Code zu tun hat, weil:
Delphi-Quelltext
1:
| procedure TForm3.TButton1Click(Sender: TObject); |
ihr da ein "T" vor den Methodennamen gesetzt habt (warum auch immer).
Was tun? Den Code aus dem Forum in den richtigen Button-Handler kopieren, dann klappt´s auch mit dem Abschreiben. ;)
cu
Narses
Nowo - Di 10.06.08 19:53
Ich habe da mal eine Komponente gesehn.
Für solche kleinen animationen, würfel etc.
Ich schau mal ob ich die noch finde
Jakob_Ullmann - Di 10.06.08 20:09
Die Würfel-Kompo ist bestimmt keine große Hilfe, die Schüler sollen ja nicht lernen, nur Fremdkomponenten zu nutzen, sondern auch Code selber zu schreiben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!