Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Memory Programm (https://www.delphipraxis.net/184226-memory-programm.html)

DeddyH 17. Mär 2015 15:13

AW: Memory Programm
 
Wie soll es denn nun weitergehen?

KillerMary 17. Mär 2015 15:14

AW: Memory Programm
 
ich brauch nen Gedankenblitz .. ne erklärung die passt und funktioniert ._.

DeddyH 17. Mär 2015 15:16

AW: Memory Programm
 
Davon gab es in diesem Thread aber einige.

KillerMary 17. Mär 2015 15:20

AW: Memory Programm
 
ohne erklärung was passiert wo das rein muss oder das jemand sich in uns versetzen kann das wir
leider keine Profis sind.

DeddyH 17. Mär 2015 15:37

AW: Memory Programm
 
Dann kann ich etwas Lektüre empfehlen:
E-Book vom Delphi-Treff
Grundlagen-Tutorials vom Delphi-Treff
Delphi-Basics (Englisch)

KillerMary 17. Mär 2015 15:49

AW: Memory Programm
 
danke.. aber um mir komplett Delphi leküre zu genuss zuführen, fehlt mir leider Zeit.

naja.. dann muss ich eine andere Lösung finden.

BadenPower 17. Mär 2015 15:55

AW: Memory Programm
 
Grundsätzliche aber wichtige Frage:

Für wieviel Spieler soll das Spiel ausgelegt werden?

KillerMary 17. Mär 2015 16:02

AW: Memory Programm
 
Das ist egal. Das programm soll auch nicht komplett sein für jedes Thema und jede schwierigkeit.
weil sich das ja dann nur wiederholt.

es wurden uns keine Grenzen gesetzt.

BadenPower 17. Mär 2015 16:24

AW: Memory Programm
 
Zitat:

Zitat von KillerMary (Beitrag 1293804)
Das ist egal.

Auf deutsch heisst das jetzt, Ihr habt noch nicht einmal Papier und Bleistift zu Hand genommen und Euch notiert, was geschiet oder geschehen soll, wenn ich was mache und was das Programm dann im Hintergrund noch selbst erledigen muss und in welcher Abfolge?

Perlsau 17. Mär 2015 17:50

Wieder einer dieser ziel- und hoffnugslosen Hausaufgabenthreads?
 
Zitat:

Zitat von KillerMary (Beitrag 1293801)
danke.. aber um mir komplett Delphi leküre zu genuss zuführen, fehlt mir leider Zeit.

Davor hattest du aber massenhaft Zeit, dir Delphi (über "leküre") beizubringen, wenn du das in der Schule bereits seit Jahre lernst – natürlich entsprechendes Interesse vorausgesetzt. Letzteres fehlt offenbar, denn wie mir scheint, geht es dir/euch nur darum, bis zum Abgabetermin schnell die Hausaufgaben erledigt zu bekommen. Was anderes kann ich an deinem/eurem mangelhaften Engagement nicht ablesen – naja, außer daß du/ihr kein bißchen was gelernt habt und auch nicht bereit wart, in der Vergangenheit Freizeit dafür zu opfern. Jetzt aber sollen hilfsbereite User ihre Freizeit opfern, um dir/euch aus dem Schlamassel zu helfen – angesichts deiner/eurer offensichtlichen Erkenntnisresistenz ein schwieriges Unterfangen, da euch hier zahlreiche Hilfestellungen bereits völlig erfolglos gegeben wurden. Was wäre die nächste Stufe der Hilfsbereitschaft? Ein komplettes Programm? Oder noch einmal von vorne beginnend das Programmkonzept erfragend.

Luckie 17. Mär 2015 20:19

AW: Memory Programm
 
Ok. Ich glaube, das war jetzt deutlich und bedarf keiner weiteren Kommentare mehr.

Die Frage ist, ob man mit dem vorhandenen Wissen jetzt was brauchbares bauen kann.

Klassen wären zwar schöner, aber es sollte auch mit Records und Arrays gehen. Die Karte als Record definieren und dann alle Karten in ein Array packen. Irgendwie so würde ich das jetzt angehen.

BadenPower 17. Mär 2015 20:56

AW: Memory Programm
 
Zitat:

Zitat von Luckie (Beitrag 1293821)
Die Frage ist, ob man mit dem vorhandenen Wissen jetzt was brauchbares bauen kann.

Die Frage ist auch, wo können wir ansetzen um zu helfen, ohne gleich die gesamte Programmlogik zu schreiben?

Denn:
Zitat:

Zitat von KillerMary (Beitrag 1293657)
wir verzweifeln und müssen es bis Freitag fertig haben. ._.


DeddyH 17. Mär 2015 21:00

AW: Memory Programm
 
Zitat:

Zitat von BadenPower (Beitrag 1293824)
Die Frage ist auch, wo können wir ansetzen um zu helfen, ohne gleich die gesamte Programmlogik zu schreiben?

Das ist auch mein Hauptgedanke bei der Sache. Nur: wenn man schon die Grundlagen nicht beherrscht und keine Zeit hat, sie sich anzueignen, wie will man das dann schaffen?

p80286 17. Mär 2015 21:35

AW: Memory Programm
 
Wer lesen kann ist klar im Vorteil. in #16 steht praktisch die vollständige Logik. Was noch fehlt falls ich es nicht übersehen habe, ist die Markierung der erkannten/gefundenen.
Die Gleichheitsprüfung liegt ja praktisch schon auf dem Tisch.

Jetzt noch die Koordinaten der Maus beim Klick auf den Array-Index abbilden, fertig.

Den Rest der Zeit kann man dann hingebungsvoll mit der Gestaltung der Oberfläche verbringen.

Gruß
K-H

BadenPower 18. Mär 2015 08:13

AW: Memory Programm
 
Zitat:

Zitat von p80286 (Beitrag 1293827)
Wer lesen kann ist klar im Vorteil.

Dir ist hoffentlich nicht entgangen, dass die Mädels mit einer allgemeinen Vorgabe, wie in #16, überhaupt nichts anzufangen wissen.

Schau einmal wo sie den Vorschlag von DeddyH aus #7 zur Erzeugung eines Zählers der umgedrehten Karten eingebaut haben. Was soll der im FormCreate() denn bewirken?

Sir Rufo 18. Mär 2015 08:32

AW: Memory Programm
 
Zitat:

Zitat von BadenPower (Beitrag 1293857)
Zitat:

Zitat von p80286 (Beitrag 1293827)
Wer lesen kann ist klar im Vorteil.

Dir ist hoffentlich nicht entgangen, dass die Mädels mit einer allgemeinen Vorgabe, wie in #16, überhaupt nichts anzufangen wissen.

Schau einmal wo sie den Vorschlag von DeddyH aus #7 zur Erzeugung eines Zählers der umgedrehten Karten eingebaut haben. Was soll der im FormCreate() denn bewirken?

Dem stimme ich doch mal zu.

Ich hätte mich ja zu mehr (Code) hinreißen lassen, wenn ich so etwas wie ein Konzept (etwas mehr wie in #16) gesehen hätte. Aber hier gab es nichts ausser Jammern wie schlecht der Lehrkörper ist. Das ist mir persönlich zu wenig und da zieht auch kein Welpen- oder Frauen-Bonus.

Mavarik 18. Mär 2015 09:12

AW: Memory Programm
 
Zitat:

Zitat von Sir Rufo (Beitrag 1293861)
Ich hätte mich ja zu mehr (Code) hinreißen lassen, wenn ich so etwas wie ein Konzept (etwas mehr wie in #16) gesehen hätte. Aber hier gab es nichts ausser Jammern wie schlecht der Lehrkörper ist. Das ist mir persönlich zu wenig und da zieht auch kein Welpen- oder Frauen-Bonus.

Ich habe mich der "Sache" mal aus angenommen... Warum?

Einen Delphi Entwickler zu finden ist wie die Nadel in einem Heuhaufen... Daher wollte ich mal wissen, wie es mit dem Stand des Informatikunterrichts aussieht.

Fazit?

Ich kann nicht verstehen, wie man in so langer zeit so wenig und soviel Mist den Schülern beibringen kann... Immer vorausgesetzt das KillMary die Aussagen Ihrer Lehrerin korrekt wieder gegeben hat.

Mavarik

p80286 18. Mär 2015 09:36

AW: Memory Programm
 
Zitat:

Zitat von BadenPower (Beitrag 1293857)
Zitat:

Zitat von p80286 (Beitrag 1293827)
Wer lesen kann ist klar im Vorteil.

Dir ist hoffentlich nicht entgangen, dass die Mädels mit einer allgemeinen Vorgabe, wie in #16, überhaupt nichts anzufangen wissen.

Schau einmal wo sie den Vorschlag von DeddyH aus #7 zur Erzeugung eines Zählers der umgedrehten Karten eingebaut haben. Was soll der im FormCreate() denn bewirken?

OK, mit meinen Lesefähigkeiten ist es nicht weit her.
Ich hatte mir gestern Abend beim Ausführen unseres Hundes überlegt, wie man mit möglichst wenig Vorrausetzungen das Problem erschlagen könnte, leider hatte Sir Rufo da schon längst das wichtigste formuliert.

@Mavarik
Ob in Delphi oder C oder ... die Sprache ist nicht so wichtig, wenn man sich Programmabläufe vorstellen kann. Aber ohne das, ist jede Sprachkenntnis vollkommen totes Wissen.

Gruß
K-H

Mavarik 18. Mär 2015 10:06

AW: Memory Programm
 
Zitat:

Zitat von p80286 (Beitrag 1293881)
... die Sprache ist nicht so wichtig, wenn man sich Programmabläufe vorstellen kann. Aber ohne das, ist jede Sprachkenntnis vollkommen totes Wissen.

Logisch, aber das ist doch IMMER unsere Antwort - eigentlich die 1. Antwort auf alle Frage die sich mit Schulprojekten beschäftigen.

"Habt Ihr euch mal mit Bleistift und Papier dem Problem gewidmet..."

Aber es fehlt trotzdem das Verständnis für die einfachsten Delphi Umsetzungen.

Wenn ich dann ein Projekt sehe welches
- für jeden Eventualität ein Formular hat
- die Namen von Forms & Variablen gruselig sind
- 30 Forms (für Memory) im Autocreate stehen.
- Für 3 Schwierigkeitsgrade alles Forms 3x existieren...
- Auf allen Forms alle Images statisch draufgeklickt worden sind
- Jedes Image (zwei übereinander) ein eigenes OnClick hat
- Das umschalten der Forms mit Form.Show passiert. (Alle anderen liegen drunter)
- usw.

Ist an den Schulen dringender Handlungsbedarf geboten. (Vielleicht aber auch nur ein Einzelbild)

Mavarik

Luckie 18. Mär 2015 14:15

AW: Memory Programm
 
Ich würde euch bitten zum eigentlichen Problem zurück zu kommen.

Mavarik 18. Mär 2015 18:56

AW: Memory Programm
 
Zitat:

Zitat von Luckie (Beitrag 1293933)
Ich würde euch bitten zum eigentlichen Problem zurück zu kommen.

Zitat:

Zitat von Mavarik (Beitrag 1293874)
Ich habe mich der "Sache" mal aus angenommen...

Es sind alle Fragen beantwortet...(Skype / TeamViewer)

Mavarik

Sherlock 20. Mär 2015 08:00

AW: Memory Programm
 
Ist der TB nicht etwas ganz tolles?

Jeder andere "Löst mir mal die Hausaufgabe"-Thread wäre spätestens auf Seite zwei vorbei gewesen, wenn der Fragende männlich gewesen wäre. Hut ab vor der geballten Ritterlichkeit. ;)

Sherlock

Mavarik 20. Mär 2015 09:24

AW: Memory Programm
 
Zitat:

Zitat von Sherlock (Beitrag 1294178)
wenn der Fragende männlich gewesen wäre.

Ich denke nicht, dass dies hier eine Rolle Spielt für die Leute dich sich immer bemühen Hilfe zu leisten!

Sherlock 20. Mär 2015 09:31

AW: Memory Programm
 
Zitat:

Zitat von Mavarik (Beitrag 1294198)
Zitat:

Zitat von Sherlock (Beitrag 1294178)
wenn der Fragende männlich gewesen wäre.

Ich denke nicht, dass dies hier eine Rolle Spielt für die Leute dich sich immer bemühen Hilfe zu leisten!

Das ist wohl korrekt, aber die Anzahl der zusätzlichen Helfer ist beachtlich, und manche der sonst recht bissigen Mitglieder sind geradezu handzahm geworden ;)

Sherlock

Mavarik 20. Mär 2015 10:03

AW: Memory Programm
 
Zitat:

Zitat von Sherlock (Beitrag 1294199)
Das ist wohl korrekt, aber die Anzahl der zusätzlichen Helfer ist beachtlich, und manche der sonst recht bissigen Mitglieder sind geradezu handzahm geworden ;)

