AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Von Komponente auf Application zugreifen

Ein Thema von scrat1979 · begonnen am 28. Jan 2007 · letzter Beitrag vom 28. Jan 2007
Antwort Antwort
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.026 Beiträge
 
Delphi 10.4 Sydney
 
#1

Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 13:49
Hallo zusammen,

bin gerade auf dem Weg die Komponentenprogrammierung zu lernen. Vorerst natürlich ohne sichtbare Komponenten. Bisher funktioniert es auch ganz gut, nur bei einem Problem komme ich momenten nicht weiter.
Ich möchte in der Komponente den Pfad der Anwendung (exe-Datei) in eine Property schreiben (z.B. AppPath := extractfilepath(application.exename) wird in Propery geschrieben). Leider lässt sich die Komponente dann nicht mehr compilieren, da die "Variable" Application natürlich nicht gefunden werden kann. Was mache ich hier falsch bzw. kann mir jemand eine Lösung nennen?!? Wäre wirklich klasse.

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 13:56
Übergebe die Application-Instanz an die Komponente z.B. im Konstruktor
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.026 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:04
Vielen Dank für die schnelle Antwort, aber wie gesagt - Komponentenanfänger . Wie genau müsste denn der Contructor aussehen. Ich möchte die Komponente über die Komponentenpalette auf eine form ziehen. Meinst Du in etwa folgendes?

Delphi-Quellcode:
constructor xyz ( Anwendung : TApplication )
begin
   apppath := extractfilepath(Anwendung.exename);
end.
Grüsse,
SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:06
So geht das natürlich nicht, da die IDE den ererbten TComponent-Konstruktor verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:10
Zitat von scrat1979:
Meinst Du in etwa folgendes?

Delphi-Quellcode:
constructor xyz ( Anwendung : TApplication )
begin
   apppath := extractfilepath(Anwendung.exename);
end.
Hallo SCRaT,

wohl eher nicht...

Komponenten unter Delphi müssen als Vorfahre mindestens TComponent oder eine davon abgeleitete Klasse haben, und bereits TComponent besitzt bereits einen Constructor, der wie folgt aussieht, und den Du für deine Zwecke anpassen musst. Die Parameter im constructor darfst du dabei nicht ändern:
constructor Create(AOwner: TComponent); Dort könntest Du z.B. den Applikationspfad in einer privaten Variable speichern:

Delphi-Quellcode:
constructor TDeineKompoKlasse.Create(AOwner: TComponent);
begin
     inherited ;
     FPath := ExtractFilePath(Application.exename) ;
end ;
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.026 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:21
@Jelly

Genau so wie Du es vorgeschlagen hast habe ich es auch schon versucht. Doch leider ist dem Compiler Application.Exename nicht bekannt und es lässt sich eben nicht compilieren

Ach so. Meine Komponente wurde von TComponent abgeleitet. Fehlt vielleicht noch etwas in der uses- Klausel? Habe dort "nur" SysUtils und Classes stehen.

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:27
Füge noch Forms hinzu
Markus Kinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:28
Willkommen in der Delphi-PRAXiS, SCRaT!

Um auf die Variable Application zugreifen zu können, mußt du die Unit Forms in die USES-Anweisung aufnehmen. Eine einfache (und wahrscheinlich bessere) Alternative wäre die Verwendung von ParamStr(0):

AppPath := ParamStr(0); Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.026 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Von Komponente auf Application zugreifen

  Alt 28. Jan 2007, 14:32
Das wars Perfekt, nun läuft es auch. Werde wohl nun in Zukunft öfters hier vorbeischauen. Nette Leute und schnelle + hilfreiche Antworten *g*. Danke vielmals.

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:05 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