![]() |
Delphi-Version: 5
Spiel programmieren, ( if Image1.picture= ???)
Hallo und guten Tag,
ich bin zur Zeit dran ein kleines Spiel zumachen, leider habe ich nun ein kleines Problem. Ich hatte versucht über die Suchfuntion hier und über google was zu finden, leider erfolsglos. Nun wollte ich hier mal fragen ob es möglich ist bei einem Image abzufragen ob ein bestimmtes Bild geladen wurde. Beispiel:
Code:
Ich hoffe hier kann mir jemand helfen.
if Zone1.Picture = (C:\Projekt Duell (end.)\Bilder\Saloon\A1a.png) then
begin showmessage('peng'); end; MfG |
AW: Spiel programmieren, ( if Image1.picture= ???)
Diese Information musst du gesondert abspeichern.
|
AW: Spiel programmieren, ( if Image1.picture= ???)
Könntest du mir sagen wie ich die bild information gesondert speichern kann damit meine if abfrage funtioniert?
|
AW: Spiel programmieren, ( if Image1.picture= ???)
Du nimmst eine Stringvariable und wenn du etwas in das Image lädst, dann speicherst du dort den Namen.
|
AW: Spiel programmieren, ( if Image1.picture= ???)
hab nun versucht mit einem string
Code:
oder
begin
Zone1.Picture.loadfromfile('C:\Projekt Duell (end.)\Bilder\Saloon\A1a.png'); bilda:=('C:\Projekt Duell (end.)\Bilder\Saloon\A1a.png'); end;
Code:
und
begin
Zone1.Picture.loadfromfile('C:\Projekt Duell (end.)\Bilder\Saloon\A1a.png'); bilda:=Zone1.picture; end;
Code:
if Zone1.Picture = bilda then
begin showmessage('peng'); end; kommt dieser Fehler unit2.pas(222,9) Error: Incompatible types: got "TPicture" expected "AnsiString" diese beiden typen sind mir leider nicht bekannt |
AW: Spiel programmieren, ( if Image1.picture= ???)
Delphi-Quellcode:
if bilda = 'C:\Projekt Duell (end.)\Bilder\Saloon\A1a.png' then
begin showmessage('peng'); end; |
AW: Spiel programmieren, ( if Image1.picture= ???)
Allerdings finde ich die Speicherung als String nicht unbedingt elegant, mit einem eigenen Typ z.B. wäre das schöner.
Delphi-Quellcode:
Nun setzt man den Bildtyp, kann den elegant ohne String auswerten oder je nach Typ die entsprechende Datei laden (von Platte oder aus den Ressourcen) etc.
type
TBildTyp = (btIrgendwas, btWasAnderes, btWasGanzAnderes); |
AW: Spiel programmieren, ( if Image1.picture= ???)
Zitat:
Delphi-Quellcode:
type
TZoneType = (ztSaloonA1, ztSaloonA2, ...); const ZoneRootPath = 'C:\Projekt Duell (end.)\Bilder\'; ZoneImages: Array[TZoneTyp] of String = ('Saloon\A1a.png', 'Saloon\A2a.png', ...); var CurrentZoneType: TZoneType; begin ... CurrentZoneType := ztSaloonA1; Zone1.Picture.LoadFromFile(ZoneRootPath + ZoneImages[CurrentZoneType]); Zone1.Tag := Integer(CurrentZoneType); ... if TZoneType(Zone1.Tag) = ztSaloonA1 then begin ShowMessage('peng'); end; ... end; |
AW: Spiel programmieren, ( if Image1.picture= ???)
Vielen Dank,
dass mit dem String klappt nun richtig. Aber an das mit den typen trau ich mich nicht rumzuprobieren, muss da noch etwas lernen um damit zurecht zukommen. Wenn ich noch welche probleme habe wende ich mich an euch. Danke noch mal. MfG |
AW: Spiel programmieren, ( if Image1.picture= ???)
Hallo ich bins wieder;
hab wieder ein einfaches Problem. Habe Form1 und Form2. Form1 fungiert als Hauptmenü was dann From2 öffnet, dies funtioniert auch richtig. Das Problem ist nach dem man Form2 gewonnen/verloren hat soll man wieder zum Menü und dort neu starten können. Ich kann zwar Form2 visible/enabled false machen aber das löscht sie nicht und wenn der button des menüs aktiviert wird geht schon das durchlaufene programm auf. Kurz gefasst brauche ich ein Befehl der Form2 erstellt und das alter löscht durch einen button klick. MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 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