AGB  ·  Datenschutz  ·  Impressum  







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

Datamodule wird zu Formular

Ein Thema von OlafSt · begonnen am 7. Okt 2015 · letzter Beitrag vom 8. Okt 2015
 
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Datamodule wird zu Formular

  Alt 8. Okt 2015, 08:30
Das Verhalten ist reproduzierbar:
Delphi-Quellcode:
unit dm1;

interface

uses
  System.SysUtils, System.Classes;

type
  TDataModule1 = class(TDataModule)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DataModule1: TDataModule1;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

end.
Delphi-Quellcode:
unit dm2;

interface

uses
  System.SysUtils, System.Classes;

type
  TDataModule2 = class(TDataModule)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DataModule2: TDataModule2;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

end.
Bis hier ist die Welt noch in Ordnung ...

Jetzt den Fehler einbauen:
Delphi-Quellcode:
unit dm2;

interface

uses
  System.SysUtils, System.Classes, dm1; // <- da

type
  TDataModule2 = class(TDataModule1) // <- da
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DataModule2: TDataModule2;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

end.
Speichern, Alles schliessen, Projekt wieder öffnen ... DataModule2 öffnen => eine Form!
  • Wie kann man das heilen?
    1. Öffnen der dm2.dfm
      Code:
      object DataModule2: TDataModule2
        OldCreateOrder = False
        Height = 150
        Width = 215
      end
    2. abändern zu
      Code:
      inherited DataModule2: TDataModule2
        OldCreateOrder = False
      end
      und speichern
    3. Jetzt das Projekt neu laden und alles ist wieder schick ...
  • Wie sollte man das richtig machen?

    Zum Ableiten von TForm /TFrame /TDataModule geht man über
    1. Datei - Neu - Weitere...
    2. Delphi-Projekte - Vererbbare Elemente - DataModule1
    3. OK klicken
    Das war es schon.
PS Dieses manuelle Ableiten funktioniert (halbwegs) nur bei Formularen, denn es wird automatisch angenommen, dass es sich um ein Formular handelt. Empfohlen ist diese Vorgehensweise aber nicht.
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 ( 8. Okt 2015 um 08:43 Uhr)
  Mit Zitat antworten Zitat
 


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 06:55 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