Auch da würde ich Dir widersprechen... Es waren schon ein paar heftiges Antworten dabei!

Vielleicht habe ich es überlesen, aber mir war es nicht klar... Erst als ich mit Ihr telefoniert habe... :stupid:

himitsu 20. Mär 2015 10:10

AW: Memory Programm
 
Sonst würden ja Andere auch ständig mit Hilfe überschüttet, nur weil sie einen weiblichen Avatar oder einen weiblich klingenden Nickname besitzen.
sakura :stupid:

Interessant wäre, ob sie sich wenigstens bedankt haben, wo sie es hier ja noch nicht gemacht haben.
(sind nun bestimmt verschreckt und trauen sich nicht mehr oder werden eh nie wieder was mit Delphi zu tun haben)

Luckie 20. Mär 2015 10:59

AW: Memory Programm
 
Ich muss euch noch mal zur Ordnung rufen! Bleibt bitte beim Thema.

Mavarik 20. Mär 2015 14:38

AW: Memory Programm
 
Zitat:

Zitat von himitsu (Beitrag 1294204)
Interessant wäre, ob sie sich wenigstens bedankt haben, wo sie es hier ja noch nicht gemacht haben.

Ja... Ich denke das kommt noch...

Zitat:

Zitat von Luckie (Beitrag 1294211)
Ich muss euch noch mal zur Ordnung rufen! Bleibt bitte beim Thema.

