![]() |
AW: Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Ich gehe eher davon aus dass du es nicht "einfach importieren" kannst, du du eine andere Delphi Version verwendest. Daher ist folgendes angesagt : 1.) Neue VCL Form erstellen in deiner IDE. [Neues Projekt] 2.) Ziehe dir 1 Button und 5 Panels auf die Form. 3.) Füge auf Panel1 folgendes hinzu 1 x TLabel -> Name: Label_Level 1 x TLabel -> Name: Label1 4.) Benenne die Panels2-5 um in: Panel2 -> Panel_Col0 Panel3 -> Panel_Col1 Panel4 -> Panel_Col2 Panel5 -> Panel_Col3 Dann muss deine Struktur so aussehen wie im Anhang. 5.) Kopiere dir den relevanten Teil aus dem Quellcode: (Bei dir wird die Form ggf. anders heißen, daher nicht einfach Str+c und Str+v einfügen und dann sagen "geht nicht". Kopiere sinnvoll !
Delphi-Quellcode:
Edit://
////
//Created on 06.02.11 by Mike_ //// unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) Button1: TButton; Label1: TLabel; Label_Level: TLabel; Panel1: TPanel; Panel_Col0: TPanel; Panel_Col1: TPanel; Panel_Col2: TPanel; Panel_Col3: TPanel; procedure FormCreate(Sender: TObject); procedure mixColors(); procedure NextColor(); procedure NextLevel (); procedure FirstStart(); procedure ShowColorSqeuence(); procedure CheckAnswer(ColorOfButton: TColor); procedure Button1Click(Sender: TObject); procedure Panel2Clck(Sender: TObject); procedure Panel_Col2Click(Sender: TObject); procedure Panel_Col1Click(Sender: TObject); procedure Panel_Col3Click(Sender: TObject); private { Private declarations } public { Public declarations} end; var Form2: TForm2; FarbListe: TStringList; Level, DerzeitigesFarbLevel: Integer; implementation {$R *.dfm} procedure Delay(time:Integer); var i: integer; begin for i := 0 to time do begin Sleep(10); Application.ProcessMessages; end; end; procedure TForm2.ShowColorSqeuence(); var i : Integer; begin for I := 1 to FarbListe.Count - 1 do begin case ColorToRGB(StringToColor(FarbListe.ValueFromIndex[I])) of 32768: RandSeed:=0; // RGB of clGreen 255: RandSeed:=1; // RGB of clRed 65535: RandSeed:=2; // RGB of clYellow 16711680: RandSeed:=3; // RGB of clBlue end; TPanel(FindComponent('Panel_Col'+IntToStr(RandSeed))).Color := StringToColor(FarbListe.ValueFromIndex[I]); Delay(75); TPanel(FindComponent('Panel_Col'+IntToStr(RandSeed))).Color := clBtnFace; Delay(25); end; end; procedure TForm2.mixColors(); begin Randomize; RandSeed := Random(4); //ShowMessage(IntToStr(RandSeed)); case RandSeed of 0: FarbListe.Add('cclGreen'); 1: FarbListe.Add('cclRed'); 2: FarbListe.Add('cclYellow'); 3: FarbListe.Add('cclBlue'); end; end; //Next Level procedure TForm2.NextLevel (); begin mixColors(); Level := Level +1; Label_Level.Caption := IntToStr(Level); DerzeitigesFarbLevel := 1; ShowColorSqeuence(); end; //Next Color in same level procedure TForm2.NextColor(); begin DerzeitigesFarbLevel := DerzeitigesFarbLevel + 1; end; procedure TForm2.CheckAnswer(ColorOfButton: TColor); begin //RIGHT ANSWER if FarbListe.ValueFromIndex[DerzeitigesFarbLevel] = ColorToString(ColorOfButton) then begin if DerzeitigesFarbLevel = Level then begin ShowMessage('Das war korrekt, herzlich willkommen im Level '+IntToStr(Level+1)+' !'); NextLevel(); end else //RIGHT BUT NO NEW LEVEL begin //ShowMessage('Ihre Antwort ist korrekt!'); NextColor(); end; end //FALSE ANSWER else begin ShowMessage('Dies war leider verkehrt, das Spiel wird neu gestartet !'); Button1.Click; end; end; //First start of game procedure TForm2.FirstStart(); begin FarbListe.Clear; (* Da TStirngList bei 0 anfängt zu zählen wir aber der Übersicht halber bei Level 1 anfangen *) FarbListe.Insert(0, ''); mixColors(); DerzeitigesFarbLevel := 1; Level := 1; Label_Level.Caption := IntToStr(Level); ShowColorSqeuence(); end; procedure TForm2.Button1Click(Sender: TObject); begin FirstStart(); end; procedure TForm2.Panel2Clck(Sender: TObject); begin CheckAnswer(clGreen); end; procedure TForm2.Panel_Col1Click(Sender: TObject); begin CheckAnswer(clRed); end; procedure TForm2.Panel_Col2Click(Sender: TObject); begin CheckAnswer(clYellow); end; procedure TForm2.Panel_Col3Click(Sender: TObject); begin CheckAnswer(clBlue); end; procedure TForm2.FormCreate(Sender: TObject); begin FarbListe := TStringList.Create; Label_Level.Caption := ''; //ShowMessage(IntToStr(ColorToRGB(clGreen))+' '+IntToStr(ColorToRGB(clRed))+' '+IntToStr(ColorToRGB(clYellow))+' '+IntToStr(ColorToRGB(clBlue))); end; end. Im Anhang habe ich dir noch mal den Sourcecode + funktionierende .exe hingepackt. |
AW: Der "Color-Code"
danke das du es mir noch einmal erklärt hast :)
aber das meinte ich garnicht nun gut ich wollte damit meinen das deine exe in deinem anhang bei mir nicht funktionierte :D wenn ich auf new game gedrückt habe leuchtete keine farbe auf hatte ich mal das glück das ich aus zufall den richtigen button gefunden habe sah ich immernoch nicht die farbe :D |
AW: Der "Color-Code"
Ich habe es mir ebend selbst heruntergeladen, bei mir funktioniert es.
Die .exe kann sich eigentlich bei dir und mir nicht so unterschiedlich verhalten !? |
AW: Der "Color-Code"
ich weis das verhält sich sehr komisch und teilweise sogar unrea und bekloppt aber ich habe einfach mal ein kleines bild gemacht
![]() ich kann dazu nur sagen so siehts bei mir aus und das ist kein scherz o.O |
AW: Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 1)
Sieht so aus als wenn WinVista/7 die Panels transparent setzt.
Ich hab dir mal eine weitere Variante angehangen. Sag mir bitte welches Panel bei dir angezeigt wird. |
AW: Der "Color-Code"
bei mir sind alle panels grau bis auf das unten links
|
AW: Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 1)
bei mir (hier D 2010 ) schlägt ValueFromIndex und ColorToString bei der Farbnamesvergabe fehl..., der Anhang funktioniert
|
AW: Der "Color-Code"
Ich weiß nicht, in wie weit das Problem inzwischen behoben wurde, aber evtl. könnte die Eienschaft "ParentBackground" das Verhalten ändern. Ich kann allerdings im Moment nicht sagen, ab welcher Delphi-Version diese Eigenschaft vorhanden ist.
Generell würde ich aber voschlagen, die graphische Ausgabe selbst zu zeichnen und beispielsweise über eine Paintbox auszugeben. Da kann man sich dann graphisch etwas "austoben", was ja gerade bei Spielen nie verkehrt ist ;-) |
AW: Der "Color-Code"
es wurden bei mir eigentlich alle probleme behoben bummi hat eine nette kleine version gepostet die bei mir funktioniert ich müsste mich bei meiner version nur noch der verschönerung widmen und der fehler meldung aber ansonsten sollte alles wohl gesagt sein :)
ich bedanke mich bei allen von ganzenherzen die bei der lösung des problems geholen haben :) wer mag darf das spiel für seine zwecke ruhig weiter entwickeln/umentwickeln oder einfach als nachguck objekt benutzen :) noch mal an alle danke und bis demnächst wenn ich wieder einmal ein problem haben sollte^^ |
AW: Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Dadurch ist das unerklärliche Phänomen auch verschwunden, weshalb in der TStringList immer das erste Zeichen verschluckt wurde. Das ValueFromIndex benötigt man nirgendwo, habe es dank deinem Hinweis an allen 3 Stellen entfernt. :thumb: Danke dir :thumb: Zitat:
Im Anhang der der "Fix für Win7/Vista". EDIT:\ Anhang gelöscht, weiteren Bug entdeckt. Neue Version wird geuploaded. Edit2:\ Erneuter Bugfix im Anhang |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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