AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OOP-Delphi-Anfänger

Ein Thema von hotkey · begonnen am 11. Jan 2012 · letzter Beitrag vom 11. Jan 2012
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:09
Wenn man zum aktuellen horizontalem Wert (x) etwas hinzufügt und zum aktuellen vertikalen Wert (y) nichts hinzufügt, wo kommt man dann wohl raus?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (11. Jan 2012 um 18:11 Uhr)
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#2

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:11
Okay , das wär abgehakt , dankeschön.

Was hat self.breite für eine Funktion ?
Felix
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:16
Self ist immer die Referenz auf die Instanz der Methode.
Hier also die Referenz auf die aktuelle TRechteck-Instanz.

Self ist zwar nicht zwingend erforderlich, kann aber den Code verständlicher machen, bzw. einem fehlerhaften Bezug vorbeugen

Hier in diesem Fall ist es egal, ob man es hinschreibt oder nicht
Delphi-Quellcode:
procedure TRechteck.ZeichneAuf( aCanvas : TCanvas );
begin
  aCanvas.LineTo( aCanvas.PenPos.X + {Self.}breite, aCanvas.PenPos.y );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#4

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:18
Alles klar vielen Dank.

Damit "erkennt" man sozusagen auf was sich diese "breite" bezieht , habe ich das richtig interpretiert ?
Felix
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:18
Alles klar vielen Dank.

Damit "erkennt" man sozusagen auf was sich diese "breite" bezieht , habe ich das richtig interpretiert ?


Achtung, jetzt nicht verwirren lassen ... das ist jetzt reine Spielerei, könnte einem aber mal unter die Füße kommen:
Delphi-Quellcode:
procedure TRechteck.ZeichneAuf( aCanvas : TCanvas );
// lokale Variablen
var
  hoehe, breite : integer;
begin
  // weil diese Methode gleichlautende lokale Variablen wie die Klasse Felder hat,
  // muss man in dieser Methode für den Zugriff auf die Klassen-Felder das Self voransetzen!
  // den lokalen Variablen wird ein Wert zugewiesen
  hohe := Self.hoehe - 10;
  breite := Self.breite - 10;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (11. Jan 2012 um 18:24 Uhr)
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#6

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:23
Alles klar vielen Dank.

Kurze Frage noch :

Was passiert wenn man mehrere Subklassen (Vererbung) hat , mer Objekte mehr Instanzen , kann man self dann immernoch benutzen ?
Felix
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:29
Alles klar vielen Dank.

Kurze Frage noch :

Was passiert wenn man mehrere Subklassen (Vererbung) hat , mer Objekte mehr Instanzen , kann man self dann immernoch benutzen ?
Bei einer Vererbung hat man nicht mehr Instanzen, sondern immer nur eine,
denn die Klassenbeschreibung wird vererbt ... und keine Instanzen doppelt und dreifach erzeugt.

Delphi-Quellcode:
// Vererbung
TFoo = class
  FooData : integer;
end;

TFooSon = class( TFoo )
  FooSonData : integer;
end;
ist prinzipiell das gleiche wie
Delphi-Quellcode:
// Ohne Vererbung
TFooSon = class
  FooData : integer;
  FooSonData : integer;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:52 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