Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi proceduren in unterklassen problem (https://www.delphipraxis.net/122120-proceduren-unterklassen-problem.html)

th_bone 9. Okt 2008 19:59


proceduren in unterklassen problem
 
Hi,

bisher hatte ich meine oft genutzten Proceduren/Funktionen in einer Klasse untergebracht, um einfach auf sie zuzugreifen.

Da es aber langsam unübersichtlich wird, wollte ich die Proceduren durch eine 2te Klasse schachteln un thematisch ordnen

um z.B. aus myfunctions.nowUTC -> myfunctions.time.nowutc zu machen... was an sich auch beim programmieren funktioniert

- aber sobald ich auf eine funktion zugreife bekomme ich eine AccessViolation...

Danke

Ralf

hier mein versuch:

Delphi-Quellcode:

unit myglobal;

interface

uses mytime;

type
  T = class
  public
    time: Tmytime;
  end;

implementation

end.

*********************

unit mytime;

interface

uses  Windows, Forms, SysUtils, jcldatetime, controls;

type
  TmyTime = class
  public
    function nowUTC: TDateTime;
  end;

implementation

function TmyTime.nowUTC: TDateTime;
var
  SystemTime: TSystemTime;
begin
  GetSystemTime(SystemTime);
  with SystemTime do
    Result := EncodeDate(wYear, wMonth, wDay) +
      EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;

end.

omata 9. Okt 2008 20:03

Re: proceduren in unterklassen problem
 
Objekt muss mit Create erzeugt werden.

Dunkel 9. Okt 2008 20:04

Re: proceduren in unterklassen problem
 
Hallo!

Hast Du auch eine Instanz Deiner Klasse erstellt?

Delphi-Quellcode:
  MeineKlassenInstanz := TMeineKlasse.Create();
  MeineKlassenInstanz.TuIrgendwas();
  MeineKlassenInstanz.Free();

sx2008 9. Okt 2008 20:30

Re: proceduren in unterklassen problem
 
Zitat:

Zitat von th_bone
bisher hatte ich meine oft genutzten Proceduren/Funktionen in einer Klasse untergebracht, um einfach auf sie zuzugreifen.

Da es aber langsam unübersichtlich wird, wollte ich die Proceduren durch eine 2te Klasse schachteln un thematisch ordnen

Das sollte man eigentlich nicht tun.
Wenn du z.B. jede Menge Funktionen und Proceduren zum Thema Datum und Uhrzeit hast, dann packst du diese in eine eigene Unit (z.B. "DateTimeUtils") und gut is.
Alle Funktionen und Proceduren sollten dann so programmiert sein, dass man sie im Prinzip in jedes Projekt einbinden kann.
Man *kann* wenn man will diese Funktionen in einer Klasse zusammenfassen.
Dann sollte man aber Klassenmethoden verwenden.
Delphi-Quellcode:
type
  TTimeUtils = class(TObject)
    // keine echte Klasse, da keine Variablen vorhanden
  public
    class function GetUTC:TDateTime;
    class procedure SetUTC(dt:TDateTime);
  end;
Wie gesagt, das ist keine "echte" Klasse, weil keine Variablen enthalten sind.
mehr über Klassenmethoden


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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