Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zufallsbilder erstellen (https://www.delphipraxis.net/155758-zufallsbilder-erstellen.html)

jacoj 6. Nov 2010 17:36

Zufallsbilder erstellen
 
Hallo,ich bin noch ein Anfänger im Programmieren mit Delphi und benötige daher mal eure Hilfe:

Ich hab angefangen ein Bilderratespiel zu programmieren.
D.h. im Hintergrund liegt ein Bild, welches von Buttons bedeckt wird.
Nun klickt man auf diese und das Bild kommt langsam zum Vorschein. bis dahin kein Problem,
doch nun soll mit jeder neuen "Runde" aus einem Bilderpool eins ausgewählt und wieder hinter
die Buttons gelegt werden.

Aber wie bekomme ich dieses zufälliges Hinterlegen der Bilder hin, noch dazu in
einem bestimmen Bereich auf der "Grundebene" ???

Währe echt toll wenn ihr mir helfen könntet, am besten mit Quelltexten.

Danke im voraus!

SirThornberry 6. Nov 2010 17:50

AW: Zufallsbilder erstellen
 
Weißt du denn generell wie man einen Zufallswert in Delphi erzeugt? Damit solltest du anfangen und dann ist es egal ob es um eine zufällige Datei oder dergleichen geht.

jacoj 6. Nov 2010 18:23

AW: Zufallsbilder erstellen
 
Naja ich weis nur dies mit dem randomize und dem random

aurikel_Max 6. Nov 2010 18:30

AW: Zufallsbilder erstellen
 
Zitat:

Zitat von jacoj (Beitrag 1060099)
Naja ich weis nur dies mit dem randomize und dem random

Du kannst doch zB. mit random einen Integerwert ermitteln, welcher dann der Indexwert aus einer TImageList ist (geht das?)

DeddyH 6. Nov 2010 20:34

AW: Zufallsbilder erstellen
 
Zitat:

Zitat von aurikel_Max (Beitrag 1060100)
Du kannst doch zB. mit random einen Integerwert ermitteln, welcher dann der Indexwert aus einer TImageList ist (geht das?)

Delphi-Quellcode:
Index := Random(Liste.Count);
In welchem Bereich liegt nun Index? ;)

mkinzler 6. Nov 2010 20:39

AW: Zufallsbilder erstellen
 
Besser
Delphi-Quellcode:
Index := Random(Liste.Count-1);

DeddyH 6. Nov 2010 20:43

AW: Zufallsbilder erstellen
 
Wieso?

Satty67 6. Nov 2010 20:44

AW: Zufallsbilder erstellen
 
besser nicht, wenn das letzte Bild auch angezeigt werden soll ;)

Ich glaube über Range des Random-Parameter ist inzwischen schon jeder gestolpert.

DeddyH 6. Nov 2010 20:45

AW: Zufallsbilder erstellen
 
Ja eben.
Zitat:

In Delphi gibt Random eine Zufallszahl im Bereich 0 <= X < Range zurück.

Satty67 6. Nov 2010 20:52

AW: Zufallsbilder erstellen
 
...oder aus der C Hilfe, die etwas verständlicher ist:

Random(num) gibt eine Zahl von 0 bis num-1

jacoj 6. Nov 2010 21:49

AW: Zufallsbilder erstellen
 
Erst einmal danke das ihr euch zeit für mein Problem nehmt,
nur werd ich aus euren Ratschlägen nicht ganz schlau?

Hier noch ma die Probleme wo ich nicht weis wie:

1. Die Bilder sind in einem Ordner (ergeben den Bilderpool), d.h. die müssten ja vorher ihrendwie dem Programm bekannt gegeben werden, so das die dann auch der Zufallsgenerator benutzen kann

2.Wenn der Generator dann eins hat muss das in einem bestimmten Bereich auf der Formdatei draufgeladen werden


Also das beste wäre wenn ihr ein Quelltextauszug hättet (da versteh ich das glaubich am besten)

jacoj 6. Nov 2010 21:53

AW: Zufallsbilder erstellen
 
Äh ich bin gerade beim Forum durchforsten auf was gestoßen, könnte mir dies helfen??
(zumindest der Quellcode)

