AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Der "Color-Code"

Ein Thema von Dragon93 · begonnen am 3. Feb 2011 · letzter Beitrag vom 6. Feb 2011
Antwort Antwort
Seite 3 von 3     123   
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#21

AW: Der "Color-Code"

  Alt 6. Feb 2011, 20:17
hey mike,

danke für dein programm im anhang,
leider funktioniert es bei mir nicht richtig und es gibt einen deplhi praxis treffen? o.O wann isn das?
Was funktioniert nicht, wo kommt ein Fehler (Gibt es überhaupt einen) ?

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:
////
//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.
Edit://
Im Anhang habe ich dir noch mal den Sourcecode + funktionierende .exe hingepackt.
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (25,7 KB, 9x aufgerufen)
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (241,2 KB, 6x aufgerufen)
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 20:22 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#22

AW: Der "Color-Code"

  Alt 6. Feb 2011, 20:41
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
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
Daniel
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#23

AW: Der "Color-Code"

  Alt 6. Feb 2011, 20:50
Ich habe es mir ebend selbst heruntergeladen, bei mir funktioniert es.

Die .exe kann sich eigentlich bei dir und mir nicht so unterschiedlich verhalten !?
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 20:52 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#24

AW: Der "Color-Code"

  Alt 6. Feb 2011, 20:56
ich weis das verhält sich sehr komisch und teilweise sogar unrea und bekloppt aber ich habe einfach mal ein kleines bild gemacht
http://img828.imageshack.us/img828/434/level1oo.jpg
ich kann dazu nur sagen so siehts bei mir aus und das ist kein scherz o.O
Daniel

Geändert von Dragon93 ( 6. Feb 2011 um 21:00 Uhr)
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#25

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:12
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.
Angehängte Dateien
Dateityp: zip Project1.zip (223,3 KB, 2x aufgerufen)
Delphi-Nachwuchs
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#26

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:21
bei mir sind alle panels grau bis auf das unten links
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#27

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:24
bei mir (hier D 2010 ) schlägt ValueFromIndex und ColorToString bei der Farbnamesvergabe fehl..., der Anhang funktioniert
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (426,3 KB, 3x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#28

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:26
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
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#29

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:32
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^^
Daniel
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#30

AW: Der "Color-Code"

  Alt 6. Feb 2011, 21:49
bei mir (hier D 2010 ) schlägt ValueFromIndex und ColorToString bei der Farbnamesvergabe fehl..., der Anhang funktioniert
Dank dir, damit ist es nun auch gleich D2010 kompatibel.

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.

Danke dir

bei mir sind alle panels grau bis auf das unten links
Dann liegt es am ParentBackground, genau wie Patti getippt hatte.

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
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (257,3 KB, 3x aufgerufen)
Delphi-Nachwuchs

Geändert von Mike_ ( 7. Feb 2011 um 00:43 Uhr)
  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 17:58 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