[gelöst]of object

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Christian
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

Beitrag von Christian »

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 ...
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/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Du bist auch ein Kandidat, der immer relativ zusammenhangsfreie Fragen stellt.
Immer gut zu lesen:
http://www.lugbz.org/documents/smart-qu ... .html#goal
http://www.lugbz.org/documents/smart-qu ... ml#classic

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.

Christian
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:

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Christian
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:

Beitrag von Christian »

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/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

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:

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;


Auf diese Art kann man zwar das Typ Casten nicht verhindern, aber eindehmen was schon sehr was bringt.... evlt. hilft das ja jemanden....
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Wenn du nicht weisst was jemand meint, dann sag dazu bitte auch nix.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

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.

Christian
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:

Beitrag von Christian »

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 :(
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Zeigt doch etwas Beispiel code...das würde theo bestimmt weiter helfen.

Entweder in C oder Pascal...
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Wollt ihr mich verarschen ? steht doch da oben wie oft denn noch ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Diesen Beitrag von dir habe ich übersehen,sorry:

Code: Alles auswählen

property OnTest : TTestEvent; (TTestEvent = function(test : pchar) : Boolean)

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:

Code: Alles auswählen

TTestevent = function(test:pchar):boolean of Object;
property onTest:TTestevent;


das würde deiner Beschreibung gleich kommen oder ?
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Lies meinen ersten Beitrag ich weiss nicht wie ich es idotensicherer schreiben soll.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

DAS WAS DU VORHAST WIRD NICHT GEHEN
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Warum nicht. Und wie meinst du das beurteilen zu können.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

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++?
MFG
Michael Springwald

Antworten