AGB  ·  Datenschutz  ·  Impressum  







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

procedure wird nicht aufgerufen

Ein Thema von JnZn558 · begonnen am 5. Sep 2010 · letzter Beitrag vom 6. Sep 2010
Antwort Antwort
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#1

AW: procedure wird nicht aufgerufen

  Alt 6. Sep 2010, 16:54
Ich wiederhole mich nur ungern, aber in deinem Posting ist wieder keine Zeile Code die zeigt wie auf die Properties auch zugegriffen wird. Warum lässt Du den interessanten Teil immer weg? Diesmal hast Du in Deiner "Testanwendung" ja nicht mal mehr eine Instanz der Klasse TExpandingComponent erzeugt. Es wird also nicht mehr was Du uns zeigst, sondern immer weniger. Falsche Richtung...
ist das so schwer zu verstehen, es ist genauso wie wenn du ein button auf formular ziehst, erzeugst du selbst da ein instanz oder was?? das uebernimmt doch delphi, dafuer sind doch komponente in delphi da, um die arbeit zu erleichtern, dasselbe hab ich auch mit meiner komponente gemacht, es wird nicht zur laufzeit erzeugt, da muss man expliziert ne instanz erzeugen.
Peace on the world
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#2

AW: procedure wird nicht aufgerufen

  Alt 6. Sep 2010, 18:16
Durch Rumgeschnauze wird Dein Posting auch nicht besser. Die Frage bleibt weiterhin warum Du keinen Code zeigst der mit deiner selbstgebauten Klasse auch arbeitet. Wenn Du da über den Objektinspektor Sachen zuweist, solltest Du noch die entsprechenden Snippets aus dem *.DFM mit einstellen, Kristallkugeln sind gerade aus. Ansonsten zeig mal endlich Code der mit den Properties auch arbeitet. Nicht die Setter hinter den Properties, sondern Code der "von außen" auf die Properties zugreift. Denn davon ist bislang trotz mehrfacher Nachfrage nix zu sehen. Sollte das zu schwer sein, kannst Du auch einfach mal dein komplettes Projekt in ein ZIP-Archiv packen und hier einstellen.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#3

AW: procedure wird nicht aufgerufen

  Alt 6. Sep 2010, 18:19
Der Setter wird nur dann aufgerufen, wenn die öffentliche Property einen neuen Wert zugewiesen bekommt und nicht dann, wenn die Klasse selbst auf das dahinterliegende private Feld zugreift. Und Ersteres hat man bislang in keinem der gezeigten Codes zu sehen bekommen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#4

AW: procedure wird nicht aufgerufen

  Alt 6. Sep 2010, 21:55
ich hab es nun geschafft

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExpandingComponent;

type
  TForm1 = class(TForm)
    ExpandingComponent1: TExpandingComponent;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    tes: TExpandingRecord;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  tes := TExpandingRecord.Create( Self );
  ExpandingComponent1.Property1.StringProp := 'mach mal das was ich will';
  ExpandingComponent1.Property1 := tes; // erst bei dieser zeile springt eine meldung aus
end;
oh man, hab mich voll durchgequaelt. danke fuer alle muehe, mir tipps zugeben
Peace on the world

Geändert von JnZn558 ( 6. Sep 2010 um 22:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

AW: procedure wird nicht aufgerufen

  Alt 6. Sep 2010, 22:51
ich hab es nun geschafft
Gratuliere!

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  tes := TExpandingRecord.Create( Self );
  ExpandingComponent1.Property1.StringProp := 'mach mal das was ich will';
  ExpandingComponent1.Property1 := tes; // erst bei dieser zeile springt eine meldung aus
end;
Das ist ja auch kein Wunder, der erste Zugriff ist ja nur ein Lesezugriff, da wird also nur der Getter angesprochen (der liefert dann die Instanz von TExpandingRecord zurück, von der dann der Setter von TExpandingRecord.StringProp angezogen wird, welcher in dem Fall nur direkt die zugehörige Membervariable befüllt...) Da kann ja auch keine Meldung vom Setter von TExpandingComponent.Property1 ausgegeben werden
Und beim zweiten Zugriff wird dann der "richtige" Setter angezogen und Deine Message ausgegeben.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  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 15:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz