AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Methode 'DoCreate' nicht in Basisklassis gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

Methode 'DoCreate' nicht in Basisklassis gefunden

Ein Thema von Delbor · begonnen am 23. Mär 2018 · letzter Beitrag vom 26. Mär 2018
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 23. Mär 2018, 20:12
Delphi-Version: 10.2 Tokyo
Hi zusammen

Zur Zeit arbeite ich daran, meinem Programm das Scannen 'beizubringen'. Dazu verwende ich delphitwain-kluug-1-5--2014-06-25.
Sehr ungewöhnlich für mich ist die Initialisierung der Mainform des Beispielprogrammes:
Delphi-Quellcode:
procedure TForm1.DoCreate;
begin
  inherited;
  Twain := TDelphiTwain.Create;
  Twain.OnTwainAcquire := TwainTwainAcquire;
  if Twain.LoadLibrary then
  begin
    Twain.SourceManagerLoaded := TRUE; //Load source manager
    ReloadSources;
  end else begin
    ShowMessage('Twain is not installed.');
  end;
end;
Dabei will ich die Funktonen dieser Mainform auf einen Frame auslagern. Dieser, bzw. sein Vorfahre, kennt aber keine 'DoCreate-Methode.
Grundsätzlich denke ich, das ist kein wirkliches Problem: Ich verpasse dem Frame einfach wie gewohnt einen Constructor - Frame.OnCreate gibt es nicht.

Andrerseits aber: Methoden, die wie hier mit einem 'Do' beginnen, sind normalerweise per Konvention Eventhandler zu eigens definiertem Ereignissen. So gesehen wäre obige Methode also ein Eventhandler...

Aber sehe ich das wirklich richtig? Oder andersherum: was gibt es für enen Grund, die obige Methode nicht einfach "TDelphiTwain.Create zu nennen?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 23. Mär 2018, 20:30
Es ist eigentlich vollkommen unerheblich, wie die Methode heißt, sie sollte nur ratsamerweise aufgerufen werden, bevor Du auf die Variable/Property Twain zugreifst.
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
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 23. Mär 2018, 21:03
Hi DeddyH

Grundsätzlich ist das so, aber ich meinte, da gäbe es doch noch einige Spezialitäten in Bezug auf TForm, bzw, ihrem Vorfahren. ich hab sowas bei Embarcadero mal gelesen (Constructor von TCustomForm?) aber wohl nicht ganz verstanden.
Andrerseits heissen alle meine Initialiesierungsmethoden Txx.Create, ob nun FormCreate oder Frameconstructor. Und das gab nur Probleme, wenn die Dinger vergessen gingen...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 23. Mär 2018, 21:16
Der Konstruktor, den du überschreiben kannst, bekommt eben noch den Owner als Parameter. Das ist bei einem Frame der übliche Weg.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 23. Mär 2018, 21:43
Man muss ja nicht einmal den Konstruktor überschreiben, Lazy Initialization wäre z.B. auch ein gangbarer Weg. Und der Konstruktor ist ja die „Initialisierungsmethode“ und heißt Create, da das ja bereits in der „Mutter aller Klassen“ TObject so festgelegt ist, da sollte man den Namen auch so belassen, gerade wenn es um virtuelle Konstruktoren geht, die überschrieben werden können.
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
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Methode 'DoCreate' nicht in Basisklassis gefunden

  Alt 26. Mär 2018, 16:26
Ich schmeiß hier noch ein AfterConstruction rein, das es auch bei TFrame gibt.
  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 01:02 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