Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Kopf oder Zahl (https://www.delphipraxis.net/140178-kopf-oder-zahl.html)

DeddyH 12. Sep 2009 20:18

Re: Kopf oder Zahl
 
[OT] Der Speedy-Opa hat wieder zugeschlagen :lol: [/OT]
*Au Mann, ich kann nimma (hechel)*

Peter16 12. Sep 2009 21:03

Re: Kopf oder Zahl
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    LKopftoderZahl: TLabel;
    BBeenden: TButton;
    BMuenzewerfen: TButton;
    LKopf: TLabel;
    IKopf: TImage;
    IZahl: TImage;
    procedure BBeendenClick(Sender: TObject);
    procedure BMuenzewerfenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  operation: integer;

implementation

{$R *.dfm}

procedure TForm1.BBeendenClick(Sender: TObject);
begin
close
end;

procedure TForm1.BMuenzewerfenClick(Sender: TObject);
begin
//zufällige Operation
  operation := random(2) + 1;
  case operation of
    1 : begin
          LKopf.Caption := 'Kopf';
          IKopf.Picture.Bitmap.LoadFromFile ('MuenzeKopf.bmp');
        end;
    2 : begin
          LKopf.Caption := 'Zahl';
          IZahl.Picture.Bitmap.LoadFromfile ('MuenzeZahl.bmp');
        end;

end;


hab noch einmal ein frage. wie mach ich es wenn ich möchte das wenn ich auf muenze werfen drücke es das bild mit dem kopf anzeigt?

[edit=Matze][delphi]-Tag geschlossen. MfG, Matze[/edit]

Matze 12. Sep 2009 21:22

Re: Kopf oder Zahl
 
Hallo,

ich weiß nicht ob das dein Problem ist, was dein Problem ist, was genau nicht geht und wie sich was äußert, aber normalerweise reicht zum Laden eines Bildes das hier:

Delphi-Quellcode:
IKopf.Picture.LoadFromFile('MuenzeKopf.bmp');
Also ohne ".Bitmap".

Und gib den Pfad lieber absolut an. Du weißt nie, was dein Arbeitsverzeichnis ist, auf das sich relative Pfade beziehen:


Delphi-Quellcode:
IKopf.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'MuenzeKopf.bmp');

DeddyH 12. Sep 2009 21:25

Re: Kopf oder Zahl
 
Das Problem wird einfach sein, dass das Ziehen ratzfatz erledigt und somit die Spannung futsch ist. Da muss also eine Verzögerung her ;). Das könnte man z.B. über einen Timer lösen.

Peter16 12. Sep 2009 21:38

Re: Kopf oder Zahl
 
Liste der Anhänge anzeigen (Anzahl: 1)
[list][*][sql][delphi][quote][u]das ist mein programm könnt ja selbst sehen was nicht funktionier. ich weiß ni was ch noch machen soll.

DeddyH 12. Sep 2009 21:40

Re: Kopf oder Zahl
 
Da fehlen die Bitmaps. Was nicht da ist, kann auch nicht geladen werden. Du könntest aber eine TImageList nehmen, dann sind die Bitmaps gleich in den Resourcen enthalten.

Peter16 12. Sep 2009 21:42

Re: Kopf oder Zahl
 
und wie mach ich das dann?

Namenloser 12. Sep 2009 21:49

Re: Kopf oder Zahl
 
Du kannst auch einfach zwei Images aufs Formular klatschen, im Formulardesigner die Bilder hineinladen, und die Images dann später im Programm mit Image.Show bzw. Image.Hide ein- und ausblenden.

DeddyH 12. Sep 2009 21:49

Re: Kopf oder Zahl
 
Jepp, oder so ;)

Peter16 12. Sep 2009 21:52

Re: Kopf oder Zahl
 
wie würde dann der quelcode aussehen(bei mir)?

DeddyH 12. Sep 2009 22:02

Re: Kopf oder Zahl
 
Nimm 2 TImage, lad da jeweils eins der beiden Bilder rein und setz entsprechend Deiner Anforderung eins der beiden nach vorn (das geht mit BringToFront) bzw. das andere nach hinten (SendToBack). Der Rest ist Überlegung.

Peter16 12. Sep 2009 22:52

Re: Kopf oder Zahl
 
ich bekomme es einfach nicht hin ich gebe auf!

