AGB  ·  Datenschutz  ·  Impressum  







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

TCRDBGrid den Suchtext abfragen

Ein Thema von Aromanaut · begonnen am 28. Mai 2019 · letzter Beitrag vom 29. Mai 2019
Antwort Antwort
Aromanaut

Registriert seit: 22. Mär 2019
15 Beiträge
 
Delphi 10.3 Rio
 
#1

TCRDBGrid den Suchtext abfragen

  Alt 28. Mai 2019, 11:44
Hallo!

Ich hätte gern im Objektinspektor ein Ereignis auf Änderung der Such- und/ oder Filtereingabe im TCRDBGrid.
Folgendes habe ich schon gefunden und implementiert:

https://de.switch-case.com/51889805

Die Eventdeklarationen werden aber nicht im Objektinspektor angezeigt.
Oder besser gesagt, was muss ich machen, damit diese dort veröffentlicht werden um sie dann in meiner Anwendung verwenden zu können?

Vielen Dank für eure Hilfe!
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TCRDBGrid den Suchtext abfragen

  Alt 28. Mai 2019, 12:46
Hallo!

Ich hätte gern im Objektinspektor ein Ereignis auf Änderung der Such- und/ oder Filtereingabe im TCRDBGrid.
Folgendes habe ich schon gefunden und implementiert:

https://de.switch-case.com/51889805

Die Eventdeklarationen werden aber nicht im Objektinspektor angezeigt.
Oder besser gesagt, was muss ich machen, damit diese dort veröffentlicht werden um sie dann in meiner Anwendung verwenden zu können?

Vielen Dank für eure Hilfe!
Damit eine Property oder ein Event im OI auftaucht muss es im published-Abschnitt der Komponentenklasse deklariert werden.
Peter Below
  Mit Zitat antworten Zitat
Aromanaut

Registriert seit: 22. Mär 2019
15 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TCRDBGrid den Suchtext abfragen

  Alt 28. Mai 2019, 14:04
Habe ich ja gemacht, dachte ich eigentlich?!

Habe in der TCRDBGrid-Klasse im published Bereich folgendes integriert:
...
published
property OnFilterChanged: TOnTextChanged read GetOnFilterChanged write SetOnFilterChanged;
property OnSearchChanged: TOnTextChanged read GetOnSearchChanged write SetOnSearchChanged;

Muss man da im nachhinein noch irgendwas neu laden oder neu registrieren oder sowas?

Vielen dank!
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TCRDBGrid den Suchtext abfragen

  Alt 28. Mai 2019, 21:08
Habe ich ja gemacht, dachte ich eigentlich?!

Habe in der TCRDBGrid-Klasse im published Bereich folgendes integriert:
...
published
property OnFilterChanged: TOnTextChanged read GetOnFilterChanged write SetOnFilterChanged;
property OnSearchChanged: TOnTextChanged read GetOnSearchChanged write SetOnSearchChanged;

Muss man da im nachhinein noch irgendwas neu laden oder neu registrieren oder sowas?

Vielen dank!
Die Komponente muss über eine Designtime-package in der IDE registriert werden und wenn Du die Unit geändert hast muss diese Package auch neu kompiliert werden, eventuell auch eine dazugehörige runtime-package. Ich kenne diese Komponente nicht, aber Du mußt ja wohl die Source dafür haben.

Wenn Du nur die Unit änderst ist diese Änderung nur zur Laufzeit verfügbar, d.h. Du könntest durchaus einen Eventhandler im Kode setzen (macht man oft zum Testen, bevor die Komponente in die IDE installiert wird). Der OI holt sich seine Daten aber nur aus der installierten Package.
Peter Below
  Mit Zitat antworten Zitat
Aromanaut

Registriert seit: 22. Mär 2019
15 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TCRDBGrid den Suchtext abfragen

  Alt 29. Mai 2019, 07:25
Hallo!

