Autor Beitrag
rizor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 209

WIN XP
Delphi 2005 PE, Visual C++
BeitragVerfasst: Di 20.02.07 19:18 
Hi,

ich möchte eine Funktion wie z.B. StrToInt() schreiben, dass die dann acuh immer aufrufbar ist, wenn ich die Unit implementiert habe.
Wenn ich jetzt eine Funktion aufrufen möchte, muss ihc ja eingeben: TForm1.function oder sowas.
Das TForm1. möchte ich weg lassen.

Wie geht das?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 20.02.07 19:21 
Oh je, da hat einer aber bisher programmiert ohne die Programmiersprache zu kennen ;)

Du musst eine Prozedur oder Funktion nicht als Mehtode (also zu einer Klasse gehörig) schreiben, sondern kannst sie auch außerhalb deklarieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TForm1 = class ... //Steht nur zur Verdeutlichung hier, die Klasse brauchst Du nicht!
  private
  public
  end;

  function StrToInt(aString : String) : Integer;

implementation

function StrToInt(aString : String) : Integer;
begin
 ...
end;


P.S.: Crashkurs Delphi

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
rizor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 209

WIN XP
Delphi 2005 PE, Visual C++
BeitragVerfasst: Di 20.02.07 19:29 
Ja, das weiß ich auch.
Ich möchte aber, dass man die Funktion genau so aufruft wie IntToStr.
Habe in der Hilfe gelesen, dass StrToInt so deklariert ist:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
class function StrToInt(
    const S: string, 
    Default: Integer
): Integer; overload;


Ich wollte es halt als Methode schreiben.
Aber ohne den zusätzlich normalen aufruf von TForm1.blabla.
Wie man es bei der normalen programmierung machen muss.

Verstehst du was ich meine?

Finde meine Erklärung beschissen, aber mir fällt keine bessere ein :D

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 20.02.07 19:33 
Das in meinem Beispiel rufst Du so auf wie StrToInt, also ohne das "Form1" davor.

Dass StrToInt eine class function ist, kann eigentlich nur so sein, wenn Du Delphi .NET verwendest und dann auch noch die VCL .NET. Das wäre eine wertvolle Information, um Dir zu helfen ;-) Im Delphi Win32 ist StrToInt keine class function.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.02.07 22:26 
aber man kann jederzeit eine implementieren. aber was die class function nicht kann, ist a) auf instanzierte variablen zuzureifen und diese zu verändern, b) sie als normale procedure oder function einzusetzen wie du es gerne möchtest und c) sie ohne die class anzugeben auszuführne, wie du es gerne möchtest.

also einfach procedure/funktion ins interface und ins implementation, jewleis den rumpf dahiner und deinen code dann in den rumpf rein. dann funktionierts auch.

wünsch dir noch viel spass.