Sir ja Sir! :-)

Das Thema - was war nochmal das Thema... Ach richtig...

Memory ist a recht einfach zu programmieren...

Drei Sachen werden in der Schule scheinbar nicht beigebracht...

1. Arbeiten mit TImage(Sender)
2. Arbeiten mit dem Tag Feld
3. Programmablauf mit mehreren Fenstern.

Danach ist Memory na nur ein paar Zeilen Source...

Mavarik

BUG 20. Mär 2015 14:52

AW: Memory Programm
 
Zitat:

Zitat von Mavarik (Beitrag 1294241)
Drei Sachen werden in der Schule scheinbar nicht beigebracht...

Wundert mich nicht ... bei mir wurde damals nicht ein einziges Mal das Wort Objekt in den Mund genommen :mrgreen:

KillerMary 29. Mär 2015 09:34

AW: Memory Programm
 
So, einmal zur Aufklärung.
Ich kann nichts für die Kompetenz meiner Lehrerin.
Dass wir in 2 Jahren Delphi nur das einfache Grundgerüst gelernt haben und nun keine "Profis" und
all Wissende sind tut mir auch leid.
Das ist ein Gymnasium mit 90 Minuten Informatik in einer Woche.
Und im Grunde haben wir nur ein Jahr wirklich mit Delphi programmiert.

