AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Ereignis verschwindet aus TQuery Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignis verschwindet aus TQuery Komponente

Ein Thema von bmartini · begonnen am 28. Mär 2007 · letzter Beitrag vom 29. Mär 2007
Antwort Antwort
bmartini

Registriert seit: 23. Okt 2006
Ort: Schmelz
1 Beiträge
 
#1

Ereignis verschwindet aus TQuery Komponente

  Alt 28. Mär 2007, 12:46
Hallo!

Ich habe in Delphi 5 auf einer Form ein Query und habe diesem Query im Afterscroll eine Anweisung erteilt. Beim wieder aufmachen der Form im Delphi ist der Zeiger aufs Afterscroll aus dem Objektinspektor verschwunden. Warum ist das so? Bei anderen Forms klappt das...

Danke und Gruss,
Benjamin
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 28. Mär 2007, 18:39
Herzlich willkommen in der Delphi-PRAXiS, Benjamin.

Mir ist kein grundsätzliches IDE-Problem in dieser Hinsicht bekannt.

Hast du nach dem Setzen des Ereignis-Codes im Object Inspector das Ergebnis gespeichert und anschließend mit Alt-F12 mal das Formular im Textmodus betrachtet?

Freundliche Grüße
  Mit Zitat antworten Zitat
Mena

Registriert seit: 7. Mai 2004
Ort: Wiltingen
9 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 09:38
Ja, wir haben gespeichert. Wir sind sogar auf den Trick gekommen, nach dem Setzen des Ereignisses erstmal irgendwo anders hinzuklicken und erst dann zu speichern. (Denn wenn eine Eigenschaft gesetzt wird und dann direkt gespeichert wird, dann scheint Delphi die Änderung nicht immer mitzubekommen.)
Direkt nach dem Speichern war das AfterScroll-Ereignis jedenfalls noch da, sowohl im Objekt-Inspektor als auch in der dfm-Datei.
Form zu, Form auf, Ereignis weg.
Der Quellcode, der in dem Ereignis ausgeführt werden soll, ist noch da, nur die Verknüpfung von TQuery zu Quellcode verschwindet spurlos.
Hat noch jemand Ideen?

Grüße von Mena
Ich muss nicht alles wissen, aber ich kann alles lernen.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 10:51
Zitat von Mena:
Der Quellcode, der in dem Ereignis ausgeführt werden soll, ist noch da, nur die Verknüpfung von TQuery zu Quellcode verschwindet spurlos.
Hat noch jemand Ideen?
Das Formular/Datenmodul als Text-DFM speichern. (Dazu Formular/DM anklicken, rechte Maustaste und im Popupmenu ganz unten "Text-DFM" wählen)
Dann mit einem normalen Editor (Notepad & Co.) nachschauen, ob das Event vorhanden ist.
Somit wird entdeckt, ob das Problem beim Speichern oder Laden auftritt.
Andreas
  Mit Zitat antworten Zitat
Mena

Registriert seit: 7. Mai 2004
Ort: Wiltingen
9 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 11:20
Definitv beim Öffnen: Die dfm nach dem Speichern im Editor geöffnet enthält Folgendes:

Delphi-Quellcode:
  object Query: TQuery
    AfterScroll = QueryAfterScroll
    OnNewRecord = QueryNewRecord
    DatabaseName = 'Olympia'
    RequestLive = True
    SQL.Strings = (
      'select * from AT_Kontakt')
    UpdateMode = upWhereKeyOnly
    ....
Interessant ist, dass in der IDE nach dem nächsten Öffnen das Ereignis wieder weg, in der dfm aber noch vorhanden ist. In der IDE wird in diesem Moment nicht angezeigt, dass irgendwas zu speichern wäre. Speichere ich die Unit trotzdem verschwindet das Ereignis auch aus der dfm.

Einigermaßen verständlich, was ich beobachtet habe? Ich mach mir gleich einen Knoten ins Gehirn mit der Geschichte.

Grüße von Mena
Ich muss nicht alles wissen, aber ich kann alles lernen.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 11:46
Sind irgendwelche nicht-standard Komponenten auf dem Formular?
Falsch programmierte Komponenten könnten in der Procedure Loaded() oder Notification() eigenmächtig Properties von anderen Komponenten verändern.
Das funktioniert auch zur Entwicklungszeit innerhalb der IDE!!
Andreas
  Mit Zitat antworten Zitat
Mena

Registriert seit: 7. Mai 2004
Ort: Wiltingen
9 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 13:13
Jawoll, Volltreffer!
Da ist eine selbstgestrickte Komponente drauf, die eine published property Dataset hat, und im OnSetDataset wird das Ereignis AfterScroll (und noch ein paar andere) überschrieben/erweitert.
Und das wird auch zur Designtime ausgeführt? Dann wundert mich gar nichts mehr.
Wie kann ich das dem Ding abgewöhnen?
Wir haben versucht, die Eigenschaft Dataset zur public property zu degradieren und zur Laufzeit im Quellcode zu setzen, aber dann wird das, was im DatasetAfterOpen ausgeführt werden soll übergangen.
Wir haben auch versucht, das Überschreiben der Ereignisse im OnSetDataset auf die Laufzeit zu beschränken aber if (csDesigning in self.ComponenetState) brachte auch nicht den erhofften Erfolg.

Habt Ihr noch einen Tip?

Danke und Grüße von Mena
Ich muss nicht alles wissen, aber ich kann alles lernen.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Ereignis verschwindet aus TQuery Komponente

  Alt 29. Mär 2007, 14:29
Zitat von Mena:
Jawoll, Volltreffer!
Da ist eine selbstgestrickte Komponente drauf, die eine published property Dataset hat, und im OnSetDataset wird das Ereignis AfterScroll (und noch ein paar andere) überschrieben/erweitert.
Das darf man nicht tun!
Die Komponente darf nicht direkt an TDataSet Komponenten herangehen, sondern indirekt über TDataSource.
Es gibt nun die Komponente TDataLink.
Du musst also in deiner selbstgebauten Komponente ein internes Objekt vom Typ TDataLink erzeugen und mit dem published Property DataSource verbinden.
So wird deine Komponente von allen Änderungen am Dataset indirekt informiert und alle Events des Datasets bleiben dem Programmierer zur freien, eigenen Verfügung.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:56 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