AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Woher weiß Delphi, welcher Quelltext zu schreiben ist?
Thema durchsuchen
Ansicht
Themen-Optionen

Woher weiß Delphi, welcher Quelltext zu schreiben ist?

Ein Thema von Nintendo · begonnen am 18. Nov 2013 · letzter Beitrag vom 18. Nov 2013
Antwort Antwort
Nintendo

Registriert seit: 16. Feb 2009
82 Beiträge
 
#1

Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 07:17
Hallo,

ich stelle mir grad die Frage, woher denn Delphi weiß, welcher Quelltext in die Form Unit zu schreiben ist. Wenn ich eine Komponente auf mein Formular setze, schreibt Delphi ja eine Zeile in mein Formular und setzt mir auch noch die nun benötigte Unit in die Uses-Klausel, falls die Unit noch nicht aufgeführt ist. Wenn ich eine Typbibliothek importiere, schreibt mir Delphi eine xxx_TLB Unit.

Wo ist das codiert? Welche Dokus sollte ich mir anschauen. Ich habe das Delphi-Developers-Guide und das Component-Writers-Guide und ich habe die Quelltexte der Tools-API von Turbo Delphi.

Geht Lazarus da den gleichen Weg? Kann ich die gewonnenen Erkenntnisse 1:1 in Lazarus anwenden? Wenn nicht, wo finde ich dann die passenden Dokus?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 07:31
Moin,

bei Delphi ist das über einen sog. "TSelectionEditor" geregelt, der in Deinem Komponenten-Package lebt. Der wird immer dann aufgerufen, wenn eine Komponente auf das Form gesetzt wird und hat dann die Möglichkeit, der Delphi-IDE mitzuteilen, dass die Units A, B und C auch noch benötigt werden.

Wie das bei FreePascal gelöst ist, kann ich Dir nicht sagen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 08:07
AFAIK wird der uses Abschnitt aus dem interface Teil der Komponente ausgewertet und die fehlenden units ergänzt.

Kann man schön bei FastReport, UniDAC, FireDAC etc. sehen. Die Komponenten für die Datenbanksysteme haben keine Eigenschaften und auch sonst keine Funktion und könnten problemlos nach dem ersten Speichern wieder entfernt werden. Die einzige Aufgabe ist es eben diese Units automatisch einbinden.
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)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 08:49
In Lazarus ist dies meines Wissens nach wie so vieles andere im Moment gar nicht möglich. Einen Ersatz für TSelectionEditor habe ich zumindest nicht gefunden als ich ihn gebraucht hätte.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Nintendo

Registriert seit: 16. Feb 2009
82 Beiträge
 
#5

AW: Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 12:26
Ok, so weit, danke erst mal für Eure Antworten. Hab schon mal in mein ComponentWriters Guide geschaut und auch in Google den Begriff "TSelectionEditor" eingegeben. Leider ist die Doku dort von Emba nicht besonders ergiebig. Was ich aber gesehen habe, sind Methoden wie:

- p ExecuteVerb
- p RequieresUnits
- f GetVerb: Int
- f GetVerbCount: Int

RequieresUnits schreibt dann also die Units in die Uses Klausel? Dann muss also der Komponentenentwickler dort die benötigten Units benennen. Da ergibt sich die Frage:

Wo ist TGetStrProc

definiert? Wie führe ich danach die benötigten Units dort auf. Das muss ich doch irgendeinem IDE Experten mitteilen, der dann die Units in die Uses Klausel übernimmt.

Liege ich richtig in der Annahme, das die Methode ExecuteVerb für andere Quelltextteile verantwortlich ist. Delphi schreibt mir ja auch Eventhandler, wenn ich im Objektinspektor ein Ereignis anklicke?

Ist das die ExecuteVerb-Methode, die dafür sorgt?

Außerdem wird im Formular die per Mausklick eingefügte Komponente in die Formulardefinition übernommen.

Nur Unit1 mit der Formulardefinition könnte per Template gelöst werden. Die Quelltextergänzungen während meiner Entwicklungsarbeit nicht mehr. Auch der Import von ActiveX Typbibliotheken erfordert Quelltexterzeugung abhängig vom aktuellen Objekt.

@jaenicke: Kann sein. Aber ich glaube, mich erinnern zu können, das auch Lazarus bei Fremdkomponenten die Uses Klausel passend ergänzt. Wenn dort aber TSelectionEditor nicht existiert, sgat mir das nur, das Lazarus dabei einen anderen Weg geht, dieses Ziel zu erreichen. Und auch Lazarus ergänzt den Quelltext, wenn ich im Objektinspektor ein Ereignis anklicke. Ich erhalte den leeren Eventhandler, wie in Delphi. Und wenn ich eine KOmponente aus der Palette auswähle, dann wird auch da die Formulardefinition passend ergänzt. Wenn hierzu bei Lazarus nicht dieselben Komponenten zuständig sind wie in Delphi, dann macht das Lazarus nur anders. Aber wie?

Gibt es außer ComponentWritersGuide und DelphiDevelopersGuide weiter führende Doku? Vor allem verständlicher als diese beiden genannten. In den beiden genannten Tutorials ist mir das alles zu stichpunktartig. Ich könnte ein gutes Beispiel gebrauchen.

Leider besitze ich FireDAC und FastReport nicht.

Geändert von Nintendo (18. Nov 2013 um 12:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Woher weiß Delphi, welcher Quelltext zu schreiben ist?

  Alt 18. Nov 2013, 13:18
Google spuckt mir z.B. das aus:
http://pastebin.com/qw1qV2PW
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 04:58 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