SO und ich danke Mavarik das er uns geholfen hat und sich die Zeit genommen hat.
Ich danke euch allen, aber leider konnte ich durch unser Unwissen nicht viel davon verwenden.

Weiter zu sagen ist, dass wir uns das wahrscheinlich wirklich nicht gut überlegt haben, ja das gebe ich zu.
Wir haben beide aber nicht gedacht, dass es SO kompliziert ist.

Und falls ihr es wissen wollt, es ist für Mavarik etwas in Planung. Meine Freundin und ich setzen uns noch mal mit ihm in Kontakt, leer geht er für seine Hilfe und Zeit nicht aus.

Und das wir nicht mehr geschrieben haben liegt einfach daran, dass wir im Vorprüfungsstress waren und nicht weil ich irgendeine Angst haben.
Ihr könnt Frauen gegenüber gerne Vorurteile haben, aber leider wisst ihr nicht genau was wir gelernt haben und alles auszuzählen teilt euch unseren Wissensstand auch nicht mit.

Aber danke für alle Mühen.

abisch 12. Jun 2015 19:33

AW: Memory Programm
 
Hallo alle zusammen,
ich habe ein ähnliches Problem. Beim Programmieren des Memorys habe ich einige Schwierigkeiten, vor allem mit der DrawGrid-Komponente.
Bisher habe ich mit Hilfe von Schleifen jedem meiner 10 Bilder Koordinaten und eine "ID" zugeordnet (das ganze zwei Mal, um Paare zu erzeugen).
Nun möchte ich die Bilder in das DrawGrid laden (jede der 20 Zellen soll am Ende ein Bild beinhalten). Allerdings finde ich keine Möglichkeit, die Zellen, ähnlich wie beim StringGrid, einzeln über die Koordinaten anzusprechen.
Ich sitze nun schon ziemlich lange daran und verzweifle langsam. Daher wäre ich über einen rettenden Tipp sehr froh! :)

