AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf Objekt in Klasse

Ein Thema von FediDelPr · begonnen am 25. Dez 2020 · letzter Beitrag vom 10. Jan 2021
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Zugriff auf Objekt in Klasse

  Alt 6. Jan 2021, 15:29
Die Tutorials gehen doch? Zumindest kann ich problemlos z. B. das folgende aufrufen:

https://www.delphi-treff.de/tutorial...i-crashkurs/8/

Delphi-Quellcode:
(* Deklaration und Aufruf *)

// jeder soll formatieren wie er kann und mag, aber dieses UPPERCASE der Schlüsselwörter ist irgendwie ganz schwer
// TurboPascal aus den Achtzigern. Da wird der Bildschirm vor dem inneren Auge schwarz und die Schrift giftgrün
// und auf auf 80 Zeichen pro Zeile begrenzt ;-)

VAR
  IMAPClientEx: TEmailCoreObject;
  ...

 BEGIN
   IMAPClientEx := TEmailCoreObject.Create(nil);
   IMAPClientEx.OpenEmail;
   ..
   ..
  // wenn fertig, freigeben:
  IMAPClientEx.Free;
 END;

(* Klassendefinition und Implementation (in eigenem Modul) *)
TYPE
  TEmailCoreObject = CLASS(TidIMAP4)
  PRIVATE
    (* Private-Deklarationen *)
    ..
  PUBLIC
    (* Public-Deklarationen *)
    PROCEDURE OpenEmail;
    PROCEDURE CloseEmail;
  END;

PROCEDURE TEmailCoreObject.OpenEmail; // < - - - - Hier die Änderung beachten
 BEGIN
   // hier jetzt die eigentliche Logik implementieren.
   ..
   ..
 END;
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Zugriff auf Objekt in Klasse

  Alt 6. Jan 2021, 15:38
@TiGü und andere

Entschuldigung, das habe ich unvollständig kopiert bzw. abgeschrieben.
Das ist schon mit der Klasse vorne dran.
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Zugriff auf Objekt in Klasse

  Alt 6. Jan 2021, 15:41
@TiGü

Du schon recht, das einzelne Tutorial lässt sich schon runterladen. Was nicht geht
ist der Download des Delphi-Starter.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zugriff auf Objekt in Klasse

  Alt 7. Jan 2021, 11:28
Du meinst dieses PDF-Buch?
Naja, da verpasst man jetzt auch nichts.
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Zugriff auf Objekt in Klasse

  Alt 8. Jan 2021, 16:59
An meinem letzten Problem stehe ich immer noch an, trotz lesen in
mehreren Büchern.

Im Hauptmodul soll's so aussehen, kein Create:

Code:
VAR
  IMAPClientEx: TEmailCoreObject;
  ...

 BEGIN
   IMAPClientEx.OpenEmail;
   ..
   ..
 
 END;

Das Untermodul (EmailCore) soll so aussehen:

Code:
UNIT EmailCore;

TYPE
  TEmailCoreObject = CLASS(TidIMAP4)
  PRIVATE
    (* Private-Deklarationen *)
    ..
  PUBLIC
    (* Public-Deklarationen *)
    // hier CONSTRUCTOR notwendig ?? Wie genau ?  <---
    PROCEDURE OpenEmail;
    ..
  END;

PROCEDURE TEmailCoreObject.OpenEmail;
 BEGIN
   // Was muss hier eingefuegt werden, damit der Speicher für TEmailCoreObject
   // reserviert wird ?   <---
   ..
   ..
 END;
Kann da jemand konkret weiterhelfen ? Danke
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.777 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Zugriff auf Objekt in Klasse

  Alt 8. Jan 2021, 17:21
warum sträubst Du dich so gegen ein Create?

Delphi-Quellcode:
VAR
  IMAPClientEx: TEmailCoreObject;
  ...

 BEGIN
   IMAPClientEx := TEmailCoreObject.Create;
   try
     IMAPClientEx.OpenEmail;
     ..
     ..
   finally
    IMAPClientEx.Free;
   end;
 
 END;
Wenn Du kein Create haben möchstes musst Du Klassen-Methoden erstellen.
Dann könnte es so gehen.

Grüße
Klaus
Klaus

Geändert von Klaus01 ( 8. Jan 2021 um 17:46 Uhr)
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Zugriff auf Objekt in Klasse

  Alt 8. Jan 2021, 17:46
Weil das nur ein technisches Problem (endlicher Speicher) ist und nichts mit der eigentlichen
Aufgabe zu tun hat. Es verhunzt die eigentliche Absicht. Die Essenz des Programmes
versinkt in solchen technischen Details. Das Programm ist schlussendlich schlechter lesbar,
es sind mehr Fehler möglich. Natürlich mag das für einen Einzelfall nicht grafierend sein
aber in der Summe.. Eine normale Variable muss man ja auch nicht zuerst kreiieren.

Ich mag diesen Ballast nicht, so ähnlich ist es ja auch mit der Fehlerverarbeitung. Auch die
ist so dominant, obwohl es eigentlich nur um die Ausnahmen geht.

Ich bin da ein Purist und würde sogar soweit gehen, dass dies ein Teil unserer heutigen
Softwarekrise ist.

Um es zu verdeutlichen ein Beispiel - der Zugriff auf eine Festplatte:

- Oeffnen (mit moeglichst wenigen Parametern, oder allenfalls Setup)
- Lesen oder Schreiben
- Schliessen

Das ist die Hauptstruktur, nichts weiter. Und die muss möglichst sichtbar bleiben.
Details dann in tieferen Schichten und auch dort dasselbe.

Ich hoffe du verstehst mich nicht falsch. Ich finde es wird gerade in der
Software-Industrie oft viel zu kompliziert gedacht. Ich könnte jetzt ein weiteres Mal
Einstein zitieren...

Grüsse

FediDelPr

Geändert von FediDelPr ( 8. Jan 2021 um 18:22 Uhr)
  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 00:07 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 by Thomas Breitkreuz