Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - VCL Komponente erstellen aber wie?


ACID - Di 12.07.05 10:02
Titel: VCL Komponente erstellen aber wie?
Ich wollte ein VCL-Komponente erstellen die wenn ich sie auf mein Formular ziehe ein Editfeld und ein LABEL anzeigt.
Ich habe mir schon die Tutorials auf DSTS.info angeschaut, aber da steht nur wie ich eine Komponente hinkriege. Was ich auch geschafft habe.

Danke schon mal für die Antworten.


Grendel - Di 12.07.05 10:05
Titel: Re: VCL Komponente erstellen aber wie?
user profile iconACID hat folgendes geschrieben:
Danke schon mal für die Antworten.

Auf welche Frage?

Bis neulich ...

edit: Oh. gesehen! Also Du hast eine "Komponente" erstellt und möchtest jetzt wissen, wie Du eine "VCL-Komponente" estellen kannst, richtig?!
Um es kurz zu machen. VCL-Komponenten sind auch nur Komponenten aber eben Bestandteil der VCL. Naja, und die VCL um eigene Komponenten erweitern ist imho keine gute Idee.

Oder hab ich Dein Problem noch immer nicht verstanden?


hansa - Di 12.07.05 10:15
Titel: Re: VCL Komponente erstellen aber wie?
user profile iconGrendel hat folgendes geschrieben:

...Naja, und die VCL um eigene Komponenten erweitern ist imho keine gute Idee..


Programmierst Du kein Delphi oder was ? :lol: Noch nie was von OOP gehört ? :shock:

Suche mal hier nach "LabeledEdit". Das ist eine selbst gemachte Komponente, die genau das macht was gesucht wird. Leider geht jetzt auch die Suche nicht, kann also den direkten Link nicht posten.


Grendel - Di 12.07.05 10:25
Titel: Re: VCL Komponente erstellen aber wie?
user profile iconhansa hat folgendes geschrieben:
Programmierst Du kein Delphi oder was ? :lol: Noch nie was von OOP gehört ? :shock:

Ähh doch. schon was länger.
Aber die vcl habe ich dennoch nie erweitert denn dann müsste ich auch die VCL.bpl neu kompilieren und das halte ich für keine gute Idee.
Und eine Ableitung einer Komponente, die in der VCL steckt, ist nach meinem Verständniss keine VCL-Komponente.
Denn dann wäre ja alles, was von TComponent bzw. von TControl abgeleitet wird eine VCL-Komponente. Da sie aber eben nicht in der VCL(.bpl) stecken sind es keine VCL-Komponenten.

So genug Haare gespalten :) Ich denke wir haben uns nur ein wenig misverstanden.

Bis neulich ...


hansa - Di 12.07.05 11:01

Nicht nur etwas mißverstanden. Du weißt nicht, was OOP ist. Das ist alles ! :mrgreen: So was leitet man doch nicht von Adam und Eva ab (TComponent usw.). In diesem Falle geht man von TEdit aus und macht lediglich dasselbe, wie die von Borland auch.

Also Grendel, Du mußt dringend mal gucken, wie das alles geht und überlegen, wozu das alles gut ist ! :P


Grendel - Di 12.07.05 11:20

user profile iconhansa hat folgendes geschrieben:
Nicht nur etwas mißverstanden. Du weißt nicht, was OOP ist. Das ist alles ! :mrgreen:

Mit solchen Aussagen wäre ich vorsichtig. Zumal es schlicht nicht stimmt.

user profile iconhansa hat folgendes geschrieben:
So was leitet man doch nicht von Adam und Eva ab (TComponent usw.). In diesem Falle geht man von TEdit aus und macht lediglich dasselbe, wie die von Borland auch.

Richtig. Nur spielt es keine Rolle, ob ich von TControl TComponenten TEdit oder sonsteiner VCL-Komponete/Klasse ableite. So lange das Ergebnis nicht in die VCL aufgenommen wird ist es auch keine VCL-Komponente. Sondern höchstens eine Ableitung einer VCL-Komponente.

Es ging eben nicht darum, daß er von TControl oder sonstwas ableiten sollte sondern, daß seine Ableitung niemals eine VCL-Komponente sein kann. bzw. daß VCL Komponenten auch nur Komponenten sind, die aber eben in der VCL stecken.

Es geht um die Definition einer "VCL-Komponente". Ist alles was von einer VCL-Komponente abgeleitet wird ebenfalls eine VCL-Komponente oder nicht?!
Und ich sage nein.

user profile iconhansa hat folgendes geschrieben:
Also Grendel, Du mußt dringend mal gucken, wie das alles geht und überlegen, wozu das alles gut ist ! :P

Super Spruch!
Du solltest meine Beiträge einfach etwas differenzierter lesen. Und wenn ich doch so unwissend bin, dann kläre mich doch auf.
Du hast nicht eine meiner Aussagen zitiert und kommentiert sondern alles als "Du hast ja keine Ahnung abgestempelt" und das finde ich eine Frechheit.
Vielleicht liege ich mit meiner Definition der "VCL-Komponente" ja daneben allerdings weiß ich nicht wie Du davon ausgehend auf mein Verständniss von OOP schließen willst/kannst.

Wenn Du aufmerksam gelesen hättest hättest Du auch festgestellt, daß ich nirgendwo geschrieben habe, daß er für sein Vorhaben TControl o.ä. nehmen soll.
Aber ich bin der Doof. Is klaar *schmunzel*

Bis neulich ...


hansa - Di 12.07.05 11:34

Grendel, wer D5 und D7 Enterprise hat, der hat die Quelltexte der VCL. Die würde ich mir mal ansehen. Und wenn Du das mal machst dann stellst Du fest, daß die VCL-Komponenten von anderen abgeleitet sind. Das ist eine OOP-Grundlage.

Wieso ist nun eine eigene Komponente keine VCL-Komponente ? :shock: Bei mir liegen die eigenen genauso oben in der Komponentenleiste, wie die mit Delphi mitgelieferten. Ich ziehe sie genauso auf die Form. Bei dem LabeledEdit wandert das Label nun aber mit dem Edit mit. Bei dem vorhandenen Label/Edit ist das aber nicht so. Ein weiterer Vorteil ist, daß ich das Label gleich mitumbenenne, sofern ich das Edit umbenenne usw.

Grendel, ich halte dich nicht für doof, aber der Hinweis sei gestattet, daß du dich trotz allem mal mit OOP beschäftigen solltest. :P Falls nicht, dann sage doch einfach nichts mehr. :mrgreen:


Alstar - Di 12.07.05 11:38

Hi

@Grendel: Nur weil Komponenten die zur Laufzeit sichtbar sind, nicht in der VCL.bpl liegen, heißt das noch lange nicht, dass sie keine VCL-Komponenten sind.
VCL-Komponenten sind nämlich alle zur Laufzeit sichtbaren Komponenten, egal in welchem Package sie ligen.

Alstar


Grendel - Di 12.07.05 11:49

user profile iconhansa hat folgendes geschrieben:
Grendel, wer D5 und D7 Enterprise hat, der hat die Quelltexte der VCL. Die würde ich mir mal ansehen. Und wenn Du das mal machst dann stellst Du fest, daß die VCL-Komponenten von anderen abgeleitet sind. Das ist eine OOP-Grundlage.

Von welchen "anderen abgeleitet"?
Außerdem; Was hat das mit der Definition zu tun, ob eine eigene Ableitung einer VCL-Komponente ihrerseits ebenfalls eine VCL-Komponente ist?
Ich denke nichts.

user profile iconhansa hat folgendes geschrieben:
Wieso ist nun eine eigene Komponente keine VCL-Komponente ?

Weil sie nicht in der VCL.bpl drin ist und auch nicht von Borland mit der VCL ausgeliefert wird.
user profile iconhansa hat folgendes geschrieben:
:shock: Bei mir liegen die eigenen genauso oben in der Komponentenleiste, wie die mit Delphi mitgelieferten. Ich ziehe sie genauso auf die Form. Bei dem LabeledEdit wandert das Label nun aber mit dem Edit mit. Bei dem vorhandenen Label/Edit ist das aber nicht so. Ein weiterer Vorteil ist, daß ich das Label gleich mitumbenenne, sofern ich das Edit umbenenne usw.

