AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ist das schon Klasse?

Ein Thema von Gonzo2 · begonnen am 4. Nov 2007 · letzter Beitrag vom 6. Nov 2007
 
Gonzo2

Registriert seit: 4. Nov 2007
42 Beiträge
 
#13

Re: Ist das schon Klasse?

  Alt 6. Nov 2007, 06:28
Zitat von mkinzler:
Du hast aber die anderen beiträge nicht gelesen, sonst wäre dir die Antwort klar. Ruft man Methoden auf die Klasse auf, werden diese als Klassenmethoden ausgeführt, das Funktioniert solange man nicht auf Member der Klasse zugreift. Existiert keine Instanz, existieren diese auch nicht.
Keine Respektlosigkeit, nur war deine kurze Antwort sehr allgemein und geschrieben aus der Sicht und mit der Kenntnis eines Wissenden, für den das bereits zum Allgemeinwissen gehört. Ich hab nur etwas von Konstruktoren, Klassenmehhoden und Bahnhöfen verstanden.

Zitat von Phoenix:
Wenn Du eine solche Prozedur / Funktion so baust, dass sie ohne die Felder der Klasse auskommt - also den Speicherbereich für die Variablen nicht benötigt - dann solltest Du sie auch als eine Klassenmethode deklarieren.
Verstehe ich das richtig, daß mir eine Ausnahme bei den Klassen und arbeiten mit den Objekten aufgefallen ist, wo ich fast richtig annahm damit arbeiten zu können, aber damit alles korrekt ist, ich noch class vor die Prozedur schreiben muß? Dann ist es eine Klassenmethode und dann kann ich offiziel und ohne eine Fehler begangen zu haben damit arbeiten, ohne ein Objekt anlegen zu müssen?

Dann wäre also das hier der richtige Weg?

Delphi-Quellcode:
type
  TTestClass3 = class
  public
    class procedure Hallo;
  end;

class procedure TTestClass3.Hallo;
begin
  ShowMessage('Beispiel 3');
end;
Das Problem und vor allem der große Unterschied scheint mir zu sein, daß ich es dann nicht über eine Variable machen kann

Delphi-Quellcode:
var
  Test3: TTestClass3;
Funktioniert nicht

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Test3.Hallo;
end;
Funktioniert

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  TTestClass3.Hallo;
end;
Funktioniert

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Test3 := TTestClass3.Create;
  Test3.Hallo;
  Test3.Free;
end;
Somit habe ich entweder das alte Problem oder nicht 100% das Gleiche, denn entweder nutze ich die Klassenmethode, dann gehe ich nicht über ein Objekt, sondern über die Klasse, so habe ich es zumindest aus den in den Links beschriebenen Kursen verstenden, muß aber die Klasse davorschreiben, oder ich nutze Create. Es ist dann doch ein kleiner Unterschied zu dem ersten Beispiel von mir in dem ich es weder als Klassenmethode deklariert habe, dafür abe ohne Create mit der Variable auf dei Prozedur zugegriffen habe.

Ich weiß, ich bin eine Klette am A., aber ich würde es gerne 100% und ohne einen Hauch Zweifel verstehen.
  Mit Zitat antworten Zitat
 

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 04:18 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