AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox - OnChange-Behandlung zuweisen

Ein Thema von cBoB · begonnen am 20. Apr 2004 · letzter Beitrag vom 20. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#1

ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 08:15


Hi!
Kurze, mglw. auch dumme Frage: wie kann ich einer erst zur Laufzeit erzeugten ComboBox die OnChange Behandlung zuweisen?

-c-
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 08:21
Funktioniert das nicht:
Combobox.OnChange := Form1.Prozedur; ???
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#3

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 08:37
Na irgendwie klappt das nicht. Dann kommt immer eine Fehlermeldung:
"Inkompatible Typen: 'TNotifyEvent' und 'procedure...'"
Also nicht so einfach, ja?

-c-
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 08:41
Die Prozedur muss aber folegnde Form haben:
procedure Name(Sender: TObject); Du darfst nur den name verändern, der Rest muss gleich bleiben.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#5

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:05
Ok, mit "Sender: TObject" gehts jetzt entweder n Schritt weiter oder wie auch immer, jedefalls kommt jetzt die Fehlermeldung:
"Bei der vorherigen Deklaration von <Name> wurde die Direktive overload nicht angegeben"
und jetzt stellt sich mir die Frage, wo ich da overload angeben soll?

[Edit] Ach nee, stimmt ja nicht: als nächster Fehler kommt dann wieder die Meldung: "Inkompatible Typen...."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:07
Das Overload-Problem sollte eigentlich nicht kommen.
Was hast'n für 'nen Namen für die Prozedur verwendet?


Und das, was man immer machen kann ... bei Fehlern macht sich ein bissl Quellcode nicht schlecht - damit wir auch was sehn.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:08
Moin!

Das heisst soviel, das die Procedure mit dem Namen schon gibt und daher müsstest du Overload angeben, wenn du 2 Proceduren haben willst mit unterschiedlichen Parametern und gleichen Namen. Zum Teil kann der Fehler auch daher rühren, wenn es schon eine Variable mit der gleichen Bezeichnung in dem Gültigkeitsbereich gibt.

Ok, das "Inkompatible Typen" kann ich mir nur so erklären, das du die Procedure für das OnChange Event nicht in einer Klasse definiert hast sonder so irgendwo als globale/unit-private Funktion. Du musst es als Methode einer Klasse definieren, da bei den Callback/Ereignissen immer der Self Pointer der Klasse als erstes übergeben wird.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#8

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:11
Hab schon alle möglichen Namen verwendet, da ich auch vermutet hatte, irgendwo einen schon vergebenen zu nutzen, aber daran kanns nicht liegen.
Was muß alles beachtet werden, wenn ein On-Click,-Change,-Exit usw. zuweisen will? Die DelphiHilfe ist da nicht so aussagekräftig.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:15
Moin!

Die Ereignisprocedure muss in einer Klasse als Methode definiert werden!

Das bedeutet z.B. so:
Code:
Type
  TForm1 = Class(TForm)
  private
    Procedure MyNewCallback(Sender: TObject);
  ...
  End;
So geht es nicht:
Code:
...

Implementation

Procedure MyNewCallback(Sender: TObject);
Begin
  ...
End;
Weil letztes ist keine Methode und daher geht es nicht diese zu zu weisen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#10

Re: ComboBox - OnChange-Behandlung zuweisen

  Alt 20. Apr 2004, 09:17
@Muetze1
AAhhh, da kommen wir der Sache schon näher glaube ich. Das muß ich mal überprüfen.
Das Problem ist nämlich wie gesagt: ich kann nämlich erst zur Laufzeit einen Teil des Inhalts von dem Formular erzuegen und da komm ich noch nicht so ganz klar mit dem Übergeben von den ganzen zugehörigen Objecten bzw. ich weiss immer nicht so genau, was ich ich als Sender übergeben muß und kann, oder z.B. wie ich auf eine gerade erzeugte Komponente zeige usw.

Aber danke schonmal für den Ansatz, Muetze!
  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 19:03 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