Und das ist doch genau der Punkt. Ich definiere VCL-Komponente nicht darüber, daß sie in der Komponentenleiste auftaucht (Das tun CLX Kompos genauso) sondern ob sie Bestandteil der VCL sind oder nicht.
Und eigene Ableitungen von VCL-Komponenten sind niemals direkter Bestandteil der VCL. Oder schickst Du alle Deine Ableitungen an Borland und die bauen die dann für dich in die VCL ein?!

user profile iconhansa hat folgendes geschrieben:
Grendel, ich halte dich nicht für doof, aber der Hinweis sei gestattet, daß du dich trotz allem mal mit OOP beschäftigen solltest. :P Falls nicht, dann sage doch einfach nichts mehr. :mrgreen:

Glaube mir, es besteht keine Notwendigkeit dazu. Ich verstehe ja auch was Du meinst. Aber merke auch, daß Du mich grundlegend misverstehst.

Mir geht es nur darum:
Ist eine eigene Ableitung einer VCL-Komponente selber ebenfalls eine VCL-Komponente oder nicht?!
Ich behaupte: So lange die Ableitung nicht zum Standardumfang der VCL gehört, so wie sie von Borland bereit gestellt wird, ist sie auch keine VCL Komponente. Sondern lediglich eine Ableitung einer VCL-Komponente.

Bis neulich ...


Grendel - Di 12.07.05 11:55

user profile iconAlstar hat folgendes geschrieben:
@Grendel: Nur weil Komponenten die zur Laufzeit sichtbar sind, nicht in der VCL.bpl liegen, heißt das noch lange nicht, dass sie keine VCL-Komponenten sind.

Danke, Du hast meine Aussage verstanden.
Und ich behaupt, daß es doch genau so ist. Nach meiner Definition ist nur das eine VCL-Komponente, was auch in der VCL, so wie sie jeder ausgeliefert bekomt, vorhanden ist.
Eigene Ableitungen sind eben "Ableitung einer VCL-Komponente".

user profile iconAlstar hat folgendes geschrieben:
VCL-Komponenten sind nämlich alle zur Laufzeit sichtbaren Komponenten, egal in welchem Package sie ligen.

Es gibt auch nicht sichtbare VCL Komponenten. Und nach meiner Definition ist eben doch entscheidend, in welchem Pakage sie liegen.

Falls es eine andere anerkannte Definition gibt lasse ich mich gerne eines besseren belehren.

Bis neulich ...


hansa - Di 12.07.05 12:06

Grendel, so kommen wir doch nicht weiter. 8) Eine VCL-Komponente muß nicht von Borland kommen. Das ist Dein Denkfehler ! VCL heißt "visual component library" Das wichtige ist das visual. Denn das heißt : die Komponente ist in der Komponentenleiste zu finden, kann auf die Form gezogen werden und der OI ist verfügbar um Einstellungen vorzunehmen.

Grendel hat folgendes geschrieben:
Von welchen "anderen abgeleitet"?


Du bist eben ungläubig. :lol:

siehe hier (habe das erstbeste aus D7 VCL-Source genommen) :


Delphi-Quelltext
1:
2:
  TBitBtn = class(TButton)
  private


Nun ? Was ist das ? Ein BitButton. Und siehe an, der ist von TButton abgeleitet. Was ist TButton ? Eine VCL-Komponente. Borland ist doch nicht blöder als ich ! :mrgreen:


Alstar - Di 12.07.05 12:08

user profile iconGrendel hat folgendes geschrieben:

Es gibt auch nicht sichtbare VCL Komponenten. Und nach meiner Definition ist eben doch entscheidend, in welchem Pakage sie liegen.


VCL heißt ja bekanntlich: "Visual Component Library"
Nun kann man streiten: Visual, weil sie in Delphi sichtbar ist? Dann wären das alle Komponenten, die man über die Toolpalette aufrufen kann. Oder Visual, weil man sie zur Laufzeit sieht (oder auch nicht)? In beiden Fällen wären aber auch andere Komponenten VCL-Komponenten.

Alstar


Grendel - Di 12.07.05 12:21

user profile iconAlstar hat folgendes geschrieben:
VCL heißt ja bekanntlich: "Visual Component Library"
Nun kann man streiten: Visual, weil sie in Delphi sichtbar ist? Dann wären das alle Komponenten, die man über die Toolpalette aufrufen kann.

Richtig, genau so ist es. (Außer CLX Komponenten)
Beispiel: TTimer, Datenbankkomponenten (TTable, TQuery, etc..). Nicht visuell (sprich kein Steuerlement) aber VCL-Komponenten.

user profile iconAlstar hat folgendes geschrieben:
In beiden Fällen wären aber auch andere Komponenten VCL-Komponenten.

Nein, das nicht. So lange eine Komponente nicht in der VCL steck ist sie keine VCL-Komponente.


user profile iconhansa hat folgendes geschrieben:
Grendel, so kommen wir doch nicht weiter. Eine VCL-Komponente muß nicht von Borland kommen. Das ist Dein Denkfehler !

Danke, jetzt hast Du mich wenigstens verstanden.
Und ich behaupte, daß es doch so ist.
Es gibt "die VCL" als eine in sich geschlossene Bibliothek, die eine genau definierte endliche Anzahl an Klassen und Komponenten beinhaltet. Und genau das wird von Borland verwaltet und gepflegt.
Alles was darber hinaus geht ist nach meinem Verständniss eine Ableitung einer VCL-Komponente.
Es benötigt die VCL als Abhängigkeit ist seinerseits aber, da nicht Bestandteil der VCL also keine VCL-Komponente.

user profile iconhansa hat folgendes geschrieben:
Nun ? Was ist das ? Ein BitButton. Und siehe an, der ist von TButton abgeleitet. Was ist TButton ? Eine VCL-Komponente. Borland ist doch nicht blöder als ich !

Ja und?! Was hat das mit dem Theman zu tun?
Ich hab doch auch niemals behauptet, daß ein TBitButton nicht von TButton abgeleitet werden soll. Oder das man immer von TControl o.ä. ableiten soll. Wäre natürlich Unfug.

Und klar ist TBitBtn eine VCL-Komponente aber in erster Linie weil er Bestandteil der VCL ist und nicht weil er von einer anderen VCL-Komponente abgeleitet wurde.

Demnach wäre:

Delphi-Quelltext
1:
2:
3:
type
  TMyButton = class(TButton)
  ...

keine VCL-Komponente. Da sie eben nicht in "der VCL" zu finden ist.

Bis neulich ...


hansa - Di 12.07.05 12:36

Grendel, die Diskussion ist so nötig, wie dem Papst seine E... :lol: Im allgemeinen Sprachgebrauch gibt es keine Borland-VCL Komponenten, sondern nur VCL-Komponenten. Mich würde jetzt eher mal interessieren, ob der Fragesteller mit meiner Hansa-VCL Komponente weiterkommt. :mrgreen:


Grendel - Di 12.07.05 12:46

user profile iconhansa hat folgendes geschrieben:
Grendel, die Diskussion ist so nötig, wie dem Papst seine E... :lol: Im allgemeinen Sprachgebrauch gibt es keine Borland-VCL Komponenten, sondern nur VCL-Komponenten. Mich würde jetzt eher mal interessieren, ob der Fragesteller mit meiner Hansa-VCL Komponente weiterkommt. :mrgreen:

Natürlich ist die Diskussion ansatzweise albern.
Allerdings lies die ursprüngliche Frage vermuten, daß der Fragesteller einen grundlegenden Unterschied zwischen "Komponente" und "VCL-Komponente" sieht, den es so nicht gibt.
Und um diese Frage vernünftig zu beantworten bzw. die Unklareheit zu beseitigen ist eine genaue Definition von "Komponente" bzw. "VCL-Komponente" nötig. Und mit "genaue Definition" meine ich nicht den "allgemeinen Sprachgebrauch".
Ich selber spreche normal auch nur von "Komponente"; Bin mir aber im klaren, daß das nicht besonders differnziert ist.

