x-kom hosting

[DELPHI] Co jest nie tak? (Missing operator or semicolon)

Przejdź do rekomendowanej odpowiedzi Autor: leggo ,
Neris
utworzono
utworzono (edytowane)

Witam.

 

Od razu mówie, że nie jestem w tym dobry.

Więc robię sobie taki programik w którym będe musiał masowo używać komendy :

Form3.Memo2.Lines.Add 

Więc ustawiłem to jako zmienną, aby było łatwiej :

var  
M1: String;  
 
procedure TForm2.Button1Click(Sender: TObject);
begin
M1:=('Form3.Memo2.Lines.Add');
M1('Text');
end; 

Lecz zwraca mi błąd "Missing operator or semicolon".

Kiedy wpiszę :

Form3.Memo2.Lines.Add('Text');

działa bez problemu.

 

Co jest nie tak?

Proszę o pomoc, z góry thx.

  • Rekomendowana odpowiedź
leggo
komentarz
komentarz

Trochę pojechałeś. :)

 

 

Żeby osiągnąć efekt, który sobie wymarzyłeś powinieneś podejść do tego trochę inaczej.

Musisz stworzyć wskaźnik na metodę - to pozwoli Ci używać, zamiast długiego wywołania, krótkiej nazwy wskaźnika.

 

Najpierw stwórz sobie odpowiedni typ:

type
   TMethodPtr = function (const S :String) :integer of object;

Następnie dodaj do zmiennych:

var
   addToMemo :TMethodPtr;

Teraz w kodzie programu możesz przypisać odpowiednią metodę do wskaźnika:

addToMemo := Form3.Memo2.Lines.Add;

addToMemo('Text');      //Dodanie linii 'Text' do Memo2

 

Oczywiście do tego wskaźnika nie możesz przypisać żadnej innej metody (chyba, że będzie miała takie same parametry i typ zwracany).

  • Dobra wypowiedź 1
Neris
komentarz
komentarz

Ok, wielkie dzięki, teraz działa ; )

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.