Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RichEdit einer Klasse ansprechen (https://www.delphipraxis.net/28091-richedit-einer-klasse-ansprechen.html)

Pseudemys Nelsoni 19. Aug 2004 16:07

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;

KrasserChecker 19. Aug 2004 16:11

Re: RichEdit einer Klasse ansprechen
 
Müssten diese Zeilen
Delphi-Quellcode:
      @StatusWindow.ClientSocket.OnRead := @TStatusWindow.SockReadProc;
      @StatusWindow.ClientSocket.OnError := @TStatusWindow.SockErrorProc;
nicht eigentlich so aussehen?

Delphi-Quellcode:
      StatusWindow.ClientSocket.OnRead := StatusWindow.SockReadProc;
      StatusWindow.ClientSocket.OnError := StatusWindow.SockErrorProc;

Pseudemys Nelsoni 19. Aug 2004 16:13

Re: RichEdit einer Klasse ansprechen
 
dann bekomme ich fehler:

Delphi-Quellcode:
[Fehler] Unit1.pas(65): Inkompatible Typen: 'TSocketNotifyEvent' und 'Procedure'
[Fehler] Unit1.pas(66): Inkompatible Typen: 'TSocketErrorEvent' und 'Procedure'
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)

Stevie 19. Aug 2004 16:15

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

Pseudemys Nelsoni 19. Aug 2004 16:30

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? :\

KrasserChecker 19. Aug 2004 16:34

Re: RichEdit einer Klasse ansprechen
 
Das stimmt so nicht ganz

Diese Zuweisung
Delphi-Quellcode:
@StatusWindow.ClientSocket.OnRead := @TStatusWindow.SockReadProc;
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.

Diese Zuweisung hingegen
Delphi-Quellcode:
StatusWindow.ClientSocket.OnRead := StatusWindow.SockReadProc;
weist einem Objekt den Zeiger auf eine Methode aus einem anderen Objekt zu.

Es würde micht nicht wundern, wenn das Programm jetzt funktioniert?!

Pseudemys Nelsoni 19. Aug 2004 16:40

Re: RichEdit einer Klasse ansprechen
 
ahhhh, du hast recht, funktioniert :mrgreen:

Vielen dank :)

Luckie 20. Aug 2004 12:11

Re: RichEdit einer Klasse ansprechen
 
Wie wäre es, wenn du das Richedit deiner Klasse / Methode mit übergibst?

Stevie 20. Aug 2004 12:15

Re: RichEdit einer Klasse ansprechen
 
Zitat:

Zitat von Luckie
Wie wäre es, wenn du das Richedit deiner Klasse / Methode mit übergibst?

:gruebel: Das RichEdit ist doch Bestandteil der Vorfahrklasse!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr.
Seite 2 von 2     12   

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