Aber lass gut sein. Ich denke wir haben unsere Misverständnisse beseitigt.
Nun lass mal abwarten, ob der Threadstarter mit unserem Pallaver etwas anfangen konnte :)

Schönen Gruß,
der Korinthenkacker :D


Motzi - Di 12.07.05 13:55

Da ihr mit eurer Diskussion "Wie ist VCL-Komponente" definiert doch ziemlich von der ursprünglichen Frage abgewichen seid, bin ich grad am überlegen ob ich nicht die ganzen Beiträge zu dieser Diskussion in einen eigenen Thread abtrennen sollte.. fändet ihr das sinnvoll, oder seid ihr der Meinung dass das zur ursprünglichen Frage dazugehört?

Aber an der Diskussion selbst will ich mich auch mal beteiligen.. ;)
IMHO ist es nicht wirklich fix definiert wo VCL anfängt und wo es aufhört (und ist IMHO auch nicht sinnvoll). Ich habe hier von meinem Delphi 6 Prof ein riesen Poster hängen, da steht drauf, "VCL object history", und da sind alle Klassen angefangen von TObject, über diverse Exceptions etc bis hin zu TTrackBar drauf - also alle Klassen die Delphi kennt.

Gruß, Motzi


Grendel - Di 12.07.05 14:54

user profile iconMotzi hat folgendes geschrieben:
Da ihr mit eurer Diskussion "Wie ist VCL-Komponente" definiert doch ziemlich von der ursprünglichen Frage abgewichen seid, bin ich grad am überlegen ob ich nicht die ganzen Beiträge zu dieser Diskussion in einen eigenen Thread abtrennen sollte.. fändet ihr das sinnvoll, oder seid ihr der Meinung dass das zur ursprünglichen Frage dazugehört?

Ich denke schon, daß es hier hingehört.
Zumindest wenn ich den Threadersteller richtig verstanden habe.
Lass mal abwarten bis er sich meldet, und wenn es dann doch nicht zum Thema passt splitte es ab.
Wobei das Thema ohnehin jetzt durch sein sollte.

user profile iconMotzi hat folgendes geschrieben:
Aber an der Diskussion selbst will ich mich auch mal beteiligen.. ;)
IMHO ist es nicht wirklich fix definiert wo VCL anfängt und wo es aufhört (und ist IMHO auch nicht sinnvoll).

Meines Erachtens ist es sehr wohl genau definiert wo es anfängt und aufhört.

user profile iconMotzi hat folgendes geschrieben:
Ich habe hier von meinem Delphi 6 Prof ein riesen Poster hängen, da steht drauf, "VCL object history", und da sind alle Klassen angefangen von TObject, über diverse Exceptions etc bis hin zu TTrackBar drauf - also alle Klassen die Delphi kennt.

Genau das meine ich doch. Es gibt eine genau definierte und endliche Zahl an Klassen und Komponenten. Eben alles was auf dem Poster ist und nicht mehr.

Mich würde mal interessieren, wie man das bei den Borländern definiert.

Bis neulich ...


maxk - Di 12.07.05 15:11

Es gibt unendlich viele VCL Komponente, was ja auch bisher die meisten bereits gesagt haben! Jede sichtbare Komponente, gehört in die VCL - ach wenn sie von TObject abgeleitet ist und ich alles was die Darstellung angeht selber mache. Ob es fest definiert ist, weiss ich nicht. Auf jeden Fall handhaben es die meisten Delphiprogrammierer so und damit kann es wohl auch definiert werden. Beispiel, was mir gerade einfällt: Torry. Dort heißt es auch VCL, obwohl dort ja keine delphieigenen Komponenten angeboten werden. Dann gibt es auchnoch die Abakus VCL, die Jedi VCL, etc. Und da es die meisten Entwickler so sehen, ist es wohl auch müßig darüber zu streiten, denn dann wäre die nächste Frage, was CLX ist ;)

Gruß,
maxk


Grendel - Di 12.07.05 15:40

user profile iconmaxk hat folgendes geschrieben:
Es gibt unendlich viele VCL Komponente, was ja auch bisher die meisten bereits gesagt haben! Jede sichtbare Komponente, gehört in die VCL - ach wenn sie von TObject abgeleitet ist und ich alles was die Darstellung angeht selber mache.

Eine VCL-Komponente muss nicht zwingend eine sichtbare Komponete oder ein Steuerelement sein.
TDatabase ist auch eine VCL-Komponente aber nicht sichtbar.

user profile iconmaxk hat folgendes geschrieben:
Ob es fest definiert ist, weiss ich nicht. Auf jeden Fall handhaben es die meisten Delphiprogrammierer so und damit kann es wohl auch definiert werden. Beispiel, was mir gerade einfällt: Torry. Dort heißt es auch VCL, obwohl dort ja keine delphieigenen Komponenten angeboten werden.

Schon klar. Und ich selber spreche im Alltag ja auch nur von Komponenten aber nur weil die Masse etwas XYZ nennt muss es nicht gleich auch richtig sein.
Und die Torry-Geschichte geht für mich klar in Richtung "allgemeiner Sprachgebrauch".
Da klar ist, daß die dort angebotenen Komponenten nicht die VCL erweitern, muss es sich um Ableitungen von VCL-Komponenten handeln.
Man weiß was gemeint ist. Aber offenbar verwirrt es auch einige Leute. Sonst gäbe es kaum diesen Thread.

user profile iconmaxk hat folgendes geschrieben:
Dann gibt es auchnoch die Abakus VCL, die Jedi VCL, etc.

Richtig. Jedi-VCL und Abakus-VCL. Und die ursprüngliche ist halt die Borland-VCL. Nur wenn man von "der VCL" spricht meint man i.d.R. die Borlandvariante.
Und deren Umfang/Inhalt ist genau festgelegt.

user profile iconmaxk hat folgendes geschrieben:
Und da es die meisten Entwickler so sehen, ist es wohl auch müßig darüber zu streiten,

So ist es dass? Und sehen es die meisten wirklich so?
Und selbst wenn, was ich bezweifle; Nur weil die Masse etwas falsch oder ungenau bezeichnet muss ich das doch nicht so fortsetzen.
Zwar etwas überzogen, aber trifft doch zu: "*mist*e schmeckt gut! Millionen Fliegen können nicht irren."

Und gerade wenn jemand offensichtlich ein Problem bei der Unterscheidung von "Komponente" und "VCL-Komponente" hat ist die einzig sinnvolle Hilfestellung eine genaue Definition der Begriffe. Sonst redet man ewig aneinander vorbei.

Im Übrigen bin ich von der Programmierer-Zunft differenziertere Aussagen gewöhnt. Der Compiler gibt sich ja schließlich auch nicht mit dem zufrieden, was die Masse für richtig hält sondern nur mit dem was richtig ist.

user profile iconmaxk hat folgendes geschrieben:
denn dann wäre die nächste Frage, was CLX ist

Und meine Antwort wäre die selbe wie bei "der VCL".
Eine Bibliothek mit einer endlichen und genau definierten Anzahl an Klassen und Komponenten.

Bis neulich ...


maxk - Di 12.07.05 16:06

user profile iconGrendel hat folgendes geschrieben:
user profile iconmaxk hat folgendes geschrieben:
Es gibt unendlich viele VCL Komponente, was ja auch bisher die meisten bereits gesagt haben! Jede sichtbare Komponente, gehört in die VCL - ach wenn sie von TObject abgeleitet ist und ich alles was die Darstellung angeht selber mache.

Eine VCL-Komponente muss nicht zwingend eine sichtbare Komponete oder ein Steuerelement sein.
TDatabase ist auch eine VCL-Komponente aber nicht sichtbar.
Mein Fehler! Ich wusste nicht, wie man es besser ausdrücken könnte (und sichtbar ist ja wohl für etwas anderes "belegt" ;)). Ich meint alle Komponenten, die man auf's Form ziehen kann. Immernoch schlecht formuliert...

