AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi zur laufzeit erstellte Items löschen und Name zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

zur laufzeit erstellte Items löschen und Name zuweisen

Ein Thema von Detrox · begonnen am 29. Okt 2009 · letzter Beitrag vom 29. Okt 2009
Antwort Antwort
Seite 1 von 3  1 23      
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#1

zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 17:37
Hi, habe wiedermal ein Problem, ich möchte Sachen vom Himmel rieseln lassen,
per zufall also zB Bombe/Herz/Banane.

wenn diese zur Laufzeit erzeugten Images den unteren Rand der Form erreicht haben, sollen sie gelöscht werden.
(das habe ich mit visible gelöst aber das ist glaube auch nicht resourcenschonend)
Nur bekomm ich das nicht hin, folgende Probleme:

- sobald ein neues Bild erzugt wurde ist der Name createitem ja an das neuerzeugte Bild vergeben.
- ich möchte auch abfragen was für ein Bild den boden erreicht hat zB showmessage('Banane hat gerade den Boden erreicht');

hier mal mein derzeitiger Code:

Delphi-Quellcode:
procedure TForm1.itemfabrikTimer(Sender: TObject);
begin
itemcount:=itemcount+1;
createitem:= TImage.Create(self);
createitem.Name:='item' + inttostr (itemcount);
createitem.Parent := Form1;
createitem.Left:=baloon.left+74;
createitem.Top:=baloon.Top+baloon.Height;
createitem.picture.LoadFromFile('img/bomb.gif');
createitem.AutoSize:=true;
createitem.show;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if itemcount>=1 then
createitem.Top:=createitem.Top+1;
if ((itemcount>=1) and (createitem.top>=spielfeld.top+spielfeld.Height-30)) then
createitem.Visible:=False;

end;
LG
Detrox
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.014 Beiträge
 
Delphi 12 Athens
 
#2

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 17:41
Schau mal nach Delphi-Referenz durchsuchenFindComponent
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 17:50
Und zum 2. Problem: Du könntest die Klasse TImage ja um ein Feld erweitern. Mal aus dem Kopf:
Delphi-Quellcode:
type
  TItemKind = (ikBanana, ikBomb, ikHeart);

  TImage = class(ExtCtrls.TImage)
  private
    FItemKind: TItemKind;
  public
    property ItemKind: TItemKind read FItemKind write FItemKind;
  end;

  TForm1 = class(TForm)
  ...
Nun solltest Du nach dem Erzeugen des TImage die Eigenschaft ItemKind setzen und auswerten können.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#4

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 17:57
Zur Antwort von Uwe Raabe

das mache ich doch schon mit:

createitem.Name:='item' + inttostr (itemcount); Mein Problem ist eigentlich, das sich die erzeugten Items mit einem Timer nach unten bewegen.
Nur wen ein neues Item erzeugt wird bewegt sich dieses nach unten solange bis ein neues erzeugt wird usw...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 17:59
Damit setzt Du den Namen, Uwes Tipp ging in die Richtung "Image zur Freigabe wiederfinden"
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#6

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 18:03
Ich hab mal das Spiel mit Source hochgeladen, ich versteh nur noch Bahnhof, villeicht kann mir wer meinen Denkfehler eklären

LG
Detrox
Angehängte Dateien
Dateityp: rar game_167.rar (457,7 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 18:11
Was verstehst Du denn nicht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#8

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 18:14
DeddyH

Der Timer der die Erzeugten Bilder nach unten bewegt, muss jedes erzeugte bild nach unten bewegen bis ein ereigniss eintritt
(am boden angekommen).

Das versteh ich nicht, denn wie soll ich dem Timer die Namen von allen Bildern sagen er weis ja auch nie wieviele Bilder erzeugt wurden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 18:17
Dann speichere die Objekte doch in einem Array/einer TObjectList ab, das/die kannst Du dann einfach durchlaufen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#10

Re: zur laufzeit erstellte Items löschen und Name zuweisen

  Alt 29. Okt 2009, 18:41
Ganz dumme Frage, bin noch Anfänger hab die Objecktlist nie benutzt, hab mir das mal auf Delphi-Treff angeschaut, nur kann mein Delphi nix mit TObjecktlist anfangen, ist das eine Komponente? Ich kann sie im Reiter nirgends finden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 08:14 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