Die Muhkuh 12. Sep 2009 23:16

Re: Kopf oder Zahl
 
Zitat:

Zitat von Peter16
ich bekomme es einfach nicht hin ich gebe auf!

:thumb:

Medium 13. Sep 2009 08:21

Re: Kopf oder Zahl
 
Schade. Grad wo ich das Popcorn kalt gestellt, und das Bier gezuckert hab :cry:

Klaus01 13. Sep 2009 14:01

Re: Kopf oder Zahl
 
Liste der Anhänge anzeigen (Anzahl: 1)
so ...

.. ein Set und eine Klasse:

Delphi-Quellcode:
TSeite = set of (Kopf,Zahl);
TMuenze = class(TObject)
  private
    kopfSeite : TBitmap;
    zahlSeite : TBitmap;
    oben : TSeite;
  public
    constructor Create; virtual;
    destructor Destroy; override;
    procedure werfen;
    procedure zeigen(ausgabeImage: TImage); overload;
    function zeigen:AnsiString; overload;
end;
die Methoden:
Delphi-Quellcode:
constructor TMuenze.Create;
begin
  inherited create;
  randomize;

  kopfSeite := TBitmap.Create;
  kopfSeite.LoadFromFile(ExtractFilePath(ParamStr(0))+'MKopf.bmp');

  zahlSeite := TBitmap.Create;
  zahlSeite.LoadFromFile(ExtractFilePath(ParamStr(0))+'MZahl.bmp');

end;

destructor TMuenze.Destroy;
begin
  kopfSeite.Free;
  zahlSeite.Free;
end;


procedure TMuenze.werfen;
var
  kopfWurf : Boolean;
begin
  kopfWurf := random(2)+1 = 1;
  if kopfWurf then
    oben := [Kopf]
  else
    oben := [Zahl];
end;

procedure TMUenze.zeigen(ausgabeImage: TImage);
begin
  ausgabeImage.Stretch := true;
  ausgabeImage.Proportional := true;

  if oben = [Kopf] then
    ausgabeImage.Picture.bitmap.Assign(kopfSeite)
  else
    ausgabeImage.Picture.bitmap.Assign(zahlSeite);
end;

function TMuenze.zeigen:AnsiString;
begin
  if oben = [Kopf] then
    result := 'Kopf'
  else
    result := 'Zahl';
end;
wie man es nutzt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  muenze.werfen;
  muenze.zeigen(Image1);
  label1.Caption:=muenze.zeigen;
end;
Wie man aus dem Quelltext erkennen kann, sollten die bmp Dateien im
gleichen Ordner wie die Applikation liegen.

Nicht zu vergessen sind:
Eine Instanz der Klasse zu erzeugen und auch wieder
freizugeben.

Grüße
Klaus

jfheins 13. Sep 2009 15:04

Re: Kopf oder Zahl
 
Sehr gut finde ich die Umsetzung als Set - so kann man bei Gelegenheit auch die Zustände "Kopf und Zahl" sowie "Weder Kopf noch Zahl" darstellen :)

Nicht zu vergessen: Die Euroumstellung. Die 1€ Münze hat ja nur Zahl oder Wappen/Adler - das kann man direkt umsetzen zu [Zahl] und [] :mrgreen:

Und besonders Praktisch ist das, wenn bald die Münze erfunden wird, die gleichzeitig auf beiden Seiten landen kann :mrgreen:

Wolfgang Mix 13. Sep 2009 19:14

Re: Kopf oder Zahl
 
Schade, ab Post 52 habt Ihr ihn wohl vergrault. :(

@Peter 16

Melde Dich nach der Schule noch 'mal wieder und berichte,
was der Lehrer von Deiner Arbeit hält bzw. welche Fortschritte Du gemacht hast.

Gruß

Wolfgang

Die Muhkuh 13. Sep 2009 19:16

Re: Kopf oder Zahl
 
Naja, da Klaus nun alles gemacht hat, kann man wohl nicht mehr von "seiner" Arbeit sprechen. :zwinker:

Wolfgang Mix 13. Sep 2009 19:33

Re: Kopf oder Zahl
 
@Die Muhkuh

Zitat:

Naja, da Klaus nun alles gemacht hat, kann man wohl nicht mehr von "seiner" Arbeit sprechen. Zwinkern
Du hast natürlich Recht. Dann geben wir ihm doch die Tipps, die wir allen Anfängern geben:

- Tutorials von Delphi-Treff abarbeiten
- Crashkurs Delphi dto.

Als Anfänger mit vllt. 2 Doppelstunden Delphi-Unterricht hätte ich nach Post #52 auch aufgegeben.

Gruß

Wolfgang

Die Muhkuh 13. Sep 2009 19:36

Re: Kopf oder Zahl
 
Zitat:

Zitat von Wolfgang Mix
Als Anfänger mit vllt. 2 Doppelstunden Delphi-Unterricht hätte ich nach Post #52 auch aufgegeben

Dem bringt aber dann auch die Lösung von Klaus nix. Wer kennt nach 2 Doppelstunden Klassen und Sets? :zwinker:

Wolfgang Mix 13. Sep 2009 19:39

Re: Kopf oder Zahl
 
Genau das meinte ich damit

Gruß

Wolfgang

Wolfgang Mix 13. Sep 2009 19:57

Re: Kopf oder Zahl
 
@Alle

Vielleicht sollte man für Anfänger ein Arbeitsblatt erstellen, das Ihnen Starthilfen mit Tipps und Links liefert.
Wenn keiner von Euch Lust dazu hat, übernehme ich das im PDF-Format.
Die Inhalte könnte man ja dann hier diskutieren.


Gruß

Wolfgang

Die Muhkuh 13. Sep 2009 19:59

Re: Kopf oder Zahl
 
Du hast doch schon den Crashkurs genannt, da ist alles drinne :zwinker:

Klaus01 13. Sep 2009 20:01

Re: Kopf oder Zahl
 
Zitat:

Zitat von Wolfgang Mix
@Alle

Vielleicht sollte man für Anfänger ein Arbeitsblatt erstellen, das Ihnen Starthilfen mit Tipps und Links liefert.
Wenn keiner von Euch Lust dazu hat, übernehme ich das im PDF-Format.
Die Inhalte könnte man ja dann hier diskutieren.


Gruß

Wolfgang

Hallo Wolfgang,

was schwebt Dir denn da so vor?

Links mit Tutorien?
Einfache Programmierbeispiele (klassisch, OOP)?
Logisches Denken?
Wie zerlege ich eine Aufgabe in lösbare Teilaufgaben?

Grüße
Klaus

Wolfgang Mix 13. Sep 2009 20:15

Re: Kopf oder Zahl
 
Okay, dann erstellen wir eine kleine Linksammlung nur für Anfänger zur Ergänzung in einem neuen Thraed

- Links mit einfachen Tutorials (auch mit einfachen Cödebeispielen)
- kein OOP (ist ja im Crahkurs drin und noch nicht für Anfänger)

a la Delphi für Dummies

Dafür würde ich dann aber lieber einen neuen Thread starten

Eure Meinung?

Gruß

Wolfgang

Klaus01 13. Sep 2009 21:19

Re: Kopf oder Zahl
 
Hallo Wolfgang,

ein neuer Thread wäre sicher dazu besser.

Vielleicht kann ja ein Moderator diesen Thread ab Beitrag 62
abtrennen und einen neuen aufmachen?

Grüße
Klaus

Wolfgang Mix 14. Sep 2009 09:13

Re: Kopf oder Zahl
 
Gute Idee

Gruß

Wolfgang

Mithrandir 14. Sep 2009 09:44

Re: Kopf oder Zahl
 
Ihr meint, sowas wie ein Mini-FAQ? ;)

Das müsste einfach nur präsenter sein, am Besten auf der Startseite.

Peter16 14. Sep 2009 20:10

Re: Kopf oder Zahl
 
Also ich hab das jetzt mit SendtoBack und so gemacht. Ich war überhaubt einer der einzigen in der Klasse der es hinbekommen hat.
Danke für eure Hilfestellungen. :hello: :hello: :hello: :hello:

Wolfgang Mix 14. Sep 2009 21:43

Re: Kopf oder Zahl
 
:-D :-D :-D

Freue mich, daß Du wieder da bist

Gruß

Wolfgang

DeddyH 15. Sep 2009 07:10

Re: Kopf oder Zahl
 
Und mich freut, dass das Problem nur aufgrund eines kleinen Denkanstoßes gelöst wurde, ohne Quelltext vorkauen zu müssen :thumb:


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz