AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Undefinierter Bezeichner: 'Sender'

Ein Thema von Stony2k · begonnen am 26. Jun 2005 · letzter Beitrag vom 28. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#1

Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 11:08
Ich habe eine Prozedur
Delphi-Quellcode:
procedure Tfrm_main.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
  begin
    sendText(befehle[1].befehl);
    image1.Picture:=img_btn_gedrueckt.Picture;
    Label1.Top:=Label1.Top+2;
    Label1.Left:=Label1.Left-1;
  end;
end;
und diese möchte ich nun über eine andere Prozedur aufrufen:
Delphi-Quellcode:
procedure Tfrm_main.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = id1 then
    Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
.
.
.
Leider bekomme ich nur Fehlermeldungen:
Delphi-Quellcode:
[Fehler] Unit_main.pas(323): Undefinierter Bezeichner: 'Sender'
[Fehler] Unit_main.pas(323): Anweisung erforderlich, aber Ausdruck vom Typ 'Class reference' gefunden
[Fehler] Unit_main.pas(323): '(' erwartet, aber ';' gefunden
[Fehler] Unit_main.pas(323): '(' erwartet, aber ';' gefunden
[Fehler] Unit_main.pas(324): ';' erwartet, aber 'IF' gefunden
[Fehler] Unit_main.pas(362): '.' erwartet, aber ';' gefunden
[Fataler Fehler] Befehlstool.dpr(9): Verwendete Unit 'Unit_main.pas' kann nicht compiliert werden
Da scheint wohl was an der parametern nicht zu stimmen.
Weiss hier vielleicht wer Rat ?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 11:12
Moin Stony2k,

du darfst beim Aufruf der Funktion nicht die Parameter hinschreiben, sondern Werte uebergeben

d.h. hier Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); musst du eigentliche Werte uebergeben.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 11:14
Du darfst nicht den ganzen Funktionskopf herauskopieren. Das Problem, das du hast, ist einfach, dass du keine Parameter übergibst. Parameter sind dafür da, Informationen an Prozeduren weiterzugeben. Ungetestet, aber so könnte es gehen:

Image1MouseDown(Frm_main, mbLeft, nil, 10, 10);
  Mit Zitat antworten Zitat
Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 13:55
Ich verstehe..
nun ich habe mal die von dir Vorgeschlagenen Parameter genommen, bekomme aber nur eine Fehlermeldung:
[Fehler] Unit_main.pas(323): Inkompatible Typen: 'TShiftState' und 'Pointer' Woran kann's liegen?
  Mit Zitat antworten Zitat
Benutzerbild von fred.reichbier
fred.reichbier

Registriert seit: 27. Apr 2004
154 Beiträge
 
#5

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 14:00
nimm
Image1MouseDown(Frm_main, mbLeft, [], 10, 10);
Friedrich Weber
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 14:04
Ich kenne dein Programm nicht, also weiß ich nicht obs läuft. Probiers mal so.

Delphi-Quellcode:
procedure TForm1.down;
var
  Button: TMouseButton;
  Shift: TShiftState;
  X, Y: Integer;
begin
if Button = mbLeft then
  begin
    sendText(befehle[1].befehl);
    image1.Picture:=img_btn_gedrueckt.Picture;
    Label1.Top:=Label1.Top+2;
    Label1.Left:=Label1.Left-1;
  end;
end;

procedure TForm1.key;
var Msg: TWMHotKey
begin
  if Msg.HotKey = id1 then
    down;
    .
    .
    .
end;

{procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Down;
end;}
    //unnötig
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#7

Re: Undefinierter Bezeichner: 'Sender'

  Alt 26. Jun 2005, 14:11
Zitat von Nils_13:
Ich kenne dein Programm nicht, also weiß ich nicht obs läuft. Probiers mal so.

Delphi-Quellcode:
procedure TForm1.down;
var
  Button: TMouseButton;
  Shift: TShiftState;
  X, Y: Integer;
