AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Memory für "Anfänger"
Thema durchsuchen
Ansicht
Themen-Optionen

Memory für "Anfänger"

Ein Thema von Saul · begonnen am 27. Dez 2007 · letzter Beitrag vom 30. Dez 2007
Antwort Antwort
Seite 3 von 3     123   
Saul
(Gast)

n/a Beiträge
 
#21

Re: Memory für "Anfänger"

  Alt 30. Dez 2007, 16:07
Zitat von DeddyH:
Zitat von Saul:
ich kann ja schlecht schreiben "if image.tag=0 then...".
Wieso denn nicht? Genauso geht das.
Ich habe eine Prozedur onClick, die für alle Images gilt. da möchte ich es gerne mit reinschreiben. Kann man das denn irgendwie verallgemeinern? d.h. das ich eine Procedure schreibe und nicht immer für jedes Image (image1, image2, ...) diesen befehl schreiben muss?
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#22

Re: Memory für "Anfänger"

  Alt 30. Dez 2007, 17:35
Du kannst mit dem Objektinspektor mehreren Objekten die selbe Prozedur für ein Ereignis zuweisen.
In der Prozedur zum Ereignis hast du meist einen Parameter "Sender", der wäre in deinem Image-OnClick dann das Bild, auf das geklickt wurde.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Saul
(Gast)

n/a Beiträge
 
#23

Re: Memory für "Anfänger"

  Alt 30. Dez 2007, 18:02
BOAH ich habs satt. Ich finde meine Fehler nicht
Könnt ihr da nochmal einen blick drüber werfen?

irgendetwas stimmt da mit dem mischen nicht
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, Menus;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Button1: TButton;
    Button2: TButton;
    TrackBar1: TTrackBar;
    procedure FormCreate(Sender: TObject);
    procedure ImageClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zweiteKarte: Boolean = True;
  Bild1, Bild2, Bild3, Anzahl, zufall, i, k: Integer;
  Bild: Array[1..3] of String;                                 //Bildernamen
  Platz: Array[1..6] of Integer;                               //Bildnummer
  Nummer: Array[1..6] of Integer;                              //Bildnummer 2
  Name1, Name2 ,Name3: String;                                 //Imagename für Deckblatt

implementation

{$R *.dfm}



  procedure TForm1.FormCreate(Sender: TObject);
  begin
    randomize;     // Zufallszahlengenerator aktivieren
    Button1.OnClick(self);
  end;



// Karten neu

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    // verdeckt
    Image1.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
    Image2.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
    Image3.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
    Image4.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
    Image5.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
    Image6.Picture.LoadFromFile('Bilder/Deckblatt.bmp');

    // offen
    Bild[1]:= 'Bilder/HUND01.BMP';
    Bild[2]:= 'Bilder/HUND02.BMP';
    Bild[3]:= 'Bilder/HUND03.BMP';

    // gemischt platzieren
    Platz[1]:= 1;
    Platz[2]:= 2;
    Platz[3]:= 3;
    Platz[4]:= 1;
    Platz[5]:= 2;
    Platz[6]:= 3;

    Anzahl := 6;

    while Anzahl > 0 do               { Die Karten mischen }
    begin
      zufall:= random(Anzahl)+1;         // eine Karte aus dem Stapel ziehen
      Nummer[Anzahl]:= Platz[zufall];    // und auf letzten freien Platz auslegen
      for k:= zufall to Anzahl-1 do      // restliche Karten einen Platz nach vorn
      begin
          Platz[k]:= Platz[k+1];
      end;
      Anzahl:= Anzahl - 1;            // Der Stapel ist nun kleiner geworden
    end;
  end;



// Karten aufdecken

  procedure TForm1.ImageClick(Sender: TObject);
  begin

    zweiteKarte:= not(zweiteKarte);
    i:= StrToInt(TImage(sender).Name[6]);
    TImage(sender).Picture.LoadFromFile(Bild[Platz[i]]);
    Name1:= TImage(sender).Name;

    If zweiteKarte
    then begin
        Bild1:= i;
        Name1:= TImage(Sender).Name;
    end
    else begin
        Bild2:= i;
        Name2:= TImage(Sender).Name;
    end;

    If zweiteKarte
    then If Platz[Bild1] <> Platz[Bild2]
        then begin
            MessageDlgPos('Gesehen?', mtConfirmation, mbYesNoCancel,0,400,400);
            for k:= 0 to componentcount-1 do
                if (TImage(components[k]).Name=Name1) or (TImage(components[k]).Name=Name2)
                Then TImage(components[k]).Picture.LoadFromFile('Bilder/Deckblatt.bmp');
                end
                else
  end;
end.
  Mit Zitat antworten Zitat
Saul
(Gast)

n/a Beiträge
 
#24

Re: Memory für "Anfänger"

  Alt 30. Dez 2007, 18:03
Zitat von wicht:
Du kannst mit dem Objektinspektor mehreren Objekten die selbe Prozedur für ein Ereignis zuweisen.
In der Prozedur zum Ereignis hast du meist einen Parameter "Sender", der wäre in deinem Image-OnClick dann das Bild, auf das geklickt wurde.
Ja das hab ich schonmal verwendet. Leider haben wir uns missverstanden. Hab mich etwas schlecht ausgedrückt. naja dazu komme ich dann später nochmal
  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 05:29 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