AGB  ·  Datenschutz  ·  Impressum  







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

globale Funktionen?

Ein Thema von Leon de Bar · begonnen am 24. Okt 2004 · letzter Beitrag vom 24. Okt 2004
Antwort Antwort
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#1

globale Funktionen?

  Alt 24. Okt 2004, 16:34
Hi, gibt es globale funktionen? in der OH finde ich nichts oder ich stelle mich zu blöd an.

mein Problem:

mein programm prüft zunächst ob eine DB existiert. wenn nicht wird diese erstellt... soweit so gut.

bevor das tatsächliche prog startet öffne ich noch ein form in dem ich daten erfasse, die in der eben erstellten DB eingetragen werden müssen.

da ich die connetction nicht von anfang an auf active setzen kann (wenn noch keine DB da ist schmiert mir Delphi ab) muss ich wohl in dem Form2 (das Form vor dem eigentlichen Programm) eine verbindung zur DB herstellen. ich bin mir nicht sicher ob ich das noch öfter benötige, deswegen dachte ich mir - ich nehme die funktion für die DBConnection als globale in form1 auf.

aber wie rufe ich nun die funktion aus dem form2 heraus auf???
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: globale Funktionen?

  Alt 24. Okt 2004, 16:37
Hi!

Deklariere sie doch im Public-Abschnitt von Form1 und rufe sie dann mit Form1.Functionname auf.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#3

Re: globale Funktionen?

  Alt 24. Okt 2004, 16:37
Die Funktion muss im interface-Teil einer Unit definiert sein. Schon kann von allen Units, die diese Unit einbinden darauf zugegriffen werden.

Beispiel:

Delphi-Quellcode:
unit TestUnit;

interface

procedure MeineGlobaleFunktion;

implementation

procedure MeineGlobaleFunktion;
begin
  // Mache irgendwas.
end;

end.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: globale Funktionen?

  Alt 24. Okt 2004, 16:37
in Form2 einfach Form1 einbinden:

uses Unit1 Und die dort im public-bereich eingetragene Funkion müsste sich so aufrufen lassen:

Form1.Tuwas
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: globale Funktionen?

  Alt 24. Okt 2004, 16:45
Hi

Die Suchfunktion hätte da eigentlich einiges liefern müssen. Dennoch:

Delphi-Quellcode:
//Unit1:
//...

type
 TForm1 = class(TForm)
  //...
 public
  function MyFunction: TMyResultType;
 end;
Wenn du in Unit2 nach implementation folgendes einfügst, hast du Zugriff auf Form1 und alle als public deklarierten Methoden.

Delphi-Quellcode:
unit Unit2

type
 TForm2 = class(TForm)
//...

implementation

Uses Unit1;

prodecdure TForm2.Button1Click(Sender: TObject);
begin
 Form1.MyFunction();
end;
Wenn das zu umständlich ist kannst du die Funktion auch einfach global deklarieren. Einfach den Funktionskopf zwischen VAR- und implementation-Abschnitt einfügen:

Delphi-Quellcode:
Unit Unit1;
//...

var
 Form1: TForm1;

function MyFunction: TMyResultType;

implementation

funtion MyFunction: TMyResultType;
begin
 Result := TMyResultType.Create;
 //...
end;
Auch hier musst du wieder die Uses-Klausel nach implementation einfügen, und zwar in allen Units, die diese Funktion verwenden. Viel Spass
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: globale Funktionen?

  Alt 24. Okt 2004, 16:50
Hi, danke. Mein Fehler war, daß ich TForm1.Funktion aufgerufen habe... *dummer leon, dummer dummer dummer leon*
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: globale Funktionen?

  Alt 24. Okt 2004, 17:26
Ich hab da leider gleich noch ne frage...

wenn ich auf meine komponente ADOTable1 doppeltklicke, dann bekommt man in der regel ja die felder angezeigt. meine ist lehr. sicher, weil ich die verbindung nicht aktiv habe...

wie setze ich denn diese verbindung im quellcode active?

Hintergrund: wenn ich daten in die Tabelle schreiben will sagt er mir, daß ich eine geschlossene versuche zu bearbeiten...
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: globale Funktionen?

  Alt 24. Okt 2004, 17:53
Hi!

Mach bitte für die neue Frage einen nuen Thread auf. Unter diesem Titel kann diene Frage nicht gefudnen werden.
Anders kommt die Hilfe bestimmt auch schneller

Ciao Frederic
Frederic Kerber
  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 08: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