Vielen Dank für die Antwort. Ich dachte mir sowas schon.
Würdest du mir verraten wie ich das denn im Code implementiere diesen Eventhandler?
Da ich wirklich noch blutender Anfänger bin, bin ich für jede Hilfe dankbar.

Vielen Dank!
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TCRDBGrid den Suchtext abfragen

  Alt 29. Mai 2019, 11:50
Hallo!

Vielen Dank für die Antwort. Ich dachte mir sowas schon.
Würdest du mir verraten wie ich das denn im Code implementiere diesen Eventhandler?
Da ich wirklich noch blutender Anfänger bin, bin ich für jede Hilfe dankbar.

Vielen Dank!
Füge deinem Form zwei Methoden hinzu, deren Parameterliste dem TOnTextChanged Prototyp entsprechen. Die können durchaus in der private-Sektion stehen:

Delphi-Quellcode:
 // TOnTextChanged = procedure (Sender: TObject; Text: string) of object;

  private
    procedure FilterChanged(Sender: TObject; Text: string);
    procedure SearchChanged(Sender: TObject; Text: string);
Drück Strg+Shift+C und die IDE erzeugt für diese beiden Methoden leere Implementierungen.
Falls dein Form noch keinen Handler für den OnCreate-Event hat, füge einen hinzu. In dem erfolgt dann die Zuweisung der beiden Handler an die Events des Grids.

Delphi-Quellcode:
  CRDBGrid1.OnFilterChanged := FilterChanged;
  CRDBGrid1.OnSearchChanged := SearchChanged;
Peter Below
  Mit Zitat antworten Zitat
Aromanaut

Registriert seit: 22. Mär 2019
15 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: TCRDBGrid den Suchtext abfragen

  Alt 29. Mai 2019, 12:59
Erst mal vielen Dank!
Ich habe die zwei Methoden im privat hinzugefügt und im OnCreate Event die Zuweisung gemacht.
Allerdings findet er die Deklarationen nicht obwohl sie im published Bereich der TCRDBGrid klasse sind????
Diese ist wiederum aber in einer eigen Unit die ich aber über uses drin habe.
Was mache ich denn falsch oder muss ich mit der Unit wo die TCRDBGrid drin ist noch was veranstalten?

Danke!
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TCRDBGrid den Suchtext abfragen

  Alt 29. Mai 2019, 15:49
Erst mal vielen Dank!
Ich habe die zwei Methoden im privat hinzugefügt und im OnCreate Event die Zuweisung gemacht.
Allerdings findet er die Deklarationen nicht obwohl sie im published Bereich der TCRDBGrid klasse sind????
Diese ist wiederum aber in einer eigen Unit die ich aber über uses drin habe.
Was mache ich denn falsch oder muss ich mit der Unit wo die TCRDBGrid drin ist noch was veranstalten?

Danke!
Du hast vermutlich jetzt 2 Versionen der Unit für das Grid in deinem Filesystem und das Projekt scheint noch die unveränderte Orginalversion zu enthalten, bzw. der Compiler findet sie vor deiner geändeten Version. Sieh mal im Project Manager view nach, ob die Grid-Unit explizit zum Projekt hinzugefügt wurde (sie wird dann unter dem Projekt-Knoten gelistet. Falls das so ist, entferne die Unit zunächst aus dem Projekt. Dann fügst Du deine veränderte Unit zum Projekt hinzu (einfach aus dem Windows Explorer auf den Projektknoten ziehen, oder über das Projekt-Menu im main menu). Für so hinzugefügte Units wird der vollständige Pfad im Projektfile abgelegt, da muss der Compiler dann nicht mehr suchen gehen. Mach dann ein Build des Projektes und sieh mal wie das funktioniert.

Falls Du den Namen der Unit geändert hast, stell sicher, dass der alte Name nicht noch in einer Uses-Klausel auftaucht.
Peter Below
  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 13:52 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