AGB  ·  Datenschutz  ·  Impressum  







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

constructor - AOwner immer TApplication?

Ein Thema von aLiKe · begonnen am 6. Jun 2007 · letzter Beitrag vom 6. Jun 2007
Antwort Antwort
aLiKe

Registriert seit: 17. Apr 2007
25 Beiträge
 
#1

constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:05
Hi Leute,

bin grad ein wenig am verzweifeln. Bei meinem Problem handelt es sich um folgendes:
(Achja, nich über namengebung meckern, dbin nur dabei das Projekt hier weiterzuführen,
und großartige Namensänderungen will ich da momentan vermeiden^^)

Ich habe eine abgeleitete Klasse von TCustomChart(TKoordSys3D), welche eine Form created und sich selbst
als Owner angibt. Das wird ausgelöst bei klicken auf TCustomChart. Das ganze dient dazu,
dass kleine Koordinaten System nochmal groß anzusehn.

Frmgraphwindow2d := TFrmgraphwindow2d.create(Self); Sooo, das läuft, kein Thema, Form wird erstellt, angezeigt und schön.
Nun will ich aber in der Form auf Self zugreifen, also auf meine Klasse.
Dazu cast ich erstmal den Parameter AOwner auf meine Klasse TKoordSys3D

Delphi-Quellcode:
constructor TFrmgraphwindow2d.create(p_AOwner: TComponent);
var
c_kSys3D : TKoordSys3D;
begin
inherited create(p_AOwner);
 c_kSys3D := TKoordSys3D.create(self);
 c_kSys3D.copy(TKoordSys3D(p_AOwner));
...
copy Methode sieht so aus

Delphi-Quellcode:
 procedure TKoordSys3D.copy(p_koordSys: TKoordSys3D);
 var l_temp_height, l_temp_width, l_temp_top, l_temp_left, l_i : integer;
 begin
  l_temp_height := Height;
  l_temp_width := Width;
  l_temp_top := Top;
  l_temp_left := Left;

  Assign(p_koordSys);
...
Hier(beim assign) gibts nun aber nach dem Compileren ein Problem, dass sich so meldet:
"TApplication kann nicht TKoordSys3D zugewiesen werden"

Edit: Was mir grad noch auffällt. Das passiert garnicht beim Kompilieren, sondern während der Laufzeit.
Allerdings gleich nach Programmstart, und da wird meine Methode die die Form created noch garnicht aufgerufen Oo



Weiß mir da keinen Rat. Aber von euch sicher jemand?!^^

Mfg
aLiKe
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:25
Kann es sein, dass sich im Projektquellcode (.dpr) ein Application.CreateForm() für dein Formular befindet?
  Mit Zitat antworten Zitat
aLiKe

Registriert seit: 17. Apr 2007
25 Beiträge
 
#3

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:33
Stimmt, da hab ich garnicht nachgeguckt. Befindet sich sogar 2 mal da.
Wie kommt das da hin? Dadurch dass ich über "Neu->Formular" das erstellt habe?

Hab das beides jetzt mal auskommentiert, aber jetzt wird die
Form im Programm nicht mehr geöffnet. Heißt also, die Zeilen müssen
drin bleiben(2 Mal?)

Problem werd ich also so umgehn, indem ich erst abfrage ob es sich um
TApplication handelt, und dannach casten. Oder?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:34
Du könntest dein Formular auch selber erzeugen lassen und nicht im Projekt.
Markus Kinzler
  Mit Zitat antworten Zitat
aLiKe

Registriert seit: 17. Apr 2007
25 Beiträge
 
#5

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:38
Ich hab jetzt nur im Projekt das Application.FormCreate rausgenommen, und den
Rest des codes so gelassen. Meines verständnisses nach, müßte das Formular nun
angezeigt werden. Wird es aber nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:41
Warum sollte es angezeigt werden, wenn es nie erzeugt wird?
Markus Kinzler
  Mit Zitat antworten Zitat
aLiKe

Registriert seit: 17. Apr 2007
25 Beiträge
 
#7

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:46
Zitat von aLiKe:
Frmgraphwindow2d := TFrmgraphwindow2d.create(Self);
Die darauf folgenden Zeilen:
Delphi-Quellcode:
  Frmgraphwindow2d.ShowModal();
  Frmgraphwindow2d.Free();
Wird es doch an der Stelle?
Oder hab ich da nun was Elementares vergessen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:50
Wo befindet sich dieser Code?
Markus Kinzler
  Mit Zitat antworten Zitat
aLiKe

Registriert seit: 17. Apr 2007
25 Beiträge
 
#9

Re: constructor - AOwner immer TApplication?

  Alt 6. Jun 2007, 12:59
Ok, hat sich erledigt... Beim öffnen der .dpr Datei
hab ich scheinbar das Projekt irgendwie nochmal mit geöffnet.
Ganz komisch, aufjedenfall funktionierts nun nach dem
entfernen der Application.CreateForm() Methode aus der .dpr.

Danke für die Hilfe^^
  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 02:07 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