AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi proceduren über findcomponent ansprechen, möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

proceduren über findcomponent ansprechen, möglich?

Ein Thema von billi · begonnen am 9. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
billi

Registriert seit: 11. Sep 2003
Ort: Darmstadt
127 Beiträge
 
Delphi 5 Standard
 
#1

proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 19:14
Hallo,
ich hab zwei units:
In der 2. (Utree) befinden sich in der Klasse tBaum die proceduren/functionen loeschen, einfuegen, suchen und in der 1. Unit ruf ich diese mit Baum.loeschen(r), Baum.einfuegen(r), Baum.suchen(r) auf (Baum ist vom Typ tBaum).
Mein Problem ist nun, dass ich gerne etwas wie (ich weis, ist falsch) Baum.FindComponent('loeschen')(r) machen will, d.h. die proceduren/functionen, die ich aufrufe von einem string abhängig mache.
Wie geht das, ist dies überhaupt möglich?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 19:16
Direkt: Nein.

Indirekt: Ja.

Delphi-Quellcode:
procedure Baum.Call(Func: string);
begin
  if Func = 'einfügenthen
    ...
  else if Func = 'loeschenthen
    ....
end;
  Mit Zitat antworten Zitat
billi

Registriert seit: 11. Sep 2003
Ort: Darmstadt
127 Beiträge
 
Delphi 5 Standard
 
#3

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 19:20
hmmm, schade, weil ich halt mehrfach die selben programmteile hab, die sich nur durch den namen der aufzurufenden funktion unterscheiden und ich das jetzt vereinfachen wollte...
aber dennoch danke (vorallem für die dau schnelle antwort...)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 19:26
kommt es nicht aufs gleiche raus ob dein aufruf so aussieht
Delphi-Quellcode:
  procedureandhandvomString('test1');
  procedureandhandvomString('test2');
oder
Delphi-Quellcode:
  procedure1;
  procedure2;
also ob du nun nen anderen paraemter zum finden der funktion übergeben würdest oder einen anderen procedurenamen verwendest kommt aufs gleiche raus. Ansonsten zu deinem Grundproblem. Es ist möglich Typen zu verschiedenen Proceduren zu deklarieren und davon eine Variable anzulegen. Und dann rufst du die variable auf => funktion wird ausgeführt... (ist nicht korrekt was ich geschrieben hab aber wenn ichs ganz korrekt schreibe würde es der fragesteller nicht verstehen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#5

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 19:49
Weiss nicht ob es dir Weiterhilft aber Versuchs mal mit:
class function MethodAddress(const Name: ShortString): Pointer; Damit kannst du Methoden per String finden und diese mit ein bisl Code auch ausführen!
Felix K.
  Mit Zitat antworten Zitat
KLS

Registriert seit: 20. Jun 2004
Ort: Berlin
89 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 20:23
Delphi-Quellcode:
procedure StarteRoutineByName(Instance : TObject; Name : string);
type
  TExecute = procedure of object;
var
  Routine : TMethod;
  Execute : TExecute;
begin
  Routine.Data := Pointer(Instance);
  Routine.Code := Instance.MethodAddress(Name);
  if Routine.Code = nil then Exit;
  Execute := TExecute(Routine);
  Execute;
end;
z.b. StarteRoutineByName(Form1,'berechneumfang'); //so oder so ähnlich war der aufruf
Thomas H.
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#7

Re: proceduren über findcomponent ansprechen, möglich?

  Alt 9. Apr 2005, 20:35
Äh genau das war es war irgendwo im Internet zu finden war nur zu Faul zum Suchen!
Felix K.
  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 16:20 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