AGB  ·  Datenschutz  ·  Impressum  







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

eigenes Event programmieren?

Ein Thema von alleinherrscher · begonnen am 25. Mai 2006 · letzter Beitrag vom 25. Mai 2006
Antwort Antwort
Seite 2 von 2     12   
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: eigenes Event programmieren?

  Alt 25. Mai 2006, 14:31
Luckie hat zum Thema Klassen ein Tutorial verfaßt. Lies es dir in Ruhe durch, dann wirst du wahrscheinlich viele Abläufe besser verstehen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#12

Re: eigenes Event programmieren?

  Alt 25. Mai 2006, 14:42
Hey, danke, jetzt hab ichs hinbekommen

Das einzige, was ich jetzt noch "unschön" finde, ist dass ich überhaupt das LANFS_SYSTEM in LANFS_KERNAL erzeugen muss...somit erzeuge ich ja praktisch in meiner Unit in der ich die Klasse definiert habe schon eine Variable mit dieser Klasse....öhm oder so...

aber das geht wohl nicht anders oder? Schließlich muss ich das

TCPServer1.OnExecute ereignis zuweisen und das kann ich nur an LANFS_SYSTEM.ReceiveStream zuweisen und eben nicht an "TLANFS_KERNAL"...

naja...THX Hawkeye219 du hast mir sehr geholfen soweit

//edit...juhu, dafür nochmal zurück zum eigentlichen Problem:

Jetzt erzeugt dieser Code hier eine Exception:

Delphi-Quellcode:
    if Assigned(fReceivedData) then
        fReceivedData(Self, FStream);
(wieder eine AccessViolation)...ich hab das doch richtig verstanden, diese 2 zeilen lösen das Event aus, richtig?
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#13

Re: eigenes Event programmieren?

  Alt 25. Mai 2006, 19:07
Kann es sein, dass ich durch das neue Event einen neuen Thread ausführe und der erst synchronisiert werden muss?
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: eigenes Event programmieren?

  Alt 25. Mai 2006, 20:21
Ok, hier einige Vorschläge:

Ändere deine Unit LANFS_KERNAL folgendermaßen ab:
  • Entferne die Deklaration der Variablen LANFS_SYSTEM
  • Entferne in der Methode TLANFS_KERNAL.Start den Bezeichner LANFS_SYSTEM. Die Zeile sollte dann so aussehen:
    TCPServer1.OnExecute := ReceiveStream; Da die Anweisung innerhalb einer Methode von TLANFS_KERNAL steht, ist die Angabe nicht notwendig. Wenn du mehrere Instanzen von TLANFS_KERNAL erzeugen möchtest, ist sie sogar falsch.
Wenn ich nichts übersehen habe, sollte die Unit nach diesen Änderungen universeller verwendbar sein. Um sie zu nutzen, mußt du eine Instanz von TLANFS_KERNAL erzeugen. Die dazu notwendige Variable (die wir eben in der Unit LANFS_KERNAL entfernt haben) vereinbarst du am besten im private-Abschnitt des Formulars TForm2. Das Erzeugen der Instanz gehört in die Methode FormCreate:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  lanfs_system := TLANFS_KERNAL.Create;
  lanfs_system.OnReceivedData := Form2.test; // hier passiert nun kein Fehler mehr :-)
end;
Zum Freigeben der Instanz benötigst du noch die Methode FormDestroy, die du auf die gleiche Weise wie FormCreate erstellen kannst. Sie sollte so aussehen:

Delphi-Quellcode:
procedure TForm2.FormDestroy(Sender: TObject);
begin
  lanfs_system.Free;
end;
Versuche es einmal mit diesen Änderungen. Sollten noch Fehler auftreten, meldest du dich wieder.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#15

Re: eigenes Event programmieren?

  Alt 25. Mai 2006, 21:02
Juhu, es klappt! 99999999999999999999999999mal dankeschön, Hawkeye219!!!!!!!

Ich werde hier hoch und heilig versprechen, mich mehr mit Classen und Unit Deklarationen zu beschäftigen!

Danke, Danke, Danke!

Du hast was gut bei mir

Liebe Grüße,
Alleinherrscher
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:57 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