AGB  ·  Datenschutz  ·  Impressum  







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

[Beantwortet] Vererbung OHNE Design

Ein Thema von Mokus · begonnen am 4. Okt 2013 · letzter Beitrag vom 5. Okt 2013
Antwort Antwort
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

[Beantwortet] Vererbung OHNE Design

  Alt 4. Okt 2013, 08:09
Delphi-Version: XE2
Wunder schön Guten Morgen Community;

steh vor, für euch wahrscheinlich kleines, Problem.
Wollte / sollte ein kleines Programm schreiben, dass die Oberfläche verschiedener Flächen berechnet.
Da die Formel von Oberflächen von vier ecken immer gleich ist, wollt ich den Umfang per Hauptkklasse vererben.
Probelm; ich arbeite mit meheren Formular anwendungen. Die Oberfläche des Formulares wird nun auch vererbt.
GIbt es ne möglichkeit, dies zu umgehen ?

Delphi-Quellcode:
// hauptklasse;

unit main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    r_laenge: real;
    r_breite: real;
    function getUmfang(r_laenge: real; r_breite: real): real;
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

uses quadrat;

procedure TForm3.Button1Click(Sender: TObject);
var
  qua: TForm4;

begin
  qua := TForm4.Create(self);
  qua.Show;
end;

function TForm3.getUmfang(r_laenge: real; r_breite: real): real;
begin
  result := (2 * r_laenge + 2 * r_breite);
end;

end.


Delphi-Quellcode:
//Zweite Klasse

unit quadrat;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, main, Vcl.StdCtrls;

type
  TForm4 = class(TForm3)
    Edit1: TEdit;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

end.

Pic 1; oberfläche von der hauptklasse;
Pic2; oberfläche von der quadraten klassen;
Pic3; wie es in der exe aussieht ...
Angehängte Grafiken
Dateityp: png oberfläche haupt.png (7,1 KB, 32x aufgerufen)
Dateityp: png oberfläche quadrat.png (6,8 KB, 31x aufgerufen)
Dateityp: jpg wie es in der exe ist.jpg (21,8 KB, 31x aufgerufen)
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !

Geändert von Mokus ( 4. Okt 2013 um 08:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.657 Beiträge
 
Delphi 12 Athens
 
#2

AW: Vererbung OHNE Design

  Alt 4. Okt 2013, 08:12
Die Berechnung hat ja mit dem Formular nichts, aber auch gar nichts zu tun, daher gehört das in eine eigene Klasse, am Besten in einer eigenen Unit. Diese kann man dann überall einbinden, wo man sie braucht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Vererbung OHNE Design

  Alt 4. Okt 2013, 08:14
d.H.
extra für die Berechnung der Länge eine eigende Klasse erstellen, klar das würde das problem lösen.
aber nur mal so, gibt es ne möglichketi das Design nicht mit zu vererben ?
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.657 Beiträge
 
Delphi 12 Athens
 
#4

AW: Vererbung OHNE Design

  Alt 4. Okt 2013, 08:18
Wenn TForm4 von TForm3 abgeleitet wird, erbt es natürlich auch dessen Eigenschaften und Methoden. Aber man muss ja nicht von TForm3 ableiten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Vererbung OHNE Design

  Alt 4. Okt 2013, 08:20
und die Oberfläche gilt als eigenschaft ;
alles klar, dann weiß ich bescheid

dank dir. =)
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.346 Beiträge
 
Delphi 12 Athens
 
#6

AW: [Beantwortet] Vererbung OHNE Design

  Alt 4. Okt 2013, 09:24
Aber, auch wenn ich sowas nicht unbedingt empfehlen würde...

Wenn man das INHERITED aus der DFM der neuen Klasse entfernt und durch OBJECT, dann wird die DFM der Elternklasse nicht geladen/vererbt.


Wobei der "bessere" Weg wäre diese "Berechnung" auszulagern => neue Klasse oder in eine einfache Funktion.

PS: Im Constructor/OnCreate kann man auch {Button}.Free; bzw. {Button}.Hide; ({Button}.Visible := False; ) aufrufen, um den Button wieder loszuwerden.
Oder er ist im Vorfahren unsichtbar und im Constructor wird dann Visible auf True gesetzt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Okt 2013 um 09:32 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 10:39 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