AGB  ·  Datenschutz  ·  Impressum  







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

Funktion mit variabler Übergabe

Ein Thema von VT-DA · begonnen am 31. Jul 2005 · letzter Beitrag vom 2. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von VT-DA
VT-DA

Registriert seit: 20. Jul 2005
Ort: Heiden
59 Beiträge
 
#1

Funktion mit variabler Übergabe

  Alt 31. Jul 2005, 23:30
Hi,

Gibt es irgend eine Möglichkeit bei Aufruf einer Funktion die Parameter variabel zu machen?
z.B. ich möchte mir eine Funktion schreiben die alle Fenster/Memos/buttons etc freigeben kann.
Doch leider müsste ich ja dann für jedes gadget(buttons/Forms/Memos etc.) eine Funktion schreiben obwohl ja alle mit handel.free freigegeben werden können.
Ich hoffe ich habe mich verständlich ausgedrückt.

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Funktion mit variabler Übergabe

  Alt 31. Jul 2005, 23:47
Du kannst alles auf TObject casten, welches der gemeinsame Vorfahre aller Klassen in Delphi ist, und bereits die MEthode Free implementiert.
Delphi-Quellcode:
procedure FreeThis(obj: TObject);
begin
  obj.Free;
end;

// Aufruf:
var
  btn: TButton;
begin
  btn := TButton.Create(nil);
  FreeThis(TObjcet(btn));
end;
Der Cast im Aufruf kann imho auch weg bleiben - habs grad nicht getestet, aber eigentlich sollte es auch gehen.


Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von VT-DA
VT-DA

Registriert seit: 20. Jul 2005
Ort: Heiden
59 Beiträge
 
#3

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 11:23
Hi,

hmm. Klappen tuts irgendwie nicht. Das Problem ist, dass ich die procedure aus einer DLL hole und ich es dann nicht so übergeben kann wie Sie es in dem Beispiel gezeigt haben.
Hat vielleicht jemand noch ne andere Idee?

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 11:46
Zitat von VT-DA:
z.B. ich möchte mir eine Funktion schreiben die alle Fenster/Memos/buttons etc freigeben kann.
Doch leider müsste ich ja dann für jedes gadget(buttons/Forms/Memos etc.) eine Funktion schreiben
Nein, musst du nicht.

Denn ein TForm ist auch ein TWinControl, genau wie ein TButton oder ein TEdit oder ein TMemo. Alle Formularkomponenten, die die Eigenschaft "Handle" haben, stammen davon ab. Du musst deine Routine also nur für den "kleinsten gemeinsamen Vorfahren" all dieser Komponenten schreiben, in diesem Fall für "TWinControl".
Volker
  Mit Zitat antworten Zitat
Benutzerbild von VT-DA
VT-DA

Registriert seit: 20. Jul 2005
Ort: Heiden
59 Beiträge
 
#5

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 11:58
Hi,

hmm. Wenn du meinst TWinControl als übergabe Parameter zu nehme, dass geht nicht.
Wenn du aber meinst das ich einfach nur das Fenster freigeben muss, das geht leider auch nicht weil ich manchmal nur ein Memo oder nur Button freigeben möchte und nicht alles aufeinmal.

Delphi-Quellcode:
procedure FreeThis(obj: TWinControl); stdcall;
begin
  obj.Free;
end;
So gehts auf jeden fall nicht. Ist genau das gleiche wie TObject.

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 12:03
Zitat von VT-DA:
Wenn du meinst TWinControl als übergabe Parameter zu nehme, dass geht nicht.
...und WAS GENAU geht daran nicht (wenn du immer so antwortest muss deine Nase schon ziemlich lang sein von Dingen, die da rausgezogen werden müssen ... )
Volker
  Mit Zitat antworten Zitat
Benutzerbild von VT-DA
VT-DA

Registriert seit: 20. Jul 2005
Ort: Heiden
59 Beiträge
 
#7

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 12:04
Hi,

"blitzcc.exe hat ein Problem blabla...Programm musss beendet werden..."
Was soll man dazu groß sagen?

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von VT-DA
VT-DA

Registriert seit: 20. Jul 2005
Ort: Heiden
59 Beiträge
 
#8

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 12:51
Hi,

Okay. Sorry. Es lag nicht an der Funktion sondern an etwas anderem. Danke.

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 19:30
Zitat von Flocke:
Du musst deine Routine also nur für den "kleinsten gemeinsamen Vorfahren" all dieser Komponenten schreiben, in diesem Fall für "TWinControl".
naja der "_kleinste_ gemeinsame Vorfahre" wäre ja wohl TObject, oder?
und wie gesagt sollte ein TObject als Parameter reichen; wenn ein objekt mit einem anderen typ als TObject übergeben wird, wird ja eh dessen Free; aufgerufen und nicht das von TObject.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Funktion mit variabler Übergabe

  Alt 1. Aug 2005, 21:20
Zitat von BlackJack:
und wie gesagt sollte ein TObject als Parameter reichen; wenn ein objekt mit einem anderen typ als TObject übergeben wird, wird ja eh dessen Free; aufgerufen und nicht das von TObject.
Nö. Free bleibt gleich, Destroy wird von den Nachfahren überschrieben .
Sebastian
Moderator in der EE
  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 02:21 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