AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Allgemeine Abfrage von Klassen
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeine Abfrage von Klassen

Ein Thema von Matze33 · begonnen am 10. Dez 2010 · letzter Beitrag vom 11. Dez 2010
Antwort Antwort
Matze33

Registriert seit: 25. Aug 2010
38 Beiträge
 
Delphi 6 Personal
 
#1

Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 19:02
Sorry für den Titel, hatte keine bessere Idee

Also ich habe ein Bild als Spielfigur, das ich steuern kann in alle Richtungen. Da ich mit Schwerkraft spielen möchte, brauche ich eine Abfrage, ob die Figur auf einem Hindernis (dafür nehme ich Panels) steht oder nicht.
Einzeln kann man das ja leicht ermitteln (if Image1.Top+Image1.Height=Panelx.Top Then ...), aber kann ich auch das irgendwie allgemein machen, sodass ich also nicht für jedes Panel das schreiben muss?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 19:28
Hau die Panels eben in eine Liste und iterier über diese Liste?

Delphi-Quellcode:
var
  PanelList : TObjectList;
  i : Integer;
  pn : TPanel;
begin
  PanelList.Add(TPanel.Create(nil));
  PanelList.Add(TPanel.Create(nil));
  PanelList.Add(TPanel.Create(nil));

  for i := 0 to PanelList.Count - 1 do
  begin
    pn := TPanel(PanelList[i]);
    
    // und hier dann eben der Vergleich oder whatever.

  end;
end;
-- EDIT: Kannst natürlich auch eine Methode HitTest(ObjectA: TWinControl; ObjectB: TWinControl) schreiben, die prüft ob sich zwei Objekte überlagern.

-- EDIT2: Du solltest dir mal den Unterschied zwischen einer Instanz der Klasse und der Klasse selbst aneignen, fällt mir gerade auf Eine Klasse ist nur die Definition, was für Eigenschaften und Methoden eine Instanz später mal hat. z.B. gibt es TMensch als Klasse mit den Eigenschaft Name, Adresse, Geburtstag etc. Armin und Matze wären Instanzen dieser Klasse. Teilweise verwendet man auch Objekt als Synonym zu Klasse. Nun solltest den Titel deines Threads besser wählen können.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (10. Dez 2010 um 19:51 Uhr)
  Mit Zitat antworten Zitat
Matze33

Registriert seit: 25. Aug 2010
38 Beiträge
 
Delphi 6 Personal
 
#3

AW: Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 19:53
Wie erstelle ich denn eine PanelList?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 19:57
Das ist nur ein Variablenname Der kann auch xyz heißen. Der Typ ist das wichtige dabei: TObjectList. Das ist eine Liste mit all den Objekten, die du eben da rein wirfst. Somit kannst du drüber iterieren.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Matze33

Registriert seit: 25. Aug 2010
38 Beiträge
 
Delphi 6 Personal
 
#5

AW: Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 20:29
Oh ja Mist, mein Fehler^^
Er zeigt jetzt aber in der Zeile, wo ich PanelList deklariere "Undeclared identifier: 'TObjectList'" als Fehlermeldung an.
Hab nichts verändert, woran kann das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Allgemeine Abfrage von Klassen

  Alt 10. Dez 2010, 20:43
Dir fehlt die Unit, in der TObjectList deklariert ist. Bei uses oben muss noch Contnrs dazu.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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 09:32 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