[gelöst]of object
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
[gelöst]of object
of object macht mir gerade ds leben etwas schwer.
Ich will z.b. Ereignisse von LNet in einer dll nutzen nur sind die Ereignisse natürlich alle mit of obect deklariert. Kennt jemand eine Möglichkeit das mit nem Cast zu umgehen oder ähnliches ? N Fakeobjekt ist nun nicht unbedingt schön ...
Ich will z.b. Ereignisse von LNet in einer dll nutzen nur sind die Ereignisse natürlich alle mit of obect deklariert. Kennt jemand eine Möglichkeit das mit nem Cast zu umgehen oder ähnliches ? N Fakeobjekt ist nun nicht unbedingt schön ...
Zuletzt geändert von Christian am Sa 15. Dez 2007, 19:58, insgesamt 1-mal geändert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Du bist auch ein Kandidat, der immer relativ zusammenhangsfreie Fragen stellt.
Immer gut zu lesen:
http://www.lugbz.org/documents/smart-qu ... .html#goal" onclick="window.open(this.href);return false;
http://www.lugbz.org/documents/smart-qu ... ml#classic" onclick="window.open(this.href);return false;
Wieso LNet und nicht Synapse?
DLL für FPC oder C Hosts?
Ich würde mal sagen Callback ist hier die beste Lösung.
Eventuell habe ich aber auch deine Frage nicht ganz verstanden.
Immer gut zu lesen:
http://www.lugbz.org/documents/smart-qu ... .html#goal" onclick="window.open(this.href);return false;
http://www.lugbz.org/documents/smart-qu ... ml#classic" onclick="window.open(this.href);return false;
Wieso LNet und nicht Synapse?
DLL für FPC oder C Hosts?
Ich würde mal sagen Callback ist hier die beste Lösung.
Eventuell habe ich aber auch deine Frage nicht ganz verstanden.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Die Frage ist nicht zusammenhangslos, du hast sie bloss nicht richtig gelesen 
Wenn du so weitermachst ringst du mir noch den Titel als "Arschloch des Forums ab" was denn los in letzter Zeit ?
Ich suche eie Möglichkeit z.b.:
function test(test : pchar) : Boolean;
zu
property OnTest : TTestEvent; (TTestEvent = function(test : pchar) : Boolean)
zuzuweisen ohne ein Fakeobject zu erstellen.
by the way, lass dich ma im irc blicken wenn du zeit und lust hast.

Wenn du so weitermachst ringst du mir noch den Titel als "Arschloch des Forums ab" was denn los in letzter Zeit ?
Ich suche eie Möglichkeit z.b.:
function test(test : pchar) : Boolean;
zu
property OnTest : TTestEvent; (TTestEvent = function(test : pchar) : Boolean)
zuzuweisen ohne ein Fakeobject zu erstellen.
by the way, lass dich ma im irc blicken wenn du zeit und lust hast.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ach um noch suf synapse zurückzukommen, ich wollt schlichtweg mal lnet ausprobieren weil es auch auf wince läuft und an patches ist man dort anscheinend auch nicht interessiert. lnet scheint mit einfach aktiver entwickelt zu werden. synaser brauch ich auch nicht mehr da fpc in der fcl mittlerweile ne serial unit hat.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich weiß zwar nicht was du genau meinst bzw. vorhast aber wenn du das Caste umgehen möchte, mache ich das immer so:
Ich Lege mir eine Variable von den gewünschten Datentyp in der Procedure an und dann wandel ich ein mal das Item um... Das ist Übersichich und Praktisch
z.b. hier mit einer Objectliste:
Auf diese Art kann man zwar das Typ Casten nicht verhindern, aber eindehmen was schon sehr was bringt.... evlt. hilft das ja jemanden....
Ich Lege mir eine Variable von den gewünschten Datentyp in der Procedure an und dann wandel ich ein mal das Item um... Das ist Übersichich und Praktisch
z.b. hier mit einer Objectliste:
Code: Alles auswählen
procedure ZeicheItems;
var
Datentyp:TDatentyp;
i:integer;
begin
for i:=0 to ObjList.Count-1 do begin
Datentyp:=TDatentyp(Objlist[i]);
writeln(Datentyp.....);
end; // for i
end;
// Auf diese Art und weise muss wenn man öfter auf Datentyp zugreifen möchte
// nur einmal Defnieren...
// oder was ich hier auch gerne mache ist:
// Geht glaube ich aber nur bei Klassen oder ?
// property Items[index:Integer]:TDatentyp read GetDatentyp;TDatentyp;
procedure GetDatentyp(index.Integer):TDatentyp
begin
writeln(TDatentyp[Objlist[index]));
end;
MFG
Michael Springwald
Michael Springwald
Ich weiss auch nicht was du meinst.
Keine Angst, deinen Titel mach ich dir nicht streitig.
Mir fällt nur Callback ein. Wenn du bessere Antworten haben willst, dann stelle bessere Fragen. Bezieht sich deine Frage auf export oder import? Was soll die DLL denn exportieren? Mach doch mal ein Beispiel und zeige wo's hakt.
Keine Angst, deinen Titel mach ich dir nicht streitig.

Mir fällt nur Callback ein. Wenn du bessere Antworten haben willst, dann stelle bessere Fragen. Bezieht sich deine Frage auf export oder import? Was soll die DLL denn exportieren? Mach doch mal ein Beispiel und zeige wo's hakt.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ich hab doch schon ein Beispiel gemacht, es bezieht sich auch keinen export oder import.
Das Problem besteht in einem Programm genauso, in meinem vorletzten Beitrag hab ich kompletten Beispielcode reingebastelt wie soll ichs dir denn noch verständlich machen ? Ich weiss wirklich net wie ichs anders beschrieben soll
Das Problem besteht in einem Programm genauso, in meinem vorletzten Beitrag hab ich kompletten Beispielcode reingebastelt wie soll ichs dir denn noch verständlich machen ? Ich weiss wirklich net wie ichs anders beschrieben soll

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Diesen Beitrag von dir habe ich übersehen,sorry:
Ich frage mich wie das gehen soll.... meines Wissens musst du immer ein Object habe von typ TTestEvent.. sonst würden events keinen sinn machen/ergeben...
Wo wird denn onTest aufgerufen ? dann musst du da halt die Funktion aufrufen.. und es ohne Event machen...
Wobei wie stellst du dir das vor ? wo soll er lesen bzw. schreiben auf dein Object ?
Wenn ich dich Richtig verstanden habe möchtes du ein Event erstellen ohne eine Variable zuzuweisen.... wie man das sonst macht.... Ich bin mir sicher das das nicht gehen wird.
Wobei du könntest sowas hier versuchen:
das würde deiner Beschreibung gleich kommen oder ?
Code: Alles auswählen
property OnTest : TTestEvent; (TTestEvent = function(test : pchar) : Boolean)
Wo wird denn onTest aufgerufen ? dann musst du da halt die Funktion aufrufen.. und es ohne Event machen...
Wobei wie stellst du dir das vor ? wo soll er lesen bzw. schreiben auf dein Object ?
Wenn ich dich Richtig verstanden habe möchtes du ein Event erstellen ohne eine Variable zuzuweisen.... wie man das sonst macht.... Ich bin mir sicher das das nicht gehen wird.
Wobei du könntest sowas hier versuchen:
Code: Alles auswählen
TTestevent = function(test:pchar):boolean of Object;
property onTest:TTestevent;
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ganz einfach: ein Event braucht nun mal ein Object sonst kann es ja nicht aufgerufen werden....
Ein Event ruft ja nur die Angeben Procedure/Funktion auf, und das wird in diesen Object halt gespeichert...
Sonst habe ich den Sinn und Zweck von events noch nicht 100% Verstanden. Geht denn sowas woanders z.b. in c++?
Ein Event ruft ja nur die Angeben Procedure/Funktion auf, und das wird in diesen Object halt gespeichert...
Sonst habe ich den Sinn und Zweck von events noch nicht 100% Verstanden. Geht denn sowas woanders z.b. in c++?
MFG
Michael Springwald
Michael Springwald