user profile iconGrendel hat folgendes geschrieben:
Schon klar. Und ich selber spreche im Alltag ja auch nur von Komponenten aber nur weil die Masse etwas XYZ nennt muss es nicht gleich auch richtig sein.

Das bezog sich auf "falls es nicht definiert ist". Wenn es keine Definition gibt, wird man schließlich das nehmen, das die meisten darunter verstehen. Mit den Formulierungen komm ich heute nicht klar :(

user profile iconGrendel hat folgendes geschrieben:
Richtig. Jedi-VCL und Abakus-VCL. Und die ursprüngliche ist halt die Borland-VCL. Nur wenn man von "der VCL" spricht meint man i.d.R. die Borlandvariante.
Und deren Umfang/Inhalt ist genau festgelegt.
Langsam versteh ich, worauf du hinauswillst. Klar, wenn ich von der Borland-VCL spreche, dann meine ich die VCL, die mir Borland netterweise mitgegeben hat. Wenn ich aber von der VCL spreche, spreche ich von allen VCL-Sammlungen zusammen und davon gibt's unbegrenzt viele.

user profile iconGrendel hat folgendes geschrieben:
user profile iconmaxk hat folgendes geschrieben:
Und da es die meisten Entwickler so sehen, ist es wohl auch müßig darüber zu streiten,

So ist es dass? Und sehen es die meisten wirklich so?
Klar, das mit den "meisten" war nur so in den Raum gestellt. Aber in diesem Thread lese ich erstmals, dass man es anders sehen kann.

user profile iconGrendel hat folgendes geschrieben:
Nur weil die Masse etwas falsch oder ungenau bezeichnet muss ich das doch nicht so fortsetzen.
Zwar etwas überzogen, aber trifft doch zu: "*mist*e schmeckt gut! Millionen Fliegen können nicht irren."
Seh ich genauso. Aber um es falsch zu bezeichnen, muss es erstmal festgelegt werden. Und bisher hat hier noch niemand einen Definitionstext vorgelegt.


Gruß,
maxk


JayK - Di 12.07.05 17:05

Wenn ich VCL höre, dann denke ich an diese Standard-Controls (also keine TActionList o.ä.), die von Borland stammen.
Für mich sind nicht alle Kompos in der Kompo-Palette VCL-Kompos. TXpStyle gehört z.B. nicht zum Visual Component Library. Und TJvMainMenu gehört auch nicht zum VCL, sondern zum JVCL (das ist zwar von der VCL abgeleitet, sind aber nicht mehr die Original-Komponenten).
Ich glaube, da denke ich so wie Grendel ;-)

(BTW weiß ich gar nicht warum alle immer sagen: die VCL, zur VCL... Es ist doch das Library :gruebel: Genus Neutrum)


Alstar - Di 12.07.05 17:30

user profile iconJayK hat folgendes geschrieben:
(BTW weiß ich gar nicht warum alle immer sagen: die VCL, zur VCL... Es ist doch das Library :gruebel: Genus Neutrum)

Nope. Die meißten englischen Ausdrücke, die im Deutschen angewandt werden, bekommen den Artikel von ihrer deutschen Übersetzung. In diesem Falle: die Library.

Alstar


Motzi - Di 12.07.05 19:05

user profile iconGrendel hat folgendes geschrieben:
user profile iconMotzi hat folgendes geschrieben:
Ich habe hier von meinem Delphi 6 Prof ein riesen Poster hängen, da steht drauf, "VCL object history", und da sind alle Klassen angefangen von TObject, über diverse Exceptions etc bis hin zu TTrackBar drauf - also alle Klassen die Delphi kennt.

Genau das meine ich doch. Es gibt eine genau definierte und endliche Zahl an Klassen und Komponenten. Eben alles was auf dem Poster ist und nicht mehr.

Vorhin sagtest du aber noch, dass deiner Meinung nach TBitBtn nicht zur VCL gehört, dieser ist aber ebenfalls auf dem Poster... ;)

user profile iconGrendel hat folgendes geschrieben:
Mich würde mal interessieren, wie man das bei den Borländern definiert.

Kannst ja mal nachfragen.. ;)


hansa - Di 12.07.05 21:40

user profile iconGrendel hat folgendes geschrieben:
...TDatabase ist auch eine VCL-Komponente aber nicht sichtbar...


Grendel, du kannst oder willst es nicht verstehen. Ziehe mal eine TDataBase auf die Form und sage Du siehst nichst. 8) Dann sage ich, daß du mich verarschen willst. :mrgreen:

VCL hat doch mit Runtime absolut nichts zu tun ! Wie oft soll ich das denn noch sagen : VCL ist das, was in der IDE was zu suchen hat. Also Komponenten, die sich auf die Form ziehen lassen und im OI bearbeitet werden können. Und das ist der weltweite Sprachgebrauch für VCL ! Es hat mit Borland und den Standard-Komponenten auch nur indirekt zu tun !

VCL ist eine Programmierweise und nicht nur eine Unit. Der Standard - Lieferumfang von Delphi spielt bei Delphi-Komponenten keine Rolle.


JayK - Di 12.07.05 22:10

Ist das deine Ansichtsweise Hansa? Oder von welchem Borländer hast du die? (Das ist 'ne ernstgemeinte Frage.)


hansa - Di 12.07.05 22:34

Von wem habe ich was ? :shock: Den Namen VCL-Komponenten oder wie ? Habe gerade einen Thread in Amerika laufen und wenn ich eine Frage stellen würde und darin sage : Habe eine nonVCL-Komponente, die von TLabel abgeleitet wäre, dann käme keine Antwort. Nur großes Erstaunen wegen meiner Dummheit. :lol:


Grendel - Fr 15.07.05 11:33

Sorry, daß ich mich erst jetzt wieder melde.

user profile iconMotzi hat folgendes geschrieben:
Vorhin sagtest du aber noch, dass deiner Meinung nach TBitBtn nicht zur VCL gehört, dieser ist aber ebenfalls auf dem Poster... ;)

Nein, das habe ich nie behauptet. Ansonsten zitiere doch mal bitte die Stelle an der ich das gesagt haben soll.

user profile iconhansa hat folgendes geschrieben:
Grendel, du kannst oder willst es nicht verstehen. Ziehe mal eine TDataBase auf die Form und sage Du siehst nichst. Dann sage ich, daß du mich verarschen willst.

Warum musst Du immer gleich persönlich werden. gehts nicht auch einfach nur sachlich?!
Und nein, ich will dich nicht verarschen. Meine Aussage bezog sich auf ein anderes Zitat. Und um es genauer zu sagen: Eine TDatabase ist zur Laufzeit nicht sichtbar.
Und derjenige auf den sich meine Aussage bezog hat es sehr wohl richtig verstanden.

user profile iconhansa hat folgendes geschrieben:
VCL hat doch mit Runtime absolut nichts zu tun !

Aber holla hat sie das. Schließlich stellt sie zig Klassen bereit, die zur Laufzeit benötigt werden.

user profile iconhansa hat folgendes geschrieben:
Wie oft soll ich das denn noch sagen

So oft wie Du magst. Nur wird die Behauptung duch vielfaches wiederholen auch nicht richtiger.

user profile iconhansa hat folgendes geschrieben:
VCL ist das, was in der IDE was zu suchen hat. Also Komponenten, die sich auf die Form ziehen lassen und im OI bearbeitet werden können.

Aha. Also ist die CLX das gleiche wie VCL?!
Frage mich nur wieso in der OH zwischen CLX und VCL unterscheiden wird, wenn CLX doch nix anderes als die VCL ist.

Bis neulich ...


Tilman - Fr 15.07.05 12:06