begin
if Button = mbLeft then
  begin
    sendText(befehle[1].befehl);
    image1.Picture:=img_btn_gedrueckt.Picture;
    Label1.Top:=Label1.Top+2;
    Label1.Left:=Label1.Left-1;
  end;
end;

procedure TForm1.key;
var Msg: TWMHotKey
begin
  if Msg.HotKey = id1 then
    down;
    .
    .
    .
end;

{procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Down;
end;}
    //unnötig
Das klappt ganz sicher nicht.
Na ja, es geht vielleicht zu kompilieren, aber das Programm funktioniert dann nicht mehr.
1. Sollte die Down-Methode ein Ereignis sein. Das kann man jetzt bestimmt nicht mehr zuweisen, da die Parameter nicht mehr stimmen.
2. Die Parameter sind nicht nur Spaß-Variablen, die man sich auch selbst generieren kann, sondern da steht auch was drinnen . So erhält man die Warnung 'Button könnte nicht Initialisiert sein' oder ähnlich. Klar, ist es auch nicht, und somit gibt die Abfrage "if Button = mbLeft" bloß noch Mist -> Logischer Programmfehler.
Es geht also nicht nur, Syntaktische Fehler zu beseitigen, sondern auch die Funktionalität des Programms nicht einzuschränken

[edit=alcaeus]Wortwahl auf Wunsch angepasst, da die 24-Stunden-Grenze ueberschritten war. Mfg, alcaeus[/edit]
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Undefinierter Bezeichner: 'Sender'

  Alt 28. Jun 2005, 10:01
Zitat von Chimaira:

{So erhält man die Warnung 'Button könnte nicht Initialisiert sein' oder ähnlich. Klar, ist es auch nicht, und somit gibt die Abfrage "if Button = mbLeft" bloß noch Bullshit -> Logischer Programmfehler.
Erhm wieso das? Das mit dem "if Button = mbLeft" funzt super und hat schon seinen Sinn, also bitte..

Achja und danke, da es nun mit den Parametern funzt
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#9

Re: Undefinierter Bezeichner: 'Sender'

  Alt 28. Jun 2005, 12:04
Zitat von Stony2k:
Zitat von Chimaira:

{So erhält man die Warnung 'Button könnte nicht Initialisiert sein' oder ähnlich. Klar, ist es auch nicht, und somit gibt die Abfrage "if Button = mbLeft" bloß noch Bullshit -> Logischer Programmfehler.
Erhm wieso das? Das mit dem "if Button = mbLeft" funzt super und hat schon seinen Sinn, also bitte..
Erhm, ja, die Abfrage ist kompilierbar. Aber schau mal, ob der Wert initialisiert wird. Nope. Schließlich ist das auch eine lokale Variable, und nicht ein Parameter -> nicht initialisiert -> ergibt Warnung und Sinnlose abfrage

um einen vergleich aufzustellen:
Delphi-Quellcode:
procedure a;
var
  b: integer;
begin
  if b = 10 then ;
end;
b wird nicht Initialisiert. Also kann in b auch 293, 2345 oder 938457 stehen. Man weiß es nicht, deshalb ist die If-abfrage nicht eindeutig.

Nils' Lösung würde funktionieren, wenn die Parameter nicht gebräucht werden würden. So aber funktioniert sie nicht.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Undefinierter Bezeichner: 'Sender'

  Alt 28. Jun 2005, 15:43
Ich glaube du verwechselst da etwas.
1. Nein,e s gibt keine Fehlermeldung
2. Button ist in dem Fall schon in vordefenierter Wert in Delphi, der dazu dient, nur die linke Maustaste(in meinem Fall) zu zulassen, und muss(kann) in dem Fall nicht intialiesiert werden.
Aber les dir erstmal das hier durch: http://www.delphipraxis.net/internal...=384480#384480
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
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