AGB  ·  Datenschutz  ·  Impressum  







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

Erste Schritte mit Klassen - Wer hilft?

Ein Thema von Nonsense · begonnen am 6. Nov 2003 · letzter Beitrag vom 7. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#1

Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 19:06
Hallo Community,
ich würde mich jetzt gerne in das Thema Klassen einarbeiten, aber diese Thematik ist so komplex, dass man davon fast erschlagen wird.

Ich möchte gerne eine Klasse TSquare erstellen. Nach einem Ereignis (z.B. OnKeyDown oder ButtonClick) wird jeweils ein Ableger erstellt (Ich glaube die heißen Instanzen, bin mir aber nicht sicher).
Wenn sie, wie in meinem Beispiel, einen bestimmten Punkt überqueren, sollen sie sich automatisch löschen (Destroy\Free).

Ich habe keine Ahnung, wo ich anfangen soll, da ich nicht so recht weiß, welche Befehle hierfür angebracht sind. Ich habe mir schon das Tutorial von Delphi-Source durchgelesen, bin aber noch sehr unsicher.

Kann mir jemand bei diesem Thema ein paar Einstiegshilfen geben?

Danke.

MfG
Miniaturansicht angehängter Grafiken
image2.gif  
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#2

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:01
Kann mir keiner ein paar Anhaltspunkte geben?
  Mit Zitat antworten Zitat
Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:12
ich kann mir nich richtig was darunter vorstellen.. mach doch unter jedem ereignis wo das erstellt wird ne überprüfung ob der wert left + width deines ablegers höher als der wert left + width von deiner linie ist, wenn ja dann lösch das ganze doch... das kannste ja mit free machen (destroy geht auch, aber free is besser).
Christian
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:15
Moin Nonsense,

findest Du es nicht auch ein klein wenig übertrieben (um es mal nett zu formulieren), nach einer (!!) Stunde (!!) nachzufragen?
Nach einem Tag, ok, aber nach einer Stunde...
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#5

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:29
@Christian Seehase: Ok, ich hab wohl die Dimensionen des DP überschätzt Sorry.

Ok, also, ich war ja nicht untätig und hab ein bissel was probiert.
Seid bitte so nett und korrigiert mich, wenn ich was falsch verstanden habe.

Mit:
Delphi-Quellcode:
type
  TSquare = class(TObject)
  private
   FTest: integer;
  public
 end;
kann ich eine Klasse erzeugen.
Wie kann ich jetzt einen Ableger erstellen?
Ich habe was von
 constructor Create(Test: Integer); gelesen.

Demnach müsste ich nur noch des Konstruktor schreiben:
Delphi-Quellcode:
constructor TSquare.Create(X: integer; Y: integer);
begin
 inherited Create;

 FTest := Test;
end;
und aufrufen:
Square1 := TSquare.Create(12345); Klappt aber irgendwie nicht. Oder habe ich da was komplett falsch verstanden?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:35
Moin Nonsense,

die Deklaration des Konstruktors muss natürlich mit der der Implementierung übereinstimmen:

Delphi-Quellcode:
type
  TSquare = class(TObject)
  private
   FTest: integer;
  public
    constructor Create(Test: Integer);
  end;

implementation

constructor TSquare.Create(Test: Integer);
begin
  inherited Create;
  FTest := Test;
end;
 
// an einer Stelle, wo die Klasse benutzt wird

var
  Square1 : TSquare;

begin
  Square1 := TSquare.Create(12345);
  //...
end;
So sollte es gehen, auch wenn so eine Klasse noch nicht viel Sinn macht, und nur als Beispiel dient.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#7

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:40
@Christian Seehase: Hab's genauso wie du, der Fehler lag woanders. Es klappt jedenfalls.
Wie kann ich jetzt beliebig viele Ableger der Klasse erstellen? Ich meine ohne das ich diese immer extra deklarieren muss ("Square1", "Square2", etc.)?
Hab dazu noch gar nix gefunden (weder in meinen Büchern nochunter Delphi-Source).
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 20:46
Moin Nonsense,

wenn Du eine Klasse erstellst, die keinen Owner hat, wie z.B. von TComponent abgeleitete Klassen, musst Du Dich zwingend auch selber wieder um die Freigabe der durch die Instanzen der Klasse belegten Resourcen kümmern.
Ausserdem:
Um mit den Instanzen der Klasse arbeiten zu können, musst Du sie irgendwo speichern, mal unabhängig davon, ob sie nun einen Owner haben oder nicht.
Dazu könntest Du z.B. auch eine Tabelle (array) oder ein TList Objekt verwenden.
Dann müsstest Du zumindest nicht je eine Variable deklarieren.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#9

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 21:40
Meine ganz Denkweise kommt daher, dass ich mal vor Ewigkeiten (gute 3 Jahre ) in DelphiX programmiert habe. Dort gab es einen 2D-Shooter, bei dem man, wieder der Name schon sagt, auch schießen konnte. Ich glaube mich zu erinnern, dass die Schüsse Instanzen einer Klasse waren.

Ist ja auch egal, es geht mir ja mehr um die Theorie als um grafische Spielereien.

Deshalb dachte ich, dass man einfach unendlich viele Instanzen erstellen kann. Da ist es ja egal, dass ich die Resourcen selbst freigeben muss, da sie ja sowieso nach ein paar Pixeln wieder gelöscht werden.

Also ist direkt nicht möglich, wie ich es mir vorgestellt habe?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Erste Schritte mit Klassen - Wer hilft?

  Alt 6. Nov 2003, 21:49
Moin Nonsense,

Du kannst natürlich einer Variablen beliebig oft ein Objekt zuweisen.
Du musst halt nur daran denken, vor einer erneuten Zuweisund das jeweils enthaltenen Objekt wieder freizugeben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:20 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