http://www.delphipraxis.net/142511-w...enproblem.html

Sir Rufo 6. Nov 2010 21:56

AW: Zufallsbilder erstellen
 
Zitat:

Zitat von jacoj;
Äh ich bin gerade beim Forum durchforsten auf was gestoßen, könnte mir dies helfen??
(zumindest der Quellcode)

http://www.delphipraxis.net/142511-w...enproblem.html

Learning by Trial And Error so try

Mithrandir 6. Nov 2010 22:04

AW: Zufallsbilder erstellen
 
Hach, unsere liebe CodeLibrary...

Zitat:

Zitat von jacoj (Beitrag 1060120)
1. Die Bilder sind in einem Ordner (ergeben den Bilderpool), d.h. die müssten ja vorher ihrendwie dem Programm bekannt gegeben werden, so das die dann auch der Zufallsgenerator benutzen kann

Verzeichnisse nach Dateien durchsuchen

Zitat:

Zitat von jacoj (Beitrag 1060120)
2.Wenn der Generator dann eins hat muss das in einem bestimmten Bereich auf der Formdatei draufgeladen werden

Delphi-Quellcode:
Image1.LoadFromFile(StringList1.Items[i]);

jacoj 7. Nov 2010 11:28

AW: Zufallsbilder erstellen
 
:-D:-D Juhu es funktioniert, vielen dank für die Hilfe!

Da wäre nur noch ein was, wie kann ich dem Programm sagen wenn dieses bild schon einmal aus
gewählt wurde dan nicht mehr benutzen bis wir einmal alle hatten ???

(bestimmt mit If und Then oder gehts auch anders)

Matze 7. Nov 2010 11:33

AW: Zufallsbilder erstellen
 
Das musst du dir irgendwo merken (z.B. in einem Array) und dann z.B. mittels einer While-Schleife so lange eine neue Zufallszahl erzeugen, bis der generierte Index nicht im Array auftaucht. Diesen schriebst du dann in das Array.

Progman 7. Nov 2010 11:37

AW: Zufallsbilder erstellen
 
Erstelle eine zweite Liste, fülle sie mit der ersten arbeite mit der zweiten. Ist ein Listeneintrag benutzt, wird er gelöscht. Natürlich musst du jetzt für Random Liste2.Count nehmen. Wenn Liste2 leer ist ( Liste2.count=0) dann wird sie neu gefüllt.

mkinzler 7. Nov 2010 11:41

AW: Zufallsbilder erstellen
 
Oder einen eigene Typ der die gewünschten ( gelöscht, ...) Eigenschaften enthält

DelphiMini 7. Nov 2010 16:23

Zufallsbilder erstellen
 
Erstelle doch einfach eine ImageList und mach die Bilder da rein.
(Doppelklick auf die TImageList)

Schreib dann zum zufälligen auswählen einfach:
Delphi-Quellcode:
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    ImageList1.GetBitmap(random({Maximalanzahl der Bilder}), Bitmap);
    Image1.Picture.Bitmap := Bitmap;
  finally
    FreeAndNil(Bitmap);
  end;
Bis Bald :!:

Sir Rufo 7. Nov 2010 16:51

AW: Zufallsbilder erstellen
 
Zitat:

Zitat von DelphiMini (Beitrag 1060245)
Erstelle doch einfach eine ImageList und mach die Bilder da rein.
(Doppelklick auf die TImageList)

Schreib dann zum zufälligen auswählen einfach:
Delphi-Quellcode:
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    ImageList1.GetBitmap(random({Maximalanzahl der Bilder}), Bitmap);
    Image1.Picture.Bitmap := Bitmap;
  finally
    FreeAndNil(Bitmap);
  end;
Bis Bald :!:

Und das funktioniert?

Erst die Referenz-Übergabe
Delphi-Quellcode:
Image1.Picture.Bitmap := Bitmap;
und dann die Referenz wieder wegschmeißen
Delphi-Quellcode:
FreeAndNil(Bitmap);
?

DeddyH 7. Nov 2010 16:51

AW: Zufallsbilder erstellen
 
Damit sind aber keine Doppler ausgeschlossen.

P.S.: Willkommen in der DP :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 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