Hier mein bisheriger Quelltext:

Code:
var Memory    : array [1..4,1..5] of Integer;
    Pfad   : array [0..9] of String
    = ('Bild1.bmp', 'Bild2.bmp', 'Bild3.bmp', 'Bild4.bmp', 'Bild5.bmp', 'Bild6.bmp',
        'Bild7.bmp', 'Bild8.bmp', 'Bild9.bmp', 'Bild10.bmp');
     Bilder    : array [0..9] of TImage;


procedure BilderLaden;
var i : Integer;
begin
  for i := 0 to 9 do
  begin
    Bilder[i] := TImage.Create(nil);
    Bilder[i].Picture.LoadFromFile(Pfad[i])
  end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DrawGrid1.ColCount:=5;
DrawGrid1.RowCount:=4;
DrawGrid1.FixedCols:=0;
DrawGrid1.FixedRows:=0;
end;

procedure PaareFinden;
var i,x,y,Zaehler : Integer;
begin
i:=1;
Randomize;
while i<=10 do
begin
Zaehler:=0;
  while Zaehler < 3 do
    begin
      x:=Random(5)+1;
      y:=Random(4)+1;
        if Memory[x,y]=0 then
          begin
            Memory[x,y]:=i;
            Zaehler:=Zaehler+1
          end;
    end;
  i:=i+1;
 end;
end;

procedure KartenZuordnen;              // und ab hier wird es problematisch..
var i : Integer;
    Memory    : array [1..4,1..5] of Integer;
begin
PaareFinden;
for i:= 1 to 10 do
Memory[i]:=(DrawGrid1.Cells[x,y]);     // in Anlehnung an das StringGrid
end;
end.

SMO 12. Jun 2015 22:16

AW: Memory Programm
 
Zitat:

Zitat von abisch (Beitrag 1304989)
Allerdings finde ich keine Möglichkeit, die Zellen, ähnlich wie beim StringGrid, einzeln über die Koordinaten anzusprechen.
Ich sitze nun schon ziemlich lange daran und verzweifle langsam. Daher wäre ich über einen rettenden Tipp sehr froh! :)

