Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Memo OnChange Procedure zuweisen?? (https://www.delphipraxis.net/128859-memo-onchange-procedure-zuweisen.html)

DelphiPeter 7. Feb 2009 18:06


Memo OnChange Procedure zuweisen??
 
Hallo zusammen!

Ich erstelle ein Memo zur Laufzeit

Delphi-Quellcode:
...
var
  Memo: TMemo;
begin
  Memo := TMemo.Create(nil);
 
end;
...
Und jetzt möchte ich das OnChange Ereignis ausprogrammieren. Wie mache ich denn das? Stehe vielleicht auch einfach nur auf dem Schlauch.

Meflin 7. Feb 2009 18:07

Re: Memo OnChange Procedure zuweisen??
 
Du erstellst einfach eine procedure mit der gleichen Signatur die eben die "echte" OnChange-Prozedur hat (also mit denselben Parametern).

Und dann kannst du die einfach mittels Memo.OnChange := MyProcedure zuweisen.

edit: haha, schneller als die zwei Top-"Spammer". Fehlt ja nur noch Luckie. http://fnse.de/S01/0RB.gif

DeddyH 7. Feb 2009 18:08

Re: Memo OnChange Procedure zuweisen??
 
Du brauchst eine Methode vom Typ TNotifyEvent, die kannst Du dann dem OnChange des Memos zuweisen.

[edit] *Pfüh* immer diese Sockenjäger :stupid: [/edit]

mkinzler 7. Feb 2009 18:08

Re: Memo OnChange Procedure zuweisen??
 
Einfach durch Zuweisung einer Eventmethode mit der richtigen Signatur:
Delphi-Quellcode:
Memo.onChange := <Methodennamen>;

DelphiPeter 7. Feb 2009 18:29

Re: Memo OnChange Procedure zuweisen??
 
Also das hier geht nicht:

Memo.OnChange := MyProcedure

Was heißt den TNotifyEvent, muss ich da was in die Procedure schreiben? Sorry das ich mich so doof anstelle :-(

_frank_ 7. Feb 2009 18:31

Re: Memo OnChange Procedure zuweisen??
 
wie sieht denn MyProcedure aus?

der Kopf sollte so aussehen:

Delphi-Quellcode:
procedure TForm1.MyProcedure(Sender: TObject);
muss natürlich eine Methode des gleichen Forms sein

Gruß Frank

Meflin 7. Feb 2009 18:32

Re: Memo OnChange Procedure zuweisen??
 
TNotifyEvent sieht so aus:
Delphi-Quellcode:
type TNotifyEvent = procedure(
  Sender: TObject
) of object;
Anwendbar also so:
Delphi-Quellcode:
procedure MyProc(Sender: TObject);
begin
  DoSomething;
end;

...

Memo.OnChange := MyProc;

DeddyH 7. Feb 2009 18:34

Re: Memo OnChange Procedure zuweisen??
 
Delphi-Quellcode:
type
  TMyForm = class(TForm)
    ...
  private
    procedure ShowMemoChange(Sender: TObject);
    ...
  end;

...


procedure TMyForm.ShowMemoChange(Sender: TObject);
begin
  ShowMessage('Inhalt des Memos hat sich geändert');
end;

...
begin
  Memo := TMemo.Create(nil);
  Memo.OnChange := ShowMemoChange;
end;
Probier das mal aus.

[edit] Ich poste gleich nichts mehr, pah :? [/edit]

DelphiPeter 7. Feb 2009 18:35

Re: Memo OnChange Procedure zuweisen??
 
Ahh, ok, ich schaue mal nach, danke!

DelphiPeter 7. Feb 2009 18:41

Re: Memo OnChange Procedure zuweisen??
 
Also, ich glaube das Problem liegt daran, das ich das alles in einer DLL versuche, die kein Formular hat.

Ich wollte es nun mal mit einer TStringlist versuchen, doch auch hier bekomme ich die Meldung

Zitat:

[DCC Fehler] ccl32.dpr(35): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Meine onChange Procedure sieht so aus

Delphi-Quellcode:
procedure OnChange(Sender: TObject);
begin

end;
und meine Zuweisung so

Delphi-Quellcode:
Ausgabe := TStringlist.Create;
    Ausgabe.OnChange := OnChange;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Seite 1 von 3  1 23      

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