Jetzt muss ich mich auch mal zu Wort melden. VCL heißt wie bereits oben genannt Visual Component Library, zu deutsch also etwa Bibliothek der (zur Entwurfszeit) sichtbaren Komponenten. Dazu gehören sämtliche zur Entwurfszeit sichtbaren Komponenten! Ich benutze z.B. eine ganze Reiher Borland-Komponente, darüberhinaus auch Fremd-Kompos (Indy z.B.) und darüberhinaus habe ich die Bibliothek der sichtbaren Komponenten auch um eigene Kompos erweitert. Was daran ist unverständlich? Warum sollte es irgend einen Borland-Mitarbeiter interessieren ob ich meine VCL erweitere?


Grendel - Fr 15.07.05 12:21

user profile iconTilman hat folgendes geschrieben:
Jetzt muss ich mich auch mal zu Wort melden. VCL heißt wie bereits oben genannt Visual Component Library, zu deutsch also etwa Bibliothek der (zur Entwurfszeit) sichtbaren Komponenten.

Ja richtig. Nur zeichnet sich eine Bibliothek dadurch aus, daß sie einen genau definierten Umfang/Inhalt hat.

user profile iconTilman hat folgendes geschrieben:
Dazu gehören sämtliche zur Entwurfszeit sichtbaren Komponenten!

Falsch! Was ist z.B. mit CLX. Zur Entwurfszeit sichtbar aber nicht VCL.

user profile iconTilman hat folgendes geschrieben:
Ich benutze z.B. eine ganze Reiher Borland-Komponente, darüberhinaus auch Fremd-Kompos (Indy z.B.) und darüberhinaus habe ich die Bibliothek der sichtbaren Komponenten auch um eigene Kompos erweitert. Was daran ist unverständlich?

Nichts unverständlich. Nur ändert sich die VCL nicht dadurch, daß Du eine "Fremd-Komponente" installierst.

user profile iconTilman hat folgendes geschrieben:
Warum sollte es irgend einen Borland-Mitarbeiter interessieren ob ich meine VCL erweitere?

Wer hat behauptet, daß es die Borländer interessieren sollte?
Ich behaupte doch lediglich, daß die VCL eine genau definierte, endliche Anzahl an Klassen und Komponenten besitzt (eben alles was auf besagtem Poster steht) und nicht mehr.
Klar kannst Du sie selber ändern und erweitern (der Sinn sei mal dahingestellt). Das ändert aber nichts an der Tatsache, daß "die VCL", so wie sie von Borland bereitgestellt wird, immer den gleichen Umfang hat (natürlich nur innerhalb einer Version). Und die VCL ändert sich in keiner Weise dadurch, daß du ein paar Komponenten installierst, die auf VCL-Klassen zugreifen. Die VCL behält den selben Umfang.

Bis neulich ...


Tilman - Fr 15.07.05 12:29

@Grendel
Das ist doch Blödsinn! Es ist doch gang und gebe das mann Bibliotheken erweitert! Wer hat dir den Floh ins Ohr gesetzt das Bibliotheken einen fest definierten Umfang haben? Das ist weder im Übertragenen Sinne (in Delphi/PHP/C++ etc) so, noch in der Realität (Gehe in eine Bibliothek in deiner Stadt. Gehe in zwei Wochen wieder hin. Die Bibliothek hat sich erweitert!)
user defined image


Was CLX angeht: die sind zwar im Prinzip auch visuelle Komponenten, da aber nicht im "normalen" Stammbaum integriert, okay, würde ich vielleicht auch nicht als VCL-Komponente bezeichnen. Ist aber Ansichtssache.
TActionList: Da wüsste ich nun nicht warum das nicht VCL sein soll.


JayK - Fr 15.07.05 12:45

user profile iconTilman hat folgendes geschrieben:
TActionList: Da wüsste ich nun nicht warum das nicht VCL sein soll.

Weil Sie zur laufzeit nicht sichtbar ist :tongue: Laut deiner Definition sogar, ist sie so nicht VCL :lol:
EDIT: Achso! Du hast ja entwurfzeit geschrieben :autsch: Na ja, meine meinung steht oben *kopfschüttel* ich weiß nicht, wozu man das Teil Visual Component Library genannt haben soll, wenn es sowieso alle Komponenten umfassen soll... Ich finde Grendels Argumentation gut (bis auf das mit Bibliotheken im richtigen Leben) :P


Grendel - Fr 15.07.05 12:48

user profile iconTilman hat folgendes geschrieben:
@Grendel
Das ist doch Blödsinn! Es ist doch gang und gebe das mann Bibliotheken erweitert!

Viele Bibliotheken kann man, da sie nicht im Source vorliegen, garnicht direkt erweitern. Und bei allen anderen ist das trotzem garnicht so üblich. Zumindest wird sie dann nicht mehr unter dem selben Namen und/oder der selben Version wie die Ursprüngliche weiterverbreitet.
Es gibt sogar Lizenzen, die genau das fordern. Änderungen deutlich kenntlich zu machen, damit evtl. Fehler nicht auf den Originalautor zurückfallen.

Was meinst Du was los wäre wenn ich eine eigene, umgebaute openssl Variante unter dem selben Namen und mit der selben Version wie die offizielle vertreiben würde?!

user profile iconTilman hat folgendes geschrieben:
Wer hat dir den Floh ins Ohr gesetzt das Bibliotheken einen fest definierten Umfang haben?

Dann zeige mir doch mal eine Bibliothek bei der es üblich ist, daß mehrere Kompilate mit unterschiedlichem Umfang unter dem selben Namen und der selben Version vertrieben werden.

Der festgelegte Umfang "innerhalb einer Version" ist doch alleine schon deswegen nötig, damit man mit anderen über das gleiche spricht.
Wenn ich eine VCL in der Version x habe und Du die selbe Version so können wir sicher sein, daß wir exakt das gleiche Zeuch vorliegen haben.
Wenn nun jeder die VCL in eine andere Richtung abwandelt aber weiterhin von "der VCL in Version x" spricht, dann ist das Chaos doch schon vorprogrammiert.

user profile iconTilman hat folgendes geschrieben:
Das ist weder im Übertragenen Sinne (in Delphi/PHP/C++ etc) so, noch in der Realität (Gehe in eine Bibliothek in deiner Stadt. Gehe in zwei Wochen wieder hin. Die Bibliothek hat sich erweitert!)

Richtig. Aber nach zwei Wochen hat sich die Versionsnummer (das Datum) geändert.

Bis neulich ...


edit:
user profile iconTilman hat folgendes geschrieben:
Was CLX angeht: die sind zwar im Prinzip auch visuelle Komponenten, da aber nicht im "normalen" Stammbaum integriert, okay, würde ich vielleicht auch nicht als VCL-Komponente bezeichnen.

Was ist "der normale Stammbaum"?
Und bitte lass die Konjunktive weg. Mit "würde vielleicht" kommen wir hier nicht weiter. Tust Du oder tust Du nicht?!

user profile iconTilman hat folgendes geschrieben:
Ist aber Ansichtssache.

Und eben das bestreite ich.

user profile iconTilman hat folgendes geschrieben:
TActionList: Da wüsste ich nun nicht warum das nicht VCL sein soll.

Wer hat denn behauptet, daß TActionList nicht Bestandteil VCL sein soll?
Natürlich ist TActionList Bestandteil der VCL.

Bis neulich ...


Tilman - Fr 15.07.05 12:55

Zitat:
Dann zeige mir doch mal eine Bibliothek bei der es üblich ist, daß mehrere Kompilate mit unterschiedlichem Umfang unter dem selben Namen und der selben Version vertrieben werden.


Also da fällt mir auf Anhieb mal die VCL ein... :D Wobei, wo du von Vertrieben redest, das hat ja niemand behauptet. Keiner würde seine "VCL" vertreiben. Höchstens einzelne Komponenten daraus. Oder er nennt sie anders, z.B. myVCL oder so...

Abe ne im ernst: das ist doch gerade der witz, das man auch Bibliotheken erweitern kann wenn man nicht die sources hat, aber egal.


Grendel - Fr 15.07.05 13:10

