Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Allgemeine Fragen zu Delphi

  Alt 18. Nov 2007, 15:29
Moin andiak,

teilweise ist es schwer zu beurteilen, ob die Antworten richtig bzw. vollständig sind, weil das auch davon abhängt, wie weit ihr in die Materie eingestiegen seid.

Ad 1.
Der Objektinspektor bietet schnellen Zugriff auf die published-Eigenschaften und Ereignisse, der (visuellen und nicht-visuellen)-Komponenten an, die sich auf dem jeweils aktiven Formular befinden, sowie die des Formulares selber.
Man kann dort den published-Eigenschaften initiale Werte zuweisen, sowie den Rumpf von Ereignismethoden erzeugen, bzw. den Eigenschaften Ereignismethoden zuweisen.

Würde der OI diese Auswahl über das gesamte Projekt bieten würde das schnell unübersichtlich werden.
Denk nur mal an Projekte mit vielleicht hunderten von Formularen, von den darauf befindlichen visuellen und nicht-visuellen Komponenten mal ganz zu schweigen.
Eigentlich ist die Bezeichnung "Object"-Inspektor nicht ganz korrekt, da man hiermit nur Komponenten auswählen kann (die allerdings auch Objekte sind).
Wichtig ist auch, dass nur der Zugriff auf published-Eigenschaften möglich ist (published markiert alle Eigenschaften, die im OI erscheinen sollen, eine Borland Spezialität). Ob es sich hier um wichtige Eigenschaften handelt oder nicht, sei jetzt mal dahingestellt, aber die Person die die Komponente entwickelt hat, fand es wohl wichtig diese schon zur Designzeit mit Werten versehen zu können
Dein Beispiel OnClick ist auch nur eine Eigenschaft, der aber eine Ereignisroutine zugeordnet werden kann. Wird das nicht gemacht, wird, soweit vorhanden, die Standardereignisbehandlungsroutine ausgeführt.

Ad 2.1
Stimmt, es kann durchaus sein, dass sich der Wert der Eigenschaft ändert, so dass die getroffene Aussage falsch ist.
Allerdings ist es auch möglich, dass man den Wert nicht direkt ändern kann, sondern dass diese Änderung innerhalb des Objektes stattfindet (z.B. Count von TStringList).

Ad 2.2
Deine Antwort ist zwar auch hier richtig, aber die Begründung falsch (zumindest so, wie ich die Aussage verstanden habe, die es zu beurteilen gilt).
Beispiel:
Du erzeugst, per Doppelclick auf OnClick im OI den Rumpf einer Ereignisbehandlungsroutine für das Anclicken des Controls.
OnClick ist vom Typ TNotifyEvent.
Diese Routine kannst Du jetzt allen OnXXXXX-Ereigniseigenschaften zuweisen, die auch vom Typ TNotifyEvent sind, und zwar für alle Controls, die sich auf dem Formular befinden. Das Feld neben dem Namen der Eigenschaft ist ja eine ComboBox, die einem alle gerade zur Verfügung stehenden Ereignisbehandlungsroutinen zur Auswahl stellt.
Wenn man mehrere Controls markiert hat (Shift-Click), würde auch allen markierten bei Doppelclick in das Feld die frisch erzeugte Ereignisbehandlungsroutine zugewiesen werden.

Ad 2.3
Auch hier stimmt die eigentlich Antwort, nur hat die Begründung auch wieder nichts damit zu tun
Für mich bezieht sich diese Aussage nur auf Ereignisbehandlungsroutinen (das sind ja auch Methoden), die dann halt aufgerufen werden, wenn das jeweilige Ereignis eintritt (z.B. eben Anclicken).
Es gibt aber auch Methoden, die nichts mit Ereignissen zu tun haben (z.B. wieder mal bei TStringList die Methode Add)

Ad 2.4
So wie die Aussage da steht, ist sie falsch. Eine Objekteigenschaft kann kein Objekt sein, allerdings kann sie ein Objekt enthalten. Beispiel: Oft findet man die Eigenschaft PopupMenu, der man dann ein Objekt vom Typ TPopupMenu zuweisen kann.

Ad 3
Hier möchte ich nur mal kurze Erläuterungen geben, um den Einstieg für Einzelheiten zu erleichtern, ein bisschen was sollst Du ja auch zu tun haben

Objekt:
Delphi: Der Button den man auf ein Formular legt, wäre eine Instanz der Klasse TButton
Office: Eine in ein Dokument eingebundene Graphik wäre ein Objekt
Reale Welt: Such' Dir irgendetwas aus, denn eigentlich kann man alles was man in der Realität findet als Objekt ansehen.

Eigenschaft:
Delphi: Um mal beim Button zu bleiben. Er hat die Eigenschaft Caption, die den angezeigten Text enthält.
Office: Die genannte Graphik hat, z.B. eine gewisse Breite.
Real: Wenn wir mal als Objekt einen Bleistift annehmen, so könnte die Strichstärke eine Eigenschaft sein.

Methode:
Delphi: TButton kennt eine Methode Click, deren Aufruf den gleichen Effekt hat, als würde man den Button anklicken
Office und real: Da fällt mir so nichts vergleichbares ein.

Wert:
Delphi: Initial hat die Caption des ersten Button, den man auf ein Formular legt den Wert Button1
Office: Die Anzahl Pixel, die eine eingebundene Graphik Breit ist
Real: Die, z.B., Millimeter, die eine Bleistifmine dick ist.

Ereignis:
Delphi: Tritt ein, wenn man den Button anklickt.
Office und real: Dazu fällt mir auch nicht wirklich etwas ein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat