AGB  ·  Datenschutz  ·  Impressum  







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

Prozedur in Typendeklaration

Ein Thema von Niels · begonnen am 4. Nov 2003 · letzter Beitrag vom 4. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#1

Prozedur in Typendeklaration

  Alt 4. Nov 2003, 20:26
Ich möchte für nen selbstdefinierten Typ gewisse Funktionen festlegen. Ich weiß aber nicht wie ich die Prozedur oder Funtion definieren soll.

Ich hab mal folgendes gemacht:

Delphi-Quellcode:
type
  dNode = ^pNode;
  pNode = record
    dat: integer;
    next: dNode;
    new: procedure (var node: dNode);
  end;
Dazu hab ich noch die Prozedur new, in der dann einfach steht new(node);
Ich hab den Befehl new jetzt nur genommen um ein einfaches Beispiel zu bringen, da kommen dann natürlich andere hin.

Das Problem hierbei wäre nur, dass ich ja schreiben muss x.new(x);
...was eigentlich relativ sinnlos ist. Ich will nur schreiben x.new;
Ist das irgendwie möglich?

MfG Niels
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 20:41
Nein,

aber man könnte ja auch ne Klasse verwenden! Oder?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 20:41
Moin Niels,

ja, ist möglich.
Nur kannst Du dann keinen Record nehmen, sondern musst Dir eine neue Klasse (class) erstellen.
Hier kannst Du Daten und Methoden mischen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#4

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 20:54
Wenn ich ne Klasse nehm, dann hab ich aber auch diese ganzen Standard-Funktionen und Eigenschaften drin. Kann ich das irgendwie rausschmeisen?

MfG Niels
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:00
es geht maximal
Delphi-Quellcode:
type
  dNode = ^pNode;
  pNode = record
    dat: integer;
    next: dNode;
    new: TNotifyEvent;
  end;
wobei du für TNotifyEvent dann auch andere Proceduretypen oder wie sich das nennt einsetzen kannst
bsp.:
Delphi-Quellcode:
type
  TMyEvent = procedure(var node: dNode) of Object;
  dNode = ^pNode;
  pNode = record
    dat: integer;
    next: dNode;
    new: TMyEvent;
  end;
und schon hast du das was du wolltest....
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:00
Moin Niels,

Du könntest es dann noch so machen:

Delphi-Quellcode:
type
  dNode = ^pNode;
  TMyProc = procedure(var node: dNode);
  pNode = record
    dat: integer;
    next: dNode;
    new: TMyProc;
  end;
Dann müsstest Du nur bei jedem Satz den Du verwendest noch die Adresse einer entsprechenden Prozedure zuweisen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#7

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:09
Ich versteh nicht wirklich wo jetzt der Unterschied zwischen dem was ich und dem was ihr geschrieben habt.

Außerdem passiert folgendes:
wenn ich dann die Prozedur neu schreib sagt er mir Identifier redeclared.
Wo soll ich die Prozedur dann hinschreiben, dass es funzt?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:21
Moin Niels,

Zitat von Niels:
Wo soll ich die Prozedur dann hinschreiben, dass es funzt?
wie hast Du es denn gemacht.
Geht bei mir problemlos.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#9

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:22
ich hab deins ins interface geschrieben und den Inhalt der Prozedur in den implementation-Teil
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Prozedur in Typendeklaration

  Alt 4. Nov 2003, 21:26
Delphi-Quellcode:
type
  TMyEvent = procedure(var node: dNode) of Object;
  dNode = ^pNode;
  pNode = record
    dat: integer;
    next: dNode;
    new: TMyEvent;
  end;

  TForm1 = class(TForm)
  [...]
  private
    procedure test11(var node: dNode);
  end;
  [...]


procedure TForm1.irgendwas...
var test: pNode;
begin
 test.new := test11;
 test.new(wasweißich);
 [...]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 13:31 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