AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Prozedur (mit Parametern) an eine Funktion übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Prozedur (mit Parametern) an eine Funktion übergeben

Ein Thema von omiT · begonnen am 3. Mai 2005 · letzter Beitrag vom 4. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
omiT

Registriert seit: 23. Jan 2005
13 Beiträge
 
#1

Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 14:55
Hi.

Ich habe ein Programm geschrieben, in dem man des öfteren Buttons eines MessageDlg's klicken muss. Drückt man dort auf Cancel, so wird wird in einem neuem MessageDlg abgefragt, ob der Vorgang wirklich abgebrochen werden soll. Das sieht dann z.B. wie folgt aus:

Delphi-Quellcode:
      if MessageDlg('Willst du die Raterunde wirklich abbrechen?', mtCustom, mbYesNoCancel, 0) = mrYes then
      begin
        mmAusgabe.Lines.Add('Raterunde abgebrochen.');
        exit;
      end else
      begin
        fragesitzung(baum); <--
        exit;
      end;
Nun das eigentliche Problem: Ich würde die Abfrage gerne in einer function auslagern. An diese function sollte aber auch die procedure übergeben werden können, die oben in der markierten zeile steht, aus dem Grund, da es bei jeder Abfrage eine andere, oder zumindest mit verschiedenen Parametern ist.

Nun - ist dies möglich, und wenn ja, wie?

Schonmal danke - Timo.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 14:59
Ich würde da nichts auslagern, denn dadurch gewinnst du nichts.

Kleiner Tipp: Nimm keine hardgecodeten Strings. Wenn du da mal was ändern willst, bist du nur am Suchen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
omiT

Registriert seit: 23. Jan 2005
13 Beiträge
 
#3

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 16:09
Nunja, übersichtlicher würds schon werden... aber mal abgesehen davon, gibt es nun einen Weg eine procedure (mit unbekannten parametern) zu übergeben?

Und noch eine Frage: was bedeutet 'hardgecodeter string'?

Mfg, Timo.
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#4

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 16:19
Zitat von omiT:
Nunja, übersichtlicher würds schon werden... aber mal abgesehen davon, gibt es nun einen Weg eine procedure (mit unbekannten parametern) zu übergeben?

Und noch eine Frage: was bedeutet 'hardgecodeter string'?

Mfg, Timo.
Man kann ein array von Parametern übergeben, als Beispiel.

Hardgecodete Strings sind einfach alles, was du per '' machst aber nicht in einer Variablen auslegst.
Wenn du z.b. die selbe zeichenkette (für Abfragen) mehrmals verwendest, solltest du sie auslagern in eine Variable,
da wenn du mal etwas ändern willst, müsstest du es überall ändern.
So musst du es nur in der Variablen ändern

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#5

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 16:19
Hi.

Zitat von omiT:
Und noch eine Frage: was bedeutet 'hardgecodeter string'?
Ein String, der direkt in der Exe-Datei steht.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 16:24
Zitat von Airblader:
Zitat von omiT:
Nunja, übersichtlicher würds schon werden... aber mal abgesehen davon, gibt es nun einen Weg eine procedure (mit unbekannten parametern) zu übergeben?

Und noch eine Frage: was bedeutet 'hardgecodeter string'?

Mfg, Timo.
Man kann ein array von Parametern übergeben, als Beispiel.

Hardgecodete Strings sind einfach alles, was du per '' machst aber nicht in einer Variablen auslegst.
Wenn du z.b. die selbe zeichenkette (für Abfragen) mehrmals verwendest, solltest du sie auslagern in eine Variable,
da wenn du mal etwas ändern willst, müsstest du es überall ändern.
So musst du es nur in der Variablen ändern

air
Nimm lieber Konstanten. Dafür sind die ja da
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#7

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 16:31
OH-Lesen bildet! Die ganzen Notification-Routinen der VCL sind sowas was du willst. Alternativ schreibst du dir deine eigene Funktion und deklarierst dafür einen Typen ala:
type TFNBla = function(Parameter1:BlaTyp; Parameter2:BlaTyp2):RueckgabeTyp; Aufrufkonvention; Diesen Typen kannst du dann in einer Parameterliste für eine andere Funktion angeben und so die Funktion als Callback-Funktion an eine andere übergeben. Achtung: in Callbacks keine lokalen Funktionen deklarieren!
  Mit Zitat antworten Zitat
omiT

Registriert seit: 23. Jan 2005
13 Beiträge
 
#8

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 21:44
Erstmal danke für die Antworten.

Die typ-deklaration einer Funktion war mir auch bereits bekannt, jedoch dachte ich, dass es auch ohne geht. Denn ich wollte es vermeiden, mehrere Typen, je nach aufzurufender Prozedur, zu deklarieren. Nunja, ich hatte auf eine einfache Lösung gehofft, schade dass dem nicht so ist...

Mfg, Timo.
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#9

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 3. Mai 2005, 21:50
Statt des obigen Typen kannst du auch einen untypisierten Pointer übergeben. Jedoch mußt du zum Aufruf der Funktion den Pointer in den Funktionstypen typecasten. Wie soll denn der Compiler sonst wissen, wie die Parameter zu übergeben sind?!
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#10

Re: Prozedur (mit Parametern) an eine Funktion übergeben

  Alt 4. Mai 2005, 09:14
Hi,
Zitat von omiT:
An diese function sollte aber auch die procedure übergeben werden können, ... aus dem Grund, da es bei jeder Abfrage eine andere, oder zumindest mit verschiedenen Parametern ist.
Solange es nur um andere Parameter geht, kannste evtl. Deine Prozedur auch überladen Delphi-Referenz durchsuchenMethoden überladen, Delphi-Referenz durchsuchenoverload, Delphi-Referenz durchsuchenreintroduce

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  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 12:32 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