AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Zur laufzeit erstellter Komp Ereignis zuweisen klappt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Zur laufzeit erstellter Komp Ereignis zuweisen klappt nicht

Ein Thema von Nalincah · begonnen am 2. Okt 2003 · letzter Beitrag vom 2. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

Zur laufzeit erstellter Komp Ereignis zuweisen klappt nicht

  Alt 2. Okt 2003, 14:38
ListBoxTable.OnClick := TableOpen;
Delphi-Quellcode:
procedure TableOpen(TabelleName:String);
begin
  // Irgendwas
end;
Wenn ich compilieren will sagt der:

Code:
[Fehler] uOpenDataBase.pas(73): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Der Code befindet sich in einer Unit ohne Formular
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:41
Die Deklaration muß genau so aussehen, wie die eigentlichen OnClick Ereignisse.
Also anstatt procedure TableOpen(TabelleName:String); wahrscheinlich procedure TableOpen(Sender: Tobject);
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:42
Moin Sebastian,

die Fehlermeldung sagt es ja eigentlich schon:

OnClick muss eine Methode übergeben werden (Typ TNotifyEvent, dass steht allerdings nicht in der Meldung)

So müsste die Deklaration aussehen, wenn man sie einem OnClick zuweisen will.
(TForm1 ist nur ein Beispiel, wichtig ist, dass es sich um eine Methode und nicht um eine Prozedur handelt)

Delphi-Quellcode:
procedure TForm1.TableOpen(Sender: TObject);
begin
  // Irgendwas
end;
Nahezu genau diese Frage hatten wir übrigens schon einmal vor ein paar Tagen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:43
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure MyButtonClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MyButtonClick(Sender: TObject);
begin
  ShowMessage('Hello world');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  MyButton : TButton;
begin
  MyButton := TButton.Create(self);
  MyButton.Parent := Form1;
  MyButton.Caption := 'MyButton';
  MyButton.OnClick := MyButtonClick;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#5

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:44
Nein. Gleicher Fehler:

In nem anderem Programm funktioniert es so:

DBGrid1.OnCellClick := self.dbgridmemo;
Delphi-Quellcode:
procedure TForm1.dbgridmemo(Column: TColumn);
begin
  Form2.DBMemo1.DataSource := column.grid.DataSource;
  Form2.DBMemo1.DataField := Column.FieldName;
end;
Das ist aber ne Unit mit Form
Wenn ich bei meinem Problemprogramm aber "self" einfüge sagt der:
"Unbekannter Bezeichner"
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:46
Das liegt daran, dass das OnClick Ereignis vom Typ TNotifyEvent ist.

Dieser Typ ist wie folgt deklariert:Type TNotifyEvent = procedure(Sender: TObject) of object; Also musst du auch eine Procedure dieses Typs zuweisen.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:46
Moin Sebastian,

Zitat von General2003:
Wenn ich bei meinem Problemprogramm aber "self" einfüge sagt der:
"Unbekannter Bezeichner"
mit Recht, denn self ist ein nicht sichtbarer Parameter eine Methode.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#8

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 14:50
Sorry, danke zwar für die Hilfe, aber ich komm nicht weiter
Ich stell einfach mal den Source zur verfügung. Wäre nett wenn mir einer helfen könnte
Die problematische Procedure lässt sich aufrufen in dem man oben auf "Datei/Datenbank öffnen/Aus Datei..." klickt und ne *.mdb (Access) Datei öffnet

[Edit]
Die Prozedure ganz unten in uOpenDataBase

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

end;
müsste eigentlich so aussehen

Delphi-Quellcode:
procedure TableOpen(TabelleName:String);
begin

end;
[/Edit]
Angehängte Dateien
Dateityp: zip db_utilities.zip (13,1 KB, 7x aufgerufen)
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 15:08
Moin Sebastian,

schau Dir doch bitte mal mein erstes Posting in diesem Thread an.
Da müsste Dir ein Unterschied zu dem auffallen, was Du gemacht hast.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#10

Re: Zur laufzeit erstellter Komp Ereignis zuweisen klappt ni

  Alt 2. Okt 2003, 15:10
Delphi-Quellcode:
procedure TableOpen(Sender: TObject);
begin
  sleep(330);
end;
Wenn ich das so mache klappt das nicht

Delphi-Quellcode:
procedure TFrmMain.TableOpen(Sender: TObject);
begin
  sleep(330);
end;
Und so auch nicht
Sebastian
Ehemals bekannt als General2004
  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 06:44 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