user profile iconTilman hat folgendes geschrieben:
Also da fällt mir auf Anhieb mal die VCL ein... :D

Und sonst? Wenn das doch sooo üblich ist, dann fällt Dir doch sicher noch mindestens eine weitere ein. (Und jetzt sag nicht CLX)

user profile iconTilman hat folgendes geschrieben:
Wobei, wo du von Vertrieben redest, das hat ja niemand behauptet. Keiner würde seine "VCL" vertreiben. Höchstens einzelne Komponenten daraus. Oder er nennt sie anders, z.B. myVCL oder so...

Mit "anders nennen" habe ich ja auch kein Problem. bzw. ist es genau das was ich erwarte.
Wenn man sie ausliefert wird sie also umbenannt, damit jeder weiß, daß es nicht "die VCL" in Reinform ist. Warum tut man das nicht auch dann, wenn man mit anderen Entwicklern drüber spricht? Wo ist der Unterschied?

Und ob ich den Kram nun Vertreibe oder ob ich von irgendwelchen VCL-Klassen rede, die aber in "der VCL" garnicht zu finden sind. Stiftet imho gleichviel Chaos.
Variante 1 wohl er beim Kunden und Variante 2 beim Entwickler.

user profile iconTilman hat folgendes geschrieben:
Abe ne im ernst: das ist doch gerade der witz, das man auch Bibliotheken erweitern kann wenn man nicht die sources hat, aber egal.

Ähhmm... wie das? Wenn ich eine openssl.dll mit einem vorgegebenen Umfang habe. Wie will ich diese erweitern?
Klar kann ich eine eigene Bibliothek bauen, die Neues mitbringt und einen Wrapper um die openssl-Funktionen bereitstellt. Dadurch erweitere ich aber nicht die ursprüngliche, zugrundeliegende Bibliothek.

Das ist ja wie die Zimmerddecke in der Garage abzuhängen und dann zu behaupten, daß Auto wäre höher geworden.

Bis neulich ...


Tilman - Fr 15.07.05 13:20

user profile iconGrendel hat folgendes geschrieben:
user profile iconTilman hat folgendes geschrieben:
Also da fällt mir auf Anhieb mal die VCL ein... :D

Und sonst? Wenn das doch sooo üblich ist, dann fällt Dir doch sicher noch mindestens eine weitere ein. (Und jetzt sag nicht CLX)


Nun, es ist in OOP allgemein Üblich Komponenten zu erweitern. Und die stecken meist in Bibliotheken, und wenn es sich dabei um die Bibliothek mit den (z.Lz) sichtbaren Komponenten am eigenen "Kompjuter" handelt, dann nennt man die gemein hin VCL, wobie die Bibi von BORLAND gemeint ist, evtl erweitert um Fremd und/oder eigen-Komponenten. Schluß. Aus. Ende!

Jede Bibliothek die ich erweitere, erweitert zusätzlich auch die VCL (wenn es sich um sichtbare kompos (z.Lz) handelt.). Darüberhinaus erweiter ich z.B. auch die nicht-sichtbare Bibliothek - k.A. ob die einen Namen hat. Beispiel: ich habe eine Unit "Turtle" welche Turtle-Grafik einbindet - nicht VCL, aber eine erweiterung der Bibliothek auf meinem Computer, meiner Delphi-Umgebung.

//Edit:
Um die leidige Diskussion zu beenden: Ich bitte dich folgende Frage zu beantworten. Wenn ich auf meinem Computer die VCL habe, also die Bibliothek der (z.Lz) sichtbaren Komponenten. Nun Habe ich weitere Komponenten in einer Bibliothek, und die Komponenten sind ZUR LAUFZEIT sichtbar. Sind es nun zur laufzeit sichtbare Komponenten in einer Bibliothek oder sind sie es nicht, oder um es pseudo-englisch auszudrücken SIND DIE KOMPOS VCL - oder sind sie es nicht?


Grendel - Fr 15.07.05 13:33

user profile iconTilman hat folgendes geschrieben:
Nun, es ist in OOP allgemein Üblich Komponenten zu erweitern. Und die stecken meist in Bibliotheken, und wenn es sich dabei um die Bibliothek mit den (z.Lz) sichtbaren Komponenten am eigenen "Kompjuter" handelt, dann nennt man die gemein hin VCL
oder CLX ;) (btw: wie nennt man die Dinger unter z.B. Visual C++?)
user profile iconTilman hat folgendes geschrieben:
, wobie die Bibi von BORLAND gemeint ist, evtl erweitert um Fremd und/oder eigen-Komponenten. Schluß. Aus. Ende!

Und genau in dem Punkt widerspreche ich.
Es ist nicht üblich Komponenten zu "erweitern" sondern zu "abzuleiten" und ie Ableitung zu erweitern. Eine Erweiterung kann nur in der Komponente selber stattfinden und würde, sofern es eine VCL-Komponente ist, die VCL erweitern.
Leite ich aber von einer VCL-Komponente ab und füge meine Komponente nicht der VCL (sondern einem eigenen Paket zu) ändert sich "die VCL" dadurch nicht.

user profile iconTilman hat folgendes geschrieben:
Jede Bibliothek die ich erweitere, erweitert zusätzlich auch die VCL (wenn es sich um sichtbare kompos (z.Lz) handelt.).

Aber "erweiterst" Du sie wirklich oder "leitest" Du nur davon ab und erweiterst die Ableitung?
Also erweiterst Du direkt z.B. die Klasse TButton oder leitest Du erst einen TMyButton ab und erweiterst diesen?

user profile iconTilman hat folgendes geschrieben:
Darüberhinaus erweiter ich z.B. auch die nicht-sichtbare Bibliothek - k.A. ob die einen Namen hat. Beispiel: ich habe eine Unit "Turtle" welche Turtle-Grafik einbindet - nicht VCL, aber eine erweiterung der Bibliothek auf meinem Computer, meiner Delphi-Umgebung.

Ja und? Was hat das mit dem Thema zu tun?

Weiterhin wäre es nett, wenn Du mir alle meine Fragen des vorhergehenden Posts beantworten würdest.

Bis neulich ...


Grendel - Fr 15.07.05 13:38

user profile iconTilman hat folgendes geschrieben:
Um die leidige Diskussion zu beenden: Ich bitte dich folgende Frage zu beantworten. Wenn ich auf meinem Computer die VCL habe, also die Bibliothek der (z.Lz) sichtbaren Komponenten.

Die VCL ist nicht "die Bibliothek der zur Laufzeit sichtbaren Komponenten". Die VCL enthält auch ettlichen Kram, der nur zur Designzeit sichtbar ist. (z.B. TDatabase)

user profile iconTilman hat folgendes geschrieben:
Nun Habe ich weitere Komponenten in einer Bibliothek, und die Komponenten sind ZUR LAUFZEIT sichtbar. Sind es nun zur laufzeit sichtbare Komponenten in einer Bibliothek oder sind sie es nicht

Ja, sind sie.

user profile iconTilman hat folgendes geschrieben:
, oder um es pseudo-englisch auszudrücken SIND DIE KOMPOS VCL - oder sind sie es nicht?

Nein, sind sie nicht.
Da VCL nicht bedeutet, daß es sich um eine Bibliothek mit zur Laufzeit sichtbaren Komponenten handelt.

Sonst wäre CLX ja auch "eine VCL" oder das Ding von VisualC++ oder wxWidgets, Fox, QT undwiesialleheißen. Aber das sind sie nicht denn die VCL ist das Ding von Borland und nicht jede Bibliothek, die irgendein Steuerelement enthält.

Bis neulich ...


Tilman - Fr 15.07.05 13:43

Zitat:
Delphi-Komponenten befinden sich in einer Kompontenbibliothek, die zwei Teilen besteht: Die Visual Component Library (VCL) und der Component Library for Cross Plattform (CLX, für plattformübergreifende Entwicklungen).
[...]
Wenn Sie eine Komponente entwickeln, fügen Sie sie der Komponentenbibliothek hinzu, indem Sie von einer bestehenden Klasse eine neue Klasse ableiten.


