AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Memory - zweites bild wird nicht aufgedeckt
Thema durchsuchen
Ansicht
Themen-Optionen

Memory - zweites bild wird nicht aufgedeckt

Offene Frage von "Tigermoon"
Ein Thema von Tigermoon · begonnen am 14. Nov 2005 · letzter Beitrag vom 15. Nov 2005
Antwort Antwort
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#1

Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 11:37
Hallo

mein programm friet ein bevor das bild aufgedeckt wird
hab eine pause von 1 sek drin

warum?

ich mache die pause damit man das zweite bild sieht (in meinem fall ehr sehen sollte)


Delphi-Quellcode:
 procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var
BildNummer : integer;
begin

  //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24)
  //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG)

  //Bildernummer des angeklickten Bildes
  BildNummer := (Sender as TImage).Tag;
  
  //angeklicktes Bild aufdecken
  Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG');
  bild[bildnummer].Enabled := false;

  //Anzahl umgedrehte Bilder
  turns := turns + 1;
  //turns_anz.caption := inttostr(turns); {ausgabe zum test}

  //Erstes Bild
  if turns = 1 then
  begin
    pic1_turned := BildNummer;
    //pic1.Caption := inttostr( Bildnummer ); {ausgabe zum test}
  end;

  //Zweites bild
  if turns = 2 then
  begin
    pic2_turned := BildNummer;
    //pic2.Caption := inttostr( Bildnummer ); {ausgabe zum test}

    sleep(1000); <<--- hier

    // bilder sind die gleichen
    if bilder[pic1_turned] = bilder[pic2_turned] then
    begin
       bild[pic1_turned].Visible := false;
       bild[pic2_turned].Visible := false;
       turns := 0;
    end;

    //bilder sind unterschiedlich
    if bilder[pic1_turned] <> bilder[pic2_turned] then
    begin
       bild[pic1_turned].Picture.LoadFromFile('back.JPG');
       bild[pic1_turned].Enabled := true;
       bild[pic2_turned].Picture.LoadFromFile('back.JPG');
       bild[pic2_turned].Enabled := true;
       turns := 0;
    end;

  end;
end;
Stephanie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 12:14
Hallo Stephanie,

weg mit dem Sleep() - die Pausensteuerung solltest du mit einem Timer außerhalb der OnClick-Routine machen. Und die Bilder solltest du nicht jedesmal von der Platte laden. Lade sie in einen TMemoryStream und hole sie dir auch von dort.

Grüße vom marabu
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 12:18
wie würdest du das mit dem timer machen?

ich habe immer gedacht timer sind zum wiederholen nicht zum pausieren?
Stephanie
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 12:19
Zitat von Tigermoon:
wie würdest du das mit dem timer machen?

ich habe immer gedacht timer sind zum wiederholen nicht zum pausieren?
Klar aber dann stellst du den Timer halt auf z.B eine Sekunde und schreibst dann ins OnTimer Ereignis das ein anderes Bild geladen werden soll. Wenn alles erledigt ist dann schaltest du den Timer halt einfach aus
Michael
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 13:03
Danke für deine hilfe

awa jetzt verschwindet immer das zweite bild egal was und das erst deckt sich nicht wieder zu.
Die sache mit den bildern mache ich später...

kann mir da mal einer helfen
ich blicke das ned

Turns wird bei game_new auf null gesetzt

Delphi-Quellcode:
procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var
BildNummer : integer;
begin

  //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24)
  //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG)

  //Bildernummer des angeklickten Bildes
  BildNummer := (Sender as TImage).Tag;

  //angeklicktes Bild aufdecken
  Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG');
  bild[bildnummer].Enabled := false;

  Timer1.Tag := BildNummer;
  Timer1.Enabled := true;

end;
Delphi-Quellcode:
procedure TMemoryfeld.Timer1Timer(Sender: TObject);
Var
   BildNummer:integer;
begin

  BildNummer := Timer1.Tag;

  //Anzahl umgedrehte Bilder
  turns := turns + 1;

  //Erstes Bild
  if turns = 1 then
  begin
    pic1_turned := BildNummer;
  end;

  //Zweites bild
  if turns = 2 then
  begin
    pic2_turned := BildNummer;

    // bilder sind die gleichen
    if bilder[pic1_turned] = bilder[pic2_turned] then
    begin
       bild[pic1_turned].Visible := false;
       bild[pic2_turned].Visible := false;
       turns := 0;
       timer1.Enabled := false;
    end;

    //bilder sind unterschiedlich
    if bilder[pic1_turned] <> bilder[pic2_turned] then
    begin
       bild[pic1_turned].Picture.LoadFromFile('back.JPG');
       bild[pic1_turned].Enabled := true;
       bild[pic2_turned].Picture.LoadFromFile('back.JPG');
       bild[pic2_turned].Enabled := true;
       turns := 0;
       timer1.Enabled := false;
    end;
  end;
end;
Stephanie
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 14:01
ACHTUNG: keine Rechtsauskunft, sondern subjektive Einschaetzung!

Ich würde Dir raten Dein Spiel umzubenennen, da Du ansonsten sehr schnell sehr viel ärmer sein könntest. "Memory" ist eine eingetragene Marke der Ravensburger AG, welche ihre Rechte rücksichtslos durchsetzt. Die verbreitete Annahme, dass "Memory" ein Gattungsbegriff für derartige Spiele ist, ist falsch.
http://www.rhetorik.ch/Medienrecht/M...ibusiness.html
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 14. Nov 2005, 14:04
ok werde ich tun

und das ist ja nur zur übung....
Stephanie
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Memory - zweites bild wird nicht aufgedeckt

  Alt 15. Nov 2005, 10:36
15.11.2005

Habe mit das alles mal zu herzen genommen
hat jetzt einen neuen Namen Get Pairs
hoffe das ist legal....

Aber wie schon gesagt
das Programm habe ich ja nur zum Üben erstellt

Nun zu meinem Problem zurück
Kann mir vielleicht jemand helfen warum nach dem einfügen des Timers meine bilder machen was sie wollen?

die erste quelltextform ohne den timer ging (siehe ganz oben)

Was es machen sollte und auch tat
Wenn zwei ungeleiche angedrückt werden sollen sie sich wieder umdrehen
wenn zwei gleiche angedrückt werden visible gehen

was es nun macht
das zweite angeklickte bild visible gemacht und das erste nicht wieder zugedeckt
egal ob gleich oder ungleich

neue quelltext form siehe 14.11.2005, 14:03


Hoffe das mir jemand weiterhelfen kann

Tigermoon
Stephanie
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:31 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