![]() |
Re: Kopf oder Zahl
[OT] Der Speedy-Opa hat wieder zugeschlagen :lol: [/OT]
*Au Mann, ich kann nimma (hechel)* |
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] |
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:
Also ohne ".Bitmap".
IKopf.Picture.LoadFromFile('MuenzeKopf.bmp');
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');
|
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.
|
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.
|
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.
|
Re: Kopf oder Zahl
und wie mach ich das dann?
|
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.
|
Re: Kopf oder Zahl
Jepp, oder so ;)
|
Re: Kopf oder Zahl
wie würde dann der quelcode aussehen(bei mir)?
|
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.
|
Re: Kopf oder Zahl
ich bekomme es einfach nicht hin ich gebe auf!
|
Re: Kopf oder Zahl
Zitat:
|
Re: Kopf oder Zahl
Schade. Grad wo ich das Popcorn kalt gestellt, und das Bier gezuckert hab :cry:
|
Re: Kopf oder Zahl
Liste der Anhänge anzeigen (Anzahl: 1)
so ...
.. ein Set und eine Klasse:
Delphi-Quellcode:
die Methoden:
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;
Delphi-Quellcode:
wie man es nutzt:
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;
Delphi-Quellcode:
Wie man aus dem Quelltext erkennen kann, sollten die bmp Dateien im
procedure TForm1.Button1Click(Sender: TObject);
begin muenze.werfen; muenze.zeigen(Image1); label1.Caption:=muenze.zeigen; end; gleichen Ordner wie die Applikation liegen. Nicht zu vergessen sind: Eine Instanz der Klasse zu erzeugen und auch wieder freizugeben. Grüße Klaus |
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: |
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 |
Re: Kopf oder Zahl
Naja, da Klaus nun alles gemacht hat, kann man wohl nicht mehr von "seiner" Arbeit sprechen. :zwinker:
|
Re: Kopf oder Zahl
@Die Muhkuh
Zitat:
- 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 |
Re: Kopf oder Zahl
Zitat:
|
Re: Kopf oder Zahl
Genau das meinte ich damit
Gruß Wolfgang |
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 |
Re: Kopf oder Zahl
Du hast doch schon den Crashkurs genannt, da ist alles drinne :zwinker:
|
Re: Kopf oder Zahl
Zitat:
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 |
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 |
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 |
Re: Kopf oder Zahl
Gute Idee
Gruß Wolfgang |
Re: Kopf oder Zahl
Ihr meint, sowas wie ein
![]() Das müsste einfach nur präsenter sein, am Besten auf der Startseite. |
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: |
Re: Kopf oder Zahl
:-D :-D :-D
Freue mich, daß Du wieder da bist Gruß Wolfgang |
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. |
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