Hallo! So etwas gibt's beim DrawGrid nicht. Stattdessen musst du einen Handler für das "OnDrawCell" Event schreiben. Also im visuellen Designer das DrawGrid auswählen, dann im Objektinspektor zu den Events und "OnDrawCell" doppelklicken. Außerdem würde ich für die Bilder kein TImage nehmen, sondern TPicture oder TBitmap. TImage ist nämlich eine visuelle Komponente, also ein GUI, das du ebenso wie einen Button oder ein DrawGrid auf einer Form platzieren kannst. Aber für deine Zwecke ist das ja gar nicht nötig!
Die Unterschiede zwischen TImage, TPicture, TGraphic usw. sind verwirrend, nicht nur für Anfänger. Hier eine kurze Erklärung auf Englisch.

Da deine Bilder alle Bmp-Dateien sind, nehmen wir am besten TBitmap. Sieht dann ungefähr so aus:

Delphi-Quellcode:
var
  Memory: array [1..4,1..5] of Integer;
  Bilder: array [0..9] of TBitmap;

procedure BilderLaden;
var i : Integer;
begin
  for i := 0 to 9 do
  begin
    Bilder[i] := TBitmap.Create;
    Bilder[i].LoadFromFile(Pfad[i]);
  end
end;

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
  State: TGridDrawState);
var
  BildNr: Integer;
begin
  // Das DrawGrid hat keine festen Zellen (FixedCols=0, FixedRows=0), sonst müssten
  // wir das hier bei den Koordinaten berücksichtigen.

  // Das Bild ermitteln, das zur aktuellen Zelle (ACol, ARow) gehört
  // Memory-Array hat 1-basierte Koordinaten
  BildNr := Memory[ARow + 1, ACol + 1];

  // Bild auf die Zelle malen (BildNr ist 1-basiert?)
  DrawGrid1.Canvas.StretchDraw(Rect, Bilder[BildNr - 1]);
  // oder: DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, Bilder[BildNr - 1]);
  end;
end;

Popov 13. Jun 2015 15:54

AW: Memory Programm
 
Zitat:

Zitat von abisch (Beitrag 1304989)
Allerdings finde ich keine Möglichkeit, die Zellen, ähnlich wie beim StringGrid, einzeln über die Koordinaten anzusprechen.
Ich sitze nun schon ziemlich lange daran und verzweifle langsam. Daher wäre ich über einen rettenden Tipp sehr froh! :)

Zufällig habe ich vor paar Monaten auch ein Memory Spiel programmiert. Mir ging es da aber weniger um das Spiel selbst, als um das Testen einer Komponente. Das Ganze ist "einfacher" als man denkt, das Problem ist aber wie so oft, dass manche Leute auf einen Lösungsweg fixiert sind und deshalb nicht für neue Ideen bereit sind. Dass ist so wie mit den Leuten die mit ihren Kindern über eine stark befahrene Straße wollen. Man kann denen 100 mal sagen, dass 20 Meter weiter ein Zebrastreifen ist. Die sind auf diese Stelle fixiert und wenn sie nicht ... dann stehen sie da noch heute.

So kompliziert es sich auch anhört, die Lösung ist die eine einzelne Image-Komponente, bzw. die Bitmap drin. Statt sich tagelang mit der DrawGrid zu ärgern, kann man im Bruchteil der Zeit alles die Grid selbst auf der Bitmap erstellen. Es ist einfacher als man denkt, es hört sich nur kompliziert an.

Delphi-Quellcode:
uses
  ShellApi;

const
  Breite = 32;

var
  Matrix: array[0..9, 0..9] of Integer;

//-------------------- Zufälliges Bild erstellen -------------------------------

function ExpandEnv(const s: string): string;
var
  l: Integer;
begin
  l := ExpandEnvironmentStrings(PChar(s), nil, 0);
  SetLength(Result, l - 1);
  ExpandEnvironmentStrings(PChar(s), PChar(Result), l);