So, ich verrate jetzt mal extra nicht woher das Zitat stammt, aber vielleicht kommst du selber drauf :)

Übrigesn ist damit die Diskussion klammheimlich beendet: Wenn die "VCL-Komponenten" deiner Mein nach nicht VCL sind, dann sind sie leider CLX. Da sie das nicht sind müssen sie VCL sein (s.O.)


JayK - Fr 15.07.05 13:50

user profile iconTilman hat folgendes geschrieben:
Zitat:
Delphi-Komponenten befinden sich in einer Kompontenbibliothek, die zwei Teilen besteht: Die Visual Component Library (VCL) und der Component Library for Cross Plattform (CLX, für plattformübergreifende Entwicklungen).
[...]
Wenn Sie eine Komponente entwickeln, fügen Sie sie der Komponentenbibliothek hinzu, indem Sie von einer bestehenden Klasse eine neue Klasse ableiten.


So, ich verrate jetzt mal extra nicht woher das Zitat stammt, aber vielleicht kommst du selber drauf :)

Ich tippe mal auf OH. Aber die Beschreibt Delphi im Grundzustand! Wenn ich Delphi installiere sind natürlich nur VCL und ggf. CLX drauf. Wenn JVCL dazukommt (die komischerweise nicht in dieser Hilfe steht :P) sind die da ja nur nicht erwähnt.
Komponentenbibliothek sehe ich als das an, was aus allen möglichen Kompos besteht, die in der Palette sind, nicht VCL. VCL ist nur ein Package (eine Komponentensammlung). Und wie es in der OOP nunmal ist, kann man davon eben was ableiten, ja und?

user profile iconTilman hat folgendes geschrieben:
Übrigesn ist damit die Diskussion klammheimlich beendet: Wenn die "VCL-Komponenten" deiner Mein nach nicht VCL sind, dann sind sie leider CLX. Da sie das nicht sind müssen sie VCL sein (s.O.)

Glaub mir, wir oder ihr finden bestimmt immer wieder Gegenargumente :mrgreen: komischerweise sinds bis jetzt immer die gleichen :P


Grendel - Fr 15.07.05 13:52

user profile iconTilman hat folgendes geschrieben:
Zitat:
Delphi-Komponenten befinden sich in einer Kompontenbibliothek, die zwei Teilen besteht: Die Visual Component Library (VCL) und der Component Library for Cross Plattform (CLX, für plattformübergreifende Entwicklungen).
[...]
Wenn Sie eine Komponente entwickeln, fügen Sie sie der Komponentenbibliothek hinzu, indem Sie von einer bestehenden Klasse eine neue Klasse ableiten.


So, ich verrate jetzt mal extra nicht woher das Zitat stammt, aber vielleicht kommst du selber drauf :)

Egal woher das stammt es ist schlicht falsch. Wird aber wohl die OH sein. Jetzt wäre nurmal interessant wie es im englischen Original lautet. Denn deutsche Übersetzungen von Entwicklerdokus sind selten brauchbar.

Schon der erste Satz stimmt nicht:

"Delphi-Komponenten befinden sich in einer Kompontenbibliothek, die zwei Teilen besteht: Die Visual Component Library (VCL) und der Component Library for Cross Plattform (CLX, für plattformübergreifende Entwicklungen)."

Die VCL und CLX sind nicht jeweils die halbe Komponentenbibliothek. Sondern jede für sich alleine eine vollwertige Bibliothek.
"eine Bibliothek" aus "zwei Teilen" stimmt einfach nicht.

"Wenn Sie eine Komponente entwickeln, fügen Sie sie der Komponentenbibliothek hinzu, indem Sie von einer bestehenden Klasse eine neue Klasse ableiten."

Na wenigstens schreiben die "ableiten" und nicht "erweitern". Und wenn der erst Satz stimmen würde würde ich VCL und CLX immer zusammen "erweitern".

Sorry, aber dieses Zitat bringt es nicht.


Und weiterhin bitte ich dich nochmal auf die Punkte einzugehen, die ich in den vorhergeganenen Post auf deine Bemerkungen angebracht habe.

Bis neulich ...


JayK - Fr 15.07.05 13:54

Wie gesagt: die OH beschreibt Delphi wohl im Grundzustand... ;)


Tilman - Fr 15.07.05 13:56

user profile iconJayK hat folgendes geschrieben:

Ich tippe mal auf OH. Aber die Beschreibt Delphi im Grundzustand!

Wie kommst du darauf? Was ist denn mit Ableiten und hinzufügen gemeint, wenn ich stets im Grundzustand verbleibe? Ich füge die Komponenten der Komponentenbibliothek hinzu, und selbige besteht aus VCL/OCX. Da bleiben eigentlich keinerlei Fragen offen!

Zitat:

Wenn ich Delphi installiere sind natürlich nur VCL und ggf. CLX drauf. Wenn JVCL dazukommt (die komischerweise nicht in dieser Hilfe steht :P) sind die da ja nur nicht erwähnt.

Warum sollten sie? schließlich ist die VCL ja auch bei jedem Programmierer etwas anders, vorrausgesetzt er nimmt änderungen daran vor. Die können natürtlich nicht in der Hilfe stehen und warum sollten sie auch?
- Die JVCL-Komponetne sind, osfern sie Visual sin, und das werden sie sein sonst hießen sie nicht JVCL, VCL-Komponenten! Oh Satan, wie kannst du nur, doch es ist war! :twisted:


Grendel - Fr 15.07.05 14:02

user profile iconTilman hat folgendes geschrieben:
Übrigesn ist damit die Diskussion klammheimlich beendet: Wenn die "VCL-Komponenten" deiner Mein nach nicht VCL sind, dann sind sie leider CLX. Da sie das nicht sind müssen sie VCL sein (s.O.)

Nimms mir nicht übel aber nach der Aussage bin ich nicht bereit weiter mit dir zu pallavern. Du scheinst Dir keine Mühe zu geben alle meine Fragen und Anmerkungen zu kommentieren und verstehst offenbar bewusst mis.

Du stellst eine Aussage in den Raum, ich kommentiere diese und stelle eine Frage dazu. Aber Du beantwortest diese nicht und übergehst meine Anmerkungen unkommentiert.
Soll ich das als stille Zustimmung oder als Respektlosigkeit auffassen?

Wo bitte habe ich einen Stuss wie:
""VCL-Komponenten" deiner Mein nach nicht VCL sind"
erzählt?
Und wie kann eine Komponente "VCL sein"? Sie kann höchstens Bestandteil der VCL sein. Aber "VCL sein" kann sie nicht.

VCL bedeutet nicht, daß eine Komponente zur Laufzeit sichtbar ist. Das behauptet nichtmal Borland.

Natürlich ist eine VCL-Komponente Bestandteil der VCL. Aber eine Ableitung einer VCL-Komponente ist so lange keine VCL-Komponente bis sie zum Paket "VCL" hinzugefügt wird. Bis dahin ist sie nur eine "Ableitung einer VCL-Komponente".

Bis neulich ...


Tilman - Fr 15.07.05 14:02

Hast recht, im original stehts anders... NOCH SCHLIMMER!

Zitat:
Delphi’s components reside in two class hierarchies called the Visual Component Library (VCL) and the Component Library for Cross Platform (CLX). [....]
When you create a component, you add to the VCL or CLX by deriving a new class from one of the existing class types in the hierarchy.


Übrigens war ich selbts bisher davon ausgegangen das die definition inoffiziell ist. Doch sehet, Borland sieht es genauso!

Mal erhlrich, wer ist jetzt noch anderer meinung? der kann nicht lesen oder kein englisch. :?

P.S. Warum darf eine Bibliothek nicht aus mehreren Bibliotheken bestehen? Das ist in OOP nun wirklich nichts ungewöhnliches. Buttons würde ich z.B. als eine art Bibliothek innerhalb der VCL bezeichnen... aber ich will kein neues Faß aufmachen...


@grendel:
Zitat:
Wo bitte habe ich einen Stuss wie:
""VCL-Komponenten" deiner Mein nach nicht VCL sind"
erzählt?
Und wie kann eine Komponente "VCL sein"? Sie kann höchstens Bestandteil der VCL sein. Aber "VCL sein" kann sie nicht.


Ja sorry, mein fehler. ich meinte das du NEU ABGELEITETEN komponenten den "VCL-Status" absprichst, darum dreht sich doch die Diskussion, nichtwahr?


Grendel - Fr 15.07.05 14:07

user profile iconTilman hat folgendes geschrieben:
- Die JVCL-Komponetne sind, osfern sie Visual sin, und das werden sie sein sonst hießen sie nicht JVCL, VCL-Komponenten! Oh Satan, wie kannst du nur, doch es ist war! :twisted:


Nochmal in groß zum mitschreiben.

VCL SAGT NICHTS DARÜBER AUS, OB EINE KOMPONENTE ZUR LAUFZEIT SICHTBAR IST ODER NICHT.

Das V(isual) bezieht sich nur auf die Designzeit und meint die Komponentenpalette sowie die Möglichkeit Properties per Objektinspektor zu bearbeiten.

So ist z.B. die TDatabase sehr wohl eine VCL-Komponente aber zur Laufzeit nicht sichtbar. Oder TActionList, TTimer, TQuery, etc...

Bis neulich ...


Tilman - Fr 15.07.05 14:09

Jupp, du hast völlig recht, immer wenn ich Laufzeit sagte meinte ich natürlich Designzeit :( Aber meine Ausführungen, vor allem das Zitat in englisch, bleiben unberührt. Da kann jetzt keiner mehr was sagen! Sorry! add to VCL!


Grendel - Fr 15.07.05 14:17

user profile iconTilman hat folgendes geschrieben:
Hast recht, im original stehts anders... NOCH SCHLIMMER!

Nein. Im Original stimmt es.

Zitat:
Delphi’s components reside in two class hierarchies called the Visual Component Library (VCL) and the Component Library for Cross Platform (CLX). [....]
When you create a component, you add to the VCL or CLX by deriving a new class from one of the existing class types in the hierarchy.


Übersetzt heißt das soviel wie:
Delphi-Komponenten befinden sich in zwei Klassen-Hierarchien namens VCL und CLX ...

Und zwischen "befinden sich in einer Kompontenbibliothek , die aus zwei Teilen besteht"
und
"befinden sich in zwei Klassen-Hierarchien" existiert jawohl ein himmelweiter Unterschied.

Oder willst Du mir weismachen, daß "zwei Klassen-Hierarchien" das selbe wie "eine Kompontenbibliothek" ist/sind.

Bis neulich ...


Grendel - Fr 15.07.05 14:18

user profile iconTilman hat folgendes geschrieben:
Jupp, du hast völlig recht, immer wenn ich Laufzeit sagte meinte ich natürlich Designzeit :(

OK. Dann passt es.

user profile iconTilman hat folgendes geschrieben:
Aber meine Ausführungen, vor allem das Zitat in englisch, bleiben unberührt. Da kann jetzt keiner mehr was sagen!
Sorry! add to VCL!

Doch, da kann noch jemand was sagen. In der Englichen Fassung reden die nämlich von einer "Hierarchie" und nicht von einer (bzw. zwei) "Bibliothek". Und das ist jawohl ein himmelweiter Unterschied.

Bis neulich ...


Tilman - Fr 15.07.05 14:24

user profile iconGrendel hat folgendes geschrieben:

Doch, da kann noch jemand was sagen. In der Englichen Fassung reden die nämlich von einer "Hierarchie" und nicht von einer (bzw. zwei) "Bibliothek". Und das ist jawohl ein himmelweiter Unterschied.

Bis neulich ...


ok, der Meinung bin ich und bleibe ich... aber das ist ein Rand-Thema. Hier wurde diskuttiert ob wir die VCL erweitern oder nicht, und das steht Klipp-und-Klar drin: wir erweitern die VCL! (Hinzufügen/add ist das selbe wie erweitern, nur damit es nicht wieder "Formalitäts"-Probleme gibt)


Tilman - Fr 15.07.05 14:27

Grendel schrieb:
Zitat:
Richtig. Nur spielt es keine Rolle, ob ich von TControl TComponenten TEdit oder sonsteiner VCL-Komponete/Klasse ableite. So lange das Ergebnis nicht in die VCL aufgenommen wird ist es auch keine VCL-Komponente. Sondern höchstens eine Ableitung einer VCL-Komponente.

Es ging eben nicht darum, daß er von TControl oder sonstwas ableiten sollte sondern, daß seine Ableitung niemals eine VCL-Komponente sein kann. bzw. daß VCL Komponenten auch nur Komponenten sind, die aber eben in der VCL stecken.


Und das meint "Delphi":
Zitat:

When you create a component, you add to the VCL or CLX by deriving a new class from one of the existing class types in the hierarchy.



Vielleicht können wir's so beschließen...


JayK - Fr 15.07.05 14:42

user profile iconTilman hat folgendes geschrieben:
user profile iconJayK hat folgendes geschrieben:

Ich tippe mal auf OH. Aber die Beschreibt Delphi im Grundzustand!

Wie kommst du darauf? Was ist denn mit Ableiten und hinzufügen gemeint, wenn ich stets im Grundzustand verbleibe? Ich füge die Komponenten der Komponentenbibliothek hinzu, und selbige besteht aus VCL/OCX. Da bleiben eigentlich keinerlei Fragen offen!

Boa! Wenn Borland eine Hilfe schreibt weiß es doch noch nicht, was für zusätzliches Zeugs man da einbaut :roll:
Also können die auch nicht die Benutzung von JVCL-WasAuchImmerDialogen da reinschreiben! Und am Anfang ist eben wirklich nur VCL und CLX da, später kann man aber eben noch was dazu installieren. Und das ist dann eben das Dritte im Bunde, oder wenn noch mehr sind eben das 4., das 5., das 6, ...

Ich diskutiere jetzt auch nicht mehr mit.


Grendel - Fr 15.07.05 14:57

user profile iconTilman hat folgendes geschrieben:
Vielleicht können wir's so beschließen...

Wenn das da wirklich so steht, (hab leider kein englisches Delphi) und im Kontext auch immer noch diesen Sinn ergibt.
Dann will ich nix gesagt haben.

Auch wenn ich mir gut vorstellen könnte, daß auch die englische OH nicht fehlerfrei ist. Gerade in solchen Punkten, wo jeder weiß wie es gemeint ist wird gerne mal geschlampt.
Und die schlimmsten Bugs sind immer noch die Dokumentationsbugs.

Aber wie gesagt. Sollte das wirklich so stimmen und von Borland so gemeint sein, dann nehme ich alles zurück und behaupte das Gegenteil.

Bis neulich ...


Motzi - Fr 15.07.05 16:39

Ich hab Delphi6 Prof. auf Englisch und hab auch grad nochmal geschaut. Hier nochmal der komplette Text (das Bild hab dazwischen hab ich angehängt):
Delphi OH - DevGuide: Component writer's guide hat folgendes geschrieben:
Class libraries
Delphi’s components reside in two class hierarchies called the Visual Component Library (VCL) and the Component Library for Cross Platform (CLX). The following figure shows the relationship of selected classes that make up the VCL. The CLX hierarchy is similar to the VCL but Windows controls are called widgets (therefore TWinControl is called TWidgetControl, for example), and there are other differences. For a more detailed discussion of class hierarchies and the inheritance relationships among classes, see Object-oriented programming for component writers For an overview of how CLX differs from the VCL, see CLX versus VCL and refer to the CLX online reference for details on the components.

The TComponent class is the shared ancestor of every component in the VCL and CLX. TComponent provides the minimal properties and events necessary for a component to work in Delphi. The various branches of the library provide other, more specialized capabilities.

[Bild]

When you create a component, you add to the VCL or CLX by deriving a new class from one of the existing class types in the hierarchy.