AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wie ändere ich unter best. Vorr. das Bild eines Images?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ändere ich unter best. Vorr. das Bild eines Images?

Ein Thema von Inqui · begonnen am 16. Feb 2006 · letzter Beitrag vom 16. Feb 2006
Antwort Antwort
Inqui

Registriert seit: 16. Feb 2006
3 Beiträge
 
#1

Wie ändere ich unter best. Vorr. das Bild eines Images?

  Alt 16. Feb 2006, 21:39
Hallo liebe Delphi User!

Zunächst einmal sei gesagt, dass ich noch ein blutiger Anfänger in Delphi bin und ich habe, wer hätte es gedacht, ein "kleines" Problem mit meinem Delphi Programm, das ich bis jetzt noch nicht lösen konnte.

In der FormCreate erstelle ich zunächst ein 24x24 Felder "Spielfeld" aus vielen einzelnen images:

Delphi-Quellcode:
for j := 1 to 24 do begin
  for i := 1 to 24 do begin
  Bild[(j-1)*24+i]:=TImage.Create(Form1);
  Bild[(j-1)*24+i].Parent:=Form1;
  Bild[(j-1)*24+i].Height:=20;
  Bild[(j-1)*24+i].Width:=20;
  Bild[(j-1)*24+i].Left:=20*i;
  Bild[(j-1)*24+i].Top:=20*j;
  Bild[(j-1)*24+i].Name:='Feld'+InttoStr((j-1)*24+i);
  Bild[(j-1)*24+i].Picture.LoadFromFile('neutral.bmp');
  end;
end;
nun mächte ich in einer anderen Prozedur während der Laufzeit das angezeigte Bild eines dieser bestimmten "Felder" (bzw. Images) ändern, indem ich ein anderes Bild hineinlade.

Dabei ist mir die Stelle im array bzw. der Name des Images natürlich bekannt aber irgendwie komme ich nicht drauf wie ich mit diesen Informationen das entsprechende Image während der Laufzeit in einer anderen Prozedur ansprechen kann.Irgendwie vermute ich zwar, dass die Lösung ganz einfach ist aber naja ...

Ich hoffe ihr könnt mir helfen und danke Euch im vorraus.


Inqui

/edit

Ich habe es bisher mit
Bild[i].Picture.LoadFromFile('image1.bmp'); (i bezeichnet die mir bekannte Stelle des Feldes das geändert werden soll)
probiert, aber sobald die Bedingung für den "Austausch" erfüllt wurde kam ein EAccesViolation Fehler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie ändere ich unter best. Vorr. das Bild eines Images?

  Alt 16. Feb 2006, 21:51
1.) Wo wurde der array Bild deklariert (Formularkalsse?)
2.) Handelt es sich um eine freie Prozedur, aus der zugegriffen wird oder einer anderen Methode der Form?
Markus Kinzler
  Mit Zitat antworten Zitat
Inqui

Registriert seit: 16. Feb 2006
3 Beiträge
 
#3

Re: Wie ändere ich unter best. Vorr. das Bild eines Images?

  Alt 16. Feb 2006, 22:04
1) Ich habe das array sowohl Global deklariert als auch in der Formcreate und in der Prozedur, die das Bild ändern soll.
(sonst kam der fehler: Class does not have a default property)

2) Es handelt sich um eine freie Prozedur.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie ändere ich unter best. Vorr. das Bild eines Images?

  Alt 16. Feb 2006, 22:10
Wenn du von mehreren Stellen aus auf die selber daten zugreifen willst, darfst du ihn nur einmal deklarieren.
-Wenn du ihn global deklarierst kannst du problemlos darauf zugreifen. davon würde ich aber abraten, außerdem macht dann das Laden im OnCreate wenig Sinn.
-Im Formular im public Teil, dann kanst du von der freien Prozedur mit Form.Bild... darauf zugreifen.
Besser aber freie Prozedur zur Methode machen und Array in private/protected deklarieren u.U Property erzeugen wenn freie Prozedur bleibt.
Markus Kinzler
  Mit Zitat antworten Zitat
Inqui

Registriert seit: 16. Feb 2006
3 Beiträge
 
#5

Re: Wie ändere ich unter best. Vorr. das Bild eines Images?

  Alt 16. Feb 2006, 22:44
Ok also ich habe die überschüssigen Deklarationen entfernt, aber die EAccesViolation wurde dadurch ausgelöst, dass ich einen simplen Tippfehler beim Bildnamen hatte und er dann versucht hat nicht existente Bilder zu laden

Naja jedenfalls funktioniert jetzt alles so wie es soll und ich Danke dir für dine Hilfe

MfG

Inqui
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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