end;

function FileIconPath: string;
begin
  Result := ExpandEnv('%SystemRoot%\system32\SHELL32.dll');
end;

function FileIconCount(const FileName: string): Integer;
begin
  Result := 0;
  if FileExists(FileName) then
    Result := ExtractIcon(HInstance, PChar(FileName), $FFFFFFFF);
end;

//Gibt eine Bitmap 32*32 zurück, generiert aus System-Icons
procedure TestBmp(Bmp: TBitmap; Index: Integer);
var
  IconCount: Integer;
  Icon: TIcon;
begin
  Icon := TIcon.Create;
  try
    IconCount := FileIconCount(FileIconPath);
    if FileIconCount(FileIconPath) > 0 then
      Icon.Handle := ExtractIcon(HInstance, PChar(FileIconPath), Random(IconCount));

    Bmp.Canvas.Draw(0, 0, Icon);
  finally
    Icon.Free;
  end;
end;

//--------------------------------- Ende ---------------------------------------

//-------------------------- Eigentliche Prozeduren ----------------------------

procedure TForm1.FormCreate(Sender: TObject);
var
  IconCount: Integer;
  x, y: Integer;

  Bmp: TBitmap;
begin
  IconCount := FileIconCount(FileIconPath);

  with Image1.Picture do
  begin
    Bitmap.Width := 10 * Breite; //0..9 -> 10
    Bitmap.Height := 10 * Breite;
  end;

  for x := 0 to 9 do
    for y := 0 to 9 do
    begin
      Matrix[x, y] := Random(IconCount);

      Bmp := TBitmap.Create;
      try
        Bmp.Width := Breite;
        Bmp.Height := Breite;

        //---Platzierung---
        TestBmp(Bmp, Matrix[x, y]);
        Image1.Picture.Bitmap.Canvas.Draw(x * Breite, y * Breite, Bmp);
      finally
        Bmp.Free;
      end;
    end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ShowMessageFmt('Koordinate: x = %d; y = %d', [x div Breite, y div Breite]);
end;

abisch 14. Jun 2015 15:11

AW: Memory Programm
 
Hallo!
Vielen Dank für Eure Hilfe!
Ich habe Deinen Tipp umgesetzt, SMO. Ich erhalte nun keine Fehlermeldungen mehr, allerdings werden die Bilder immer noch nicht angezeigt. Was meinst Du mit 1-basiert?

Popov 14. Jun 2015 15:48

AW: Memory Programm
 
Beginnt bei 1 und nicht bei 0.

SMO 14. Jun 2015 19:34

AW: Memory Programm
 
Zitat:

Zitat von abisch (Beitrag 1305060)
Hallo!
Vielen Dank für Eure Hilfe!
Ich habe Deinen Tipp umgesetzt, SMO. Ich erhalte nun keine Fehlermeldungen mehr, allerdings werden die Bilder immer noch nicht angezeigt. Was meinst Du mit 1-basiert?

Deine Arrays "Pfad" und "Bilder" haben 0 als Startindex, dein "Memory" Array aber 1. Und die Integer, die im "Memory" Array stehen, sind wohl auch 1-basiert, d.h. Wert 1 = zeige Bilder[0] = Bild1.bmp an. Das ist okay so, nur etwas verwirrend.

Außerdem sehe ich da gerade noch einen Fehler in der Prozedur "PaareFinden": da kommt zweimal "Memory[x,y]" vor, sollte aber Memory[y,x] sein. Denn dein Grid hat ja 5 Spalten und 4 Zeilen und Memory ist als "array [1..4,1..5]" definiert.

himitsu 14. Jun 2015 20:08

AW: Memory Programm
 
Und warum kommt keiner auf die Idee mal die Bereichsprüfung zu aktivieren? :roll:

abisch 14. Jun 2015 21:37

AW: Memory Programm
 
Vielen Dank für Eure Hilfe! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Seite 2 von 2     12   

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