![]() |
Re: RichEdit einer Klasse ansprechen
hallo,
ich erzeuge es aus einer anderen unit heraus:
Delphi-Quellcode:
procedure Connect;
begin if Form4.CheckBox1.Checked then begin SetLength(Serv, length(Serv)+1); with Serv[High(Serv)] do begin StatusWindow := TStatusWindow.Create(nil); StatusWindow.StatusWindowName := 'blubb'; StatusWindow.Caption := StatusWindow.StatusWindowName; StatusWindow.StatusButton := TToolButton.Create(StatusWindow); StatusWindow.StatusButton.Parent := Form1.ToolBar2; StatusWindow.StatusButton.Caption := '*' + StatusWindow.StatusWindowName; StatusWindow.StatusButton.Show; StatusWindow.ClientSocket := TClientSocket.Create(StatusWindow); @StatusWindow.ClientSocket.OnRead := @TStatusWindow.SockReadProc; @StatusWindow.ClientSocket.OnError := @TStatusWindow.SockErrorProc; StatusWindow.ClientSocket.Host := 'server'; StatusWindow.ClientSocket.Port := port; StatusWindow.ClientSocket.Open; end; end; end; |
Re: RichEdit einer Klasse ansprechen
Müssten diese Zeilen
Delphi-Quellcode:
nicht eigentlich so aussehen?
@StatusWindow.ClientSocket.OnRead := @TStatusWindow.SockReadProc;
@StatusWindow.ClientSocket.OnError := @TStatusWindow.SockErrorProc;
Delphi-Quellcode:
StatusWindow.ClientSocket.OnRead := StatusWindow.SockReadProc;
StatusWindow.ClientSocket.OnError := StatusWindow.SockErrorProc; |
Re: RichEdit einer Klasse ansprechen
dann bekomme ich fehler:
Delphi-Quellcode:
bin mir sicher das das nicht falsch is, es muss am richedit liegen, denn mit showmessage gehen die beiden ereignisse ja (also onread und onerror)
[Fehler] Unit1.pas(65): Inkompatible Typen: 'TSocketNotifyEvent' und 'Procedure'
[Fehler] Unit1.pas(66): Inkompatible Typen: 'TSocketErrorEvent' und 'Procedure' |
Re: RichEdit einer Klasse ansprechen
Nö, das geht so!!! (Das T weg!!!) :mrgreen:
P.S.: Ich kann's leider nicht testen, weil ich gerade nur Delphi6 da habe... (XP-Klamotten fehlen...) |
Re: RichEdit einer Klasse ansprechen
stimmt wenn das t weg ist geht das...aber mit @ ja auch :) letzendlich tauscht man ja so oder so die adresse oder ? *g*
nun aber zu meinem ursprungsproblem! wieso kann ich nicht auf das richedit zugreifen? :\ |
Re: RichEdit einer Klasse ansprechen
Das stimmt so nicht ganz
Diese Zuweisung
Delphi-Quellcode:
weist einem Objekt den Zeiger auf eine Methode in der Klasse "TStatusWindow" zu. Das das überhaupt geht liegt an den Klassenmethoden, aber soetwas wird hier nicht genutzt.
@StatusWindow.ClientSocket.OnRead := @TStatusWindow.SockReadProc;
Diese Zuweisung hingegen
Delphi-Quellcode:
weist einem Objekt den Zeiger auf eine Methode aus einem anderen Objekt zu.
StatusWindow.ClientSocket.OnRead := StatusWindow.SockReadProc;
Es würde micht nicht wundern, wenn das Programm jetzt funktioniert?! |
Re: RichEdit einer Klasse ansprechen
ahhhh, du hast recht, funktioniert :mrgreen:
Vielen dank :) |
Re: RichEdit einer Klasse ansprechen
Wie wäre es, wenn du das Richedit deiner Klasse / Methode mit übergibst?
|
Re: RichEdit einer Klasse ansprechen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz