AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi externe Procedure ruft variable in Objekt auf??
Thema durchsuchen
Ansicht
Themen-Optionen

externe Procedure ruft variable in Objekt auf??

Ein Thema von clownxx · begonnen am 29. Jul 2003 · letzter Beitrag vom 1. Aug 2003
Antwort Antwort
clownxx

Registriert seit: 18. Jun 2003
63 Beiträge
 
#1

externe Procedure ruft variable in Objekt auf??

  Alt 29. Jul 2003, 08:54
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
  Mit Zitat antworten Zitat
clownxx

Registriert seit: 18. Jun 2003
63 Beiträge
 
#2

Re: externe Procedure ruft variable in Objekt auf??

  Alt 29. Jul 2003, 12:10
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
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#3

Re: externe Procedure ruft variable in Objekt auf??

  Alt 29. Jul 2003, 14:18
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
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
clownxx

Registriert seit: 18. Jun 2003
63 Beiträge
 
#4

Re: externe Procedure ruft variable in Objekt auf??

  Alt 29. Jul 2003, 14:45
wenn ich das Object aber im Constructor erzeuge, dann habe ich doch zwei objektinstanzen, wenn ich die Komponente auf der Form Platziere oder?!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: externe Procedure ruft variable in Objekt auf??

  Alt 1. Aug 2003, 23:34
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.
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
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 06: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