Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi externe Procedure ruft variable in Objekt auf?? (https://www.delphipraxis.net/6974-externe-procedure-ruft-variable-objekt-auf.html)

clownxx 29. Jul 2003 08:54


externe Procedure ruft variable in Objekt auf??
 
Hey Leute, ich habe ein (für mich) schwieriges Problem:
Ich programmiere eine Komponente.
Ich habe eine Variable in einem Objekt. Diese variable möchte ich in einer Procedure ändern, welche sich global in der Unit befindet, nicht im Objekt. Da das Objekt jedoch zur Zeit der Komponentenentwicklung logischerweise nicht erzeugt ist, kann ich nicht auf diese Variable zugreifen. die Procedure die diese Variable ändern soll wird einer funktion, die ich aus einer DLL importiere in einer Proceduralen Variable übergeben. daher darf ich die procedure nicht im Objekt deklarieren, sonst kommt die Stackverarbeitung durcheinander! Bitte um Hilfe

clownxx 29. Jul 2003 12:10

Re: externe Procedure ruft variable in Objekt auf??
 
ich nabe nun folgendes versucht: ich übergebe der Funktion aus der DLL eine Varible, der eine Procedure Zugewiesen ist (Procedurale variable). Diese Procedure befindet sich jedoch innerhalb eines Objektes (im Public bereich). Leider funktioniert das jedoch nicht, ich bekomme jedes Mal eine Zugriffsverletzung bei Adresse 000000008. Wie kann ich das denn ändern?? Hiiiiiiiiilfe :firejump:

Touchdown 29. Jul 2003 14:18

Re: externe Procedure ruft variable in Objekt auf??
 
Du könntest dieses Objekt im Constructor erzeugen oder du verwendet Class Proceduren (da natürlich auch nicht mit nil-Objekten spielen). Diese hängen tatsächlich nicht am Objekt sondern direkt an der Klasse, siehe auch Delphi-Hilfe

clownxx 29. Jul 2003 14:45

Re: externe Procedure ruft variable in Objekt auf??
 
wenn ich das Object aber im Constructor erzeuge, dann habe ich doch zwei objektinstanzen, wenn ich die Komponente auf der Form Platziere oder?!

Christian Seehase 1. Aug 2003 23:34

Re: externe Procedure ruft variable in Objekt auf??
 
Moin Clownxx,

in der Hoffnung Dein Problem verstanden zu haben...

Mache die Variable im Objekt doch als Property zugänglich.
Dann bräuchtest Du in der Prozedur nur noch den Zugriff auf eine Variable die das Objekt enthält.

Beispiel:

Delphi-Quellcode:
unit GlobaleUnit;

interface

uses TypeUnit;

//...

var
  vMyObjekt : TMyObject;

procedure GlobalProc;

implementation

procedure GlobalProc;
begin
  vMyObjekt.MyProperty := 1;
end;
Delphi-Quellcode:
unit TypeUnit;

type
  TMyObject = class
  private
    FMyProperty : integer;
  public
    property MyProperty : integer read FMyProperty write FMyProperty;
  end;
Wo Du das Objekt nun erzeugst, bzw. die Variable vMyObject füllst sei jetzt mal dahingestellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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