![]() |
image.picture auslesen?
Hey Leute hab ein Proplem mit image
ich weise der leeren komponente image1.picture entweder image2.picture oder image3.picture zu. wenn jetz zum beispiel image1.picture:=image2.picture; dann übernimmt er zwar das bild wenn ich aber prüfen will if image1.picture=image2.picture then label1.caption:='true' else label.1caption:='false' (zum beispiel so in der art) dann gibt er immer false aus. also image1.picture wurde image2.picture zugeweisen aber wenn ichs mit if überprüfen will is es irgendwie nich so woran liegts? |
Re: image.picture auslesen?
Zitat:
Delphi-Quellcode:
;)
<ImageX>.Picture.Assign( <ImageY>.Picture );
Und:
Code:
So kannst du Bilder nicht vergleichen. Das liegt unter Anderem daran das Bitmaps intern unterschiedliche Handles zugewiesen bekommen.
if image1.picture=image2.picture then label1.caption:='true' else label.1caption:='false' (zum beispiel so in der art)
|
Re: image.picture auslesen?
Ich würde eher sagen, dass das nicht funktioniert, weil ein := durch den Property-Setter automatisch zu einem Assign umgesetzt wird. Und der =-Operator vergleicht nur Referenzen.
|
Re: image.picture auslesen?
Danke für die Antworten. Aber kann ich denn garnicht überprüfen ob image1.picture ein bestimmtes Bild hat?
|
Re: image.picture auslesen?
Zitat:
|
Re: image.picture auslesen?
Eben, ansonsten könnte man die Bilder in jeweils einen MemoryStream laden und mit CompareMem vergleichen (nicht ausprobiert, nur so ein Gedanke).
|
Re: image.picture auslesen?
hmm ich weiss immer noch nich wie ich mein problem lösen soll dann nenn ichs mal konkreter
![]() auf jedem feld liegt eine image komponente ich will jetzt dass die ki (roter kreis) einen roten kreis in das feld zwischen die kreuze setzt. also wenn die felder von oben links bis unten rechts nummeriert sind dann wollte ich sowas if feld1=kreuz an feld2=leer and feld3=kreuz then feld2:=kreis wie soll ich das aber umsetzen wenn er bei image1.picture=imagekreuz.picture false sagt obwohl dort aber ein kreuz ist? |
Re: image.picture auslesen?
Nutze ein Array, in denen du zB. eine 0 für den Kreis und eine 1 für das Kreutz speichern.
Wenn das Array dann beim Zeichnen ausgelesen wird kanst du deine Images je nach Wert setzen. |
Re: image.picture auslesen?
Du musst die Logik von der Darstellung trennen, dann geht das recht einfach. Was Du da als Spielfeld hast, lässt sich ja als 2-dimensionales Array abbilden. Als einzelnes Feld bietet sich ein Record oder eine Klasse an, die 3 verschiedene Zustände kennt: leer, Kreuz oder Kreis. Je nachdem, welchen Zustand das Feld hat, lädst Du die entsprechende Grafik. Du musst nun nicht mehr binär Bitmaps vergleichen, sondern nur die Zustände der beiden Felder.
|
Re: image.picture auslesen?
Ok vielen Dank, hat alles gut geklappt mit record. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz