AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi objectreferenz austauschen ohne globale variablen!!!!
Thema durchsuchen
Ansicht
Themen-Optionen

objectreferenz austauschen ohne globale variablen!!!!

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 17. Nov 2005 · letzter Beitrag vom 17. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 14:53
moin zusammen,

ich hab mal eine frage. es geht darum wie ich objectreferenzen uebertragen kann.

das problem ist. ich erhalte in einer procedure die objectreferenz, muss sie aber in einer anderen procedure verarbeiten. momentan mach ich das mit einer globalen
variablen von typ object. und zwar so. hab der einfachheit halber ein paar cast weggelassen.

Delphi-Quellcode:
var //global
reftestobject: ttestobject;



procedure bla1
begin
  testobject1:=create(owner ....);
end;

procedure bla2
begin
  with reftestobject do
  begin

  //mach was zu tun ist

  end;
end;
so jetz meine fragen. globale variablen sind ja eine schlechte loesung, weil sie zu langwierigen und schwierigen debugging prozessen fuehren koennen.
meine frage jetzt wie kann ich das besser machen? ich dachte das ich da einen pointer verwenden koennte, aber der muss doch dann auch global definiert sein oder?


eventuell so?

Delphi-Quellcode:
var //global
reftestobject: pointer


procedure bla1
begin
  testobject1^:=create(owner ....);
end;

procedure bla2
begin
  with @reftestobject do
  begin

  //mach was zu tun ist

  end;
end;
hoffe mir kann jemand ein paar tipps geben

Gruß euer Richard

[edit=alcaeus]Delphi-Tags korrigiert. Mfg, alcaeus[/edit]
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 15:12
und warum nicht:

Delphi-Quellcode:

type
  ttestobject = class...

procedure bla1
begin
  testobject1:=create(owner ....);
  bla2(testobject1);
end;

procedure bla2(_reftestobject: ttestobject);
begin
  with _reftestobject do
  begin

  //mach was zu tun ist

  end;
end;
die variable testobject1 musst natürlich irgendwo deklarieren, z.B. in deinem Form oder einem eigenen Variablen-Container
Sven Harazim
--
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 15:15
übergibt doch das Objekt einfach der Prozedur
Delphi-Quellcode:
procedure bla2(AObject : TTestObject);
begin
with AObject do
 begin

end;
end;
Da war einer schneller

Aufruf kann auch
bla2(TTestObject.Create); sein
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#4

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 15:52
also das ist bei mir nicht so einfach moeglich, da es sich bei der 2 objectprocedure um eine standardprocedure eines vcl controls handelt.
ich muesste dann doch ein eigenes ereignis fuer das control implementieren bzw. das vorhandene überschreiben? eine globale klasse will ich nich. ist doch eigentlich das selbe wie ne globale variable, was das debugging betrifft.

Gruß richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#5

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 15:56
Hallo,

höst sich so an, als sei das ein Fall für ein Singleton Pattern, z.b.

http://www.castle-cadenza.demon.co.uk/single.htm

Woki
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 15:58
Zitat von richard_boderich:
eine globale klasse will ich nich. ist doch eigentlich das selbe wie ne globale variable, was das debugging betrifft.
irgendwie endet doch alles in einer globalen Variable, oder wo ist Dein Hauptformular deklariert?

Bau eine HelperKlasse:

Delphi-Quellcode:
THelper = class
public
class procedure Bla2(_objekt : TMyObject; _class : TMyWinControl);
end;
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#7

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 16:14
@woki hab mir grade den code angeschaut und ihn nicht verstanden. außerdem ist es viel zu viel code und viel zu viel definitiongeschreibsel. nochmal ich will bloß
eine objectreferenz von einer procedure an eine andere uebergeben. das problem ist das die zweite procedure eine standard onclick procedure eines vcl controls ist.
und ich nicht weis wie ich dieser den zusaetzlichen parameter (die objectreferenz) uebergeben kann. ich moecht das schnell haben und mit moeglichst wenig code.

eventuell ginge es auch mit einem hilfobject. //bitte vezeiht mir syntaxfehler. es geht um prizipelle konzept

z.b

Delphi-Quellcode:
type

       objectreferenz=class;
         param: tobject; // klassenvariable fuer objectreferenz


procedure 1
begin
...
objectreferenz.create;
objectreferenz.param:=create(owner,..);
...
end;


procedure 2
begin
with objectreferenz.param do // mach was zu tun ist
..

objectreferenz.free
end;
der voretil bei dier methode ist,das das übergabe obecjt nur solange existiert wie es wirklich gebraucht wird. und so spaeter beim debugging keine seiteneffekte bringt. was haltet ihr davon?


Gruß richadr
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#8

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 16:15
//doppelpost geloescht sorry

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#9

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 16:43
Hallo,

Wenn du dieses Edit eh schon selber abgeleitet hast, könntest du aus diesem Globalen objekt ja eine Property des Edits machen.

Ich kann mich ja auch irren
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#10

Re: objectreferenz austauschen ohne globale variablen!!!!

  Alt 17. Nov 2005, 16:48
was fuer ein edit? wie kommst du auf edit? und nein ich hab von dem control keine ableitung

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:24 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