AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array of Pointer ... oder so

Ein Thema von Schilly · begonnen am 28. Sep 2009 · letzter Beitrag vom 28. Sep 2009
Antwort Antwort
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#1

Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:00
Moinmoin,

Ich wollte mal Minesweeper programmieren und dafür eine klasse TMineButton (von TSpeedButton abgeleitet) und eine klasse TMineField (von TPanel) machen. unter anderem sollte ein TMineButton 8 "Neighbours" haben, also die buttons um ihn herum. Jetzt wollte ich mal ausprobieren, wie das mit pointern geht, also sollte es ungefähr so aussehen:
Delphi-Quellcode:
type TMineButton = class(TSpeedButton)
  private
    fNeighbour : array[0..7] of Pointer;

...

function TMineButton.GetNeighbour(Index : Integer) : Pointer;
begin
  Result := fNeighbour[Index];
end;

procedure TMineButton.SetNeighbour(Index: Integer; P: Pointer);
begin
  fNeighbour[Index] := P;
end;
zuerst hatte ich halt anstatt pointer überall ^TMineButton
eine routine aus TMineField sollte dann einem Button später automatisch die addresse der benachbarten buttons als neighbour zuweisen ...
aber irgendwie klappt das nicht ^^ es kommt ein EStackOverflow ...

kann mir jemand sagen, wie es richtig geht? oder sollte man einfach ein array der koordinaten der benachbarten buttons machen, weil es so nicht geht?

vielen dank im vorraus
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:03
einfach statt Pointer TSpeedButton verwenden ... bzw TMineButton
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#3

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:07
ja ... aber verbraucht das nicht zuviel speicher? - wäre jetzt meine frage gewesen, wobei mir grade einfällt dass es dann wahrscheinlich gar nicht neu gespeichert wird .. so wie arrays, oder? ^^

hm ok, also gar nicht mit pointern ...
danke
  Mit Zitat antworten Zitat
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#4

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:09
habs grad geändert, Stack Overflow gibts trotzdem ...
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:23
Zitat von Schilly:
ja ... aber verbraucht das nicht zuviel speicher? - wäre jetzt meine frage gewesen, wobei mir grade einfällt dass es dann wahrscheinlich gar nicht neu gespeichert wird .. so wie arrays, oder? ^^

hm ok, also gar nicht mit pointern ...
danke
Delphi-Quellcode:
var
  Mine1, Mine2: TMineButton;

  Mine1 := TMineButton.Create; //Damit wird eine Instanz von TMineButton erzeugt und der Speicher entsprechend reserviert. Mine1 enthält nun einen Zeiger auf die Daten.

  Mine2 := Mine1; //Damit wird nur der Zeiger, der auf Mine1 zeigt Mine2 zugewiesen, d.h. Mine1 und Mine2 zeigen nun auf die gleiche Instanz.
Ich würde gar kein Array mit Nachbarn verwenden, sonder jeder Mine ihre Koordinate im Minenfeld mitgeben. Daraus kann sie sich dann die Nachbarn errechnen:

Mine mit den Koordinaten x/y

Nachbarn: x-1/y-1
x-1/y
x-1/y+1
usw.

Du musst natürlich noch kontrollieren, ob die Koordinate nicht an die Grenze des Minenfeldes stößt und der Mine eine Referenz auf das komplette Minenfeld mitgeben.
  Mit Zitat antworten Zitat
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#6

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:35
ok, dieses verständnis von zeigern und objektnamen hatte ich noch nicht ... danke

ja, ich hab die koordinaten haben sie auch schon, ich dachte nur mit pointer wäre es eleganter und einfacher zu lösen ...
aber gut wenn es nicht einfacher geht, dann danke ich euch und einen schönen tag noch. ^^
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:42
Hab das mal mit einem mehrdimensionalen Array geschrieben, wo an jeder Stelle über Bits der Status des jeweiligen Feldes steht. Die Lösung an sich war praktikabel und über die Indizes im Array, konnte man auch sofort auf die Nachbarn und deren Status zugreifen.

Falsch finde ich ein Array für dieses Spiel wirklich nicht.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#8

Re: Array of Pointer ... oder so

  Alt 28. Sep 2009, 14:44
Zitat von Schilly:
ich dachte nur mit pointer wäre es eleganter und einfacher zu lösen
eine Objektvariable ist sozusagen schon selber ein Pointer auf das zugehörige Objekt.

PS: wie hattest du denn deine Pointer referenziert?
(hoffentlich nicht über lokale Variablen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 21:54 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