Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlermeldung Methodenbezeichner erwartet (https://www.delphipraxis.net/119433-fehlermeldung-methodenbezeichner-erwartet.html)

julchen 26. Aug 2008 15:18


Fehlermeldung Methodenbezeichner erwartet
 
Hallo,

ich wollte diesen Code in mein Projekt einbinden, bekomme aber die Fehlermeldung: Methodenbezeichner erwartet. In der Hilfe habe ich schon gelesen, verstehe aber nicht, was da gemeint ist und kann die Erklärung für mein Problem nicht umsetzen. Der Compiler hängt sich immer am RichEdit1 auf.
Vielleicht seht Ihr ja, wo der Fehler ist!
Delphi-Quellcode:
type
        TForm1 = Class(TForm);
        RichEdit1 = TRichEdit;

procedure RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
procedure RichEdit1OnKeydown(Sender: TObject; var Key: word; Shift: TShiftState);

implementation

uses unit5;

// ======

 einfügen ==============================
procedure RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
var
        selstart: integer;
        tempstr1: PChar;
begin
        if key = VK_RETURN then
        begin
          tempstr1 := '

';
          SendMessage(RichEdit1.Handle, EM_Getsel, longint(@selstart), 0);
          SendMessage(RichEdit1.Handle, EM_Replacesel, 0, LongInt(tempstr1));
          SendMessage(RichEdit1.Handle, EM_Setsel, selstart + 4, Selstart + 3);
          key := 0;
        end;

DeddyH 26. Aug 2008 15:21

Re: Fehlermeldung Methodenbezeichner erwartet
 
Delphi-Quellcode:
procedure TForm1.RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
Du musst TForm1 davor schreiben, es ist ja eine Methode von Form1.

[edit] Achja, und aus
Delphi-Quellcode:
RichEdit1 = TRichEdit;
mach mal
Delphi-Quellcode:
RichEdit1: TRichEdit;
[/edit]

julchen 26. Aug 2008 15:43

Re: Fehlermeldung Methodenbezeichner erwartet
 
Delphi-Quellcode:
procedure TForm1.RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
Hilft auch nicht!!!

Delphi-Quellcode:
RichEdit1: TRichEdit;
Hab ich gemacht, aber jetzt meckert er schon beim type

Die Anzahl der Fehlermeldungen hat sich jetzt nur noch erhöht!!!
Beim RichEdit1 kann ich die Ereignisse auch gar nicht eintragen!
Müsste da nicht was zu sehen sein oder passiert das erst, wenn die unit fehlerfrei durchläuft?

DeddyH 26. Aug 2008 15:49

Re: Fehlermeldung Methodenbezeichner erwartet
 
Ööhhmm... ist das die komplette Unit im ersten Post oder nur Auszüge?

julchen 26. Aug 2008 15:58

Re: Fehlermeldung Methodenbezeichner erwartet
 
So sieht es vollständig aus:
Delphi-Quellcode:
unit keys;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ComCtrls, ExtCtrls, JvComponentBase,
  JvComputerInfoEx, JvExStdCtrls, JvListBox, JvDriveCtrls, JvListComb,
  JvCombobox, ToolWin, JvExComCtrls, JvToolBar, JvButton, JvCtrls,
  JvFooter, JvExExtCtrls, JvExtComponent, JvSpeedbar, RichEditBrowser,
  JvComCtrls, JvComponentPanel, JvExControls, JvLookOut;

type
        TForm1 = Class(TForm);
        RichEdit1: TRichEdit;

procedure RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
procedure RichEdit1OnKeydown(Sender: TObject; var Key: word; Shift: TShiftState);

implementation

uses unit5;

// ======

 einfügen =======================================
procedure TForm1.RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
var
        selstart: integer;
        tempstr1: PChar;
begin
        if key = VK_RETURN then
        begin
          tempstr1 := '

';
          SendMessage(RichEdit1.Handle, EM_Getsel, longint(@selstart), 0);
          SendMessage(RichEdit1.Handle, EM_Replacesel, 0, LongInt(tempstr1));
          SendMessage(RichEdit1.Handle, EM_Setsel, selstart + 4, Selstart + 3);
          key := 0;
        end;

end;

// ====== </p> schliessen ====================================
procedure TForm1.RichEdit1OnKeydown(Sender: TObject; var Key: word; Shift: TShiftState);
var
        selstart: integer;
        tempstr2: PChar;
begin
        if key = VK_RETURN then
        begin
          tempstr2 := '</p>' ;
          SendMessage(RichEdit1.Handle, EM_Getsel, longint(@selstart), 0);
          SendMessage(RichEdit1.Handle, EM_Replacesel, 0, LongInt(tempstr2));
          SendMessage(RichEdit1.Handle, EM_Setsel, selstart + 4, Selstart + 4);
          key := 0;
        end;
end;


end.
bei unit5 habe ich halt unter der Implementierung uses keys stehen.

DeddyH 26. Aug 2008 16:06

Re: Fehlermeldung Methodenbezeichner erwartet
 
Wie bekommt man so einen Code hin? Na egal, ändere mal die Typdeklaration:
Delphi-Quellcode:
type
   TForm1 = Class(TForm)
     RichEdit1: TRichEdit;
     procedure RichEdit1OnKeyup(Sender: TObject; var Key: word; Shift: TShiftState);
     procedure RichEdit1OnKeydown(Sender: TObject; var Key: word; Shift: TShiftState);
end;
Wobei ich nicht sicher bin, ob die Ereignisse auch ausgelöst werden, da sie vermutlich nicht zugewiesen sind. Wieso erstellst Du nicht einfach ein neues Formular, packst da ein Richedit drauf und kopierst den Code der beiden Methoden da hinein? Wäre das Einfachste.

julchen 26. Aug 2008 16:14

Re: Fehlermeldung Methodenbezeichner erwartet
 
Ich habe mit end; die Deklaration geschlossen. Und er hängt sich jetzt schon beim type auf!

Zitat:

Wie bekommt man so einen Code hin? Na egal, ändere mal die Typdeklaration:
Wie würdest Du es machen?
Vielleicht wird das Problem dann gelöst?

Zitat:

Wieso erstellst Du nicht einfach ein neues Formular, packst da ein Richedit drauf und kopierst den Code der beiden Methoden da hinein? Wäre das Einfachste.
Und wie bekomme ich dann mein RichEdit in mein Projekt an die Stelle, wo es hingehört?
Gibt es da einen Trick?

mkinzler 26. Aug 2008 16:19

Re: Fehlermeldung Methodenbezeichner erwartet
 
Wie meinst du an welche Stelle?

DeddyH 26. Aug 2008 16:40

Re: Fehlermeldung Methodenbezeichner erwartet
 
Wie hast Du das Formular denn erstellt?

julchen 27. Aug 2008 09:44

Re: Fehlermeldung Methodenbezeichner erwartet
 
Zitat:

Zitat von mkinzler
Wie meinst du an welche Stelle?

Wie platziere ich die zweite Form mit dem Richedit auf der ersten Form?

Zitat:

Zitat von DeddyH
Wie hast Du das Formular denn erstellt?

Das RichEdit befindet sich in einem TabSheet.
Da der Code so bleibt, wollt ich ihn halt auslagern.
Konnte ja nicht ahnen, dass das so schwierig ist :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 Uhr.
Seite 1 von 2  1 2      

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