OnKeyPress w dynamicznym Memo

0

No jak w temacie
Mam dynamicznie stworzony komponent TMemo i teraz zastanawiam sie jak do tego Memo dodać procedurę, która będzie wykonywana po naciśnięciu klawisza
Normalnie zawsze używałem cos takiego

if Key = 13 then
begin
 {kod}
end

nom ale jak to teraz przenieść do tego dynamicznie stworzonego Memo
Prosiłbym o pomoc, bo sam sobie nie dam rady:/

0
procedure TForm1.StworzMemo;
var
  Memo: TMemo;
begin
  Memo := TMemo.Create(Self);
  Memo.OnKeyPress := MojeOnKeyPress;
end;

MojeOnKeyPress musisz oczywiście zdefiniować wcześniej...

0

Nom tyle to ja wiem jak mam własnie dalej zrobic ?? nie czaje jak mam zdefiniowac ta procedure

procedure TForm1.Wyslij;
begin
  if key = 13 then
   begin
     {kod}
   end;
end;
procedure TForm1.StworzMemo;
var
  Memo: TMemo;
begin
  Memo := TMemo.Create(Self);
  Memo.OnKeyPress := Wyslij;
end;

Tyle zrobiłem i DupaBlada nic nie działa. Tylko takie cos mi sie pokazuje :
[Error] Unit1.pas(99): Incompatible types: 'TKeyPressEvent' and 'procedure, untyped pointer or untyped parameter'

0
procedure TForm1.Wyslij(Sender: TObject; var Key: Char);
begin
  if key = 13 then
   begin
     {kod}
   end;
end;

no i deklaracja procedury:

public //ew. private
  procedure Wyslij(Sender: TObject; var Key: Char);
0

Troszeczke mi to pomogło ale jeszcze nie zabardzo jestem zadowolony z tego co mi wychodzi.
Jak mam potem przypisac jakis klawisz do zmiennej Key :| :/ (pewnie głupie ale nie wiem )

0

Hmm... Tym się zajmuje obsługa zdarzeń Memo. Po prostu przypisujesz tą metodę pod zdarzenie i Memo samo wywoła tą metodę kiedy będzie taka potrzeba ustalając co trzeba.

0

nic mi to nie mowi :/
wolał bym prosciej :|

0

dobra, to inaczej - wstaw statyczny memo - wygeneruj normalnie zdarzenie, wpisz co chcesz, potem wywalasz to statyczne memo, patrzysz na "nagłówek" wygenerowanej procedurki:

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);

przy tworzeniu dynamicznego memo wpisujesz to pogrubione (po kropce, przed nawiasem)

DynamiczneMemo.OnKeyPress := Memo1KeyPress;

tyle
"memo samo wywoła" w odpowiedniej chwili tą procedurę z odpowiedniki parametrami

tam wyżej w kodzie masz chyba błąd, key jest typu char a porównujesz z integerem, powinno być

if Key = #13 ...

0

No własnie o to mi chodziło.
Wielkie dzieki Na was zawsze mozna liczyc [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1