AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DBGrid Zeilen Wechsel

Ein Thema von Andidreas · begonnen am 6. Dez 2013 · letzter Beitrag vom 9. Dez 2013
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 11:36
Du musst das Event einfach nur zuweisen ADataset.AfterScroll := xxprocedure und die Procedure dann schreiben xxprocedure(Sender : TDataset)
Also die Prozedur hatte ich schon im Source drinnen... Die wurde nur nie aufgerufen!

Wie funktioniert die Event zuweisung?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#12

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 11:40
ADataset.AfterScroll := xxprocedure
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#13

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 11:59
Ergänzung zu Bauminas Hinweis: Die Zuweisung verhält sich analog zum Objektinspektor: Das Property AfterScroll erhält die Adresse deiner Procedure, indem du diese Procedure dem Property zuweist. Danach wird deine Procedure auch aufgerufen, wenn gescrollt wird. Wenn du im OI auf AfterScroll doppelt klickst, passiert genau dasselbe: Es wird ein Procedur-Rumpf erstellt und im OI eingetragen.

Einfach mal ausprobieren ...

Übrigens hatte Baumina diesen Hinweis bereits geliefert.

Geändert von Perlsau ( 9. Dez 2013 um 12:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 13:37
Ja den Hinweis von Baumina hab ich gelesen, aber ich hab sowas noch nie gemacht Deshalb meine Frage...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.270 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 13:42
Es muss aber eine Methode sein, eine reguläre Prozedur lässt sich nicht zuweisen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 13:50
Also das folgende habe ich gemacht:

Delphi-Quellcode:

unit view;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, AdvGlowButton, Uni, StdCtrls, ShlObj, Grids, DBGrids, DB,
  MemDS, DBAccess;

type
  Tform = class(TForm)
    timerstart: TTimer;
    pnl_insertedit: TPanel;
    lbl_materialdescription: TLabel;
    lbl_tablecontent: TLabel;
    advglowbtn_search: TAdvGlowButton;
    advglowbtn_showall: TAdvGlowButton;
    edt_materialdescription: TEdit;
    dbgrid_data: TDBGrid;
    datsrc_data: TDataSource;
    procedure FormDestroy(Sender: TObject);
    procedure timerstartTimer(Sender: TObject);

    procedure SQLiteFile_DisplayAfterScroll(DataSet: TDataSet);

  private
    procedure prButtonandFieldControl(blLocked : Boolean);
    procedure prDisplayDESADVCommissionData(sCommissionNo, sDescription, sDSMin, sDSMax : String; blSearch : Boolean);
    procedure prDisplayDESADVCommissionDetails(sCommissionNo, sDSMin, sDSMax : String);
    procedure prGetDESADVCommissionMinMaxDS(sDESADVModule : String);
  public

  end;

.
.
.

procedure Tform.SQLiteFile_DisplayAfterScroll(DataSet: TDataSet);

begin

  If (gblViewCommissions) Then ShowMessage('New Record Selected');

end;
Mit diesem Source wird das AfterScroll nicht ausgelöst da das Event noch nicht zugewiesen ist, und da häng ich grad da ich nicht weiß wie sowas geht...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#17

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 13:53
Wo weist du denn dem Property OnAfterScroll deines Datasets die Methode Tform.SQLiteFile_DisplayAfterScroll(DataSet: TDataSet); zu?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#18

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 14:02
Also dann mal ausführlich zum Abschreiben:

Delphi-Quellcode:
procedure ErstelleDataset;
var
  aDataset : TDataset;

begin
  aDataSet := TDataset.Create;
  ...
  aDataset.AfterScroll := DoAferScroll;
  ...
end;

procedure DoAfterScroll(Sender : TDataset);
begin
 ...
end;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.270 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 14:19
Das ist keine Methode, daher wird das so nicht funktionieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 14:29
Schon mal vielen Dank Baumina!

Ich weiß es wird hier im Forum nicht gern gesehen wenn man sich die Lösung vorkauen lässt ohne eigen Initiative.
Aber Ihr könnt mir glauben das ich gerade nicht vor meinem PC hocke und die ganze Zeit F5 drücke um auf Antworten zu warten... Habe nebenher auch Hr. Google bemüht aber irgendwie steh ich aufm Schlauch...

Nochmal von vorn...

Ich hab mir ein simples Programm zum Anzeigen von Daten gemacht.
Dort verwende ich das AfterScroll Ereignis der TUniQuery um den Wechsel von Daten Zeilen mitzubekommen und meine gewünschten Aktionen durchzuführen...
Funktioniert wunderbar...

In meiner DLL ist die vorgehensweise wie folgt...

Ich erstelle meine TUniQuery Komponente mit der ich die Daten von der DB abhole.
Mittlerweile habe ich mir die folgende Procedure angelegt die den Source beinhalten soll für das AfterScroll:
Delphi-Quellcode:
procedure Tform.prAfterScroll(Sender: TDataSet);

begin

  If (gblView) Then ShowMessage('New Record Selected');

end;
Nun versuche ich beim Laden der DLL der dynamisch erstellen TUniQuery im AfterScroll Ereignis meine Procedure zu zuweisen:

Versuch 1

  SQLiteFile_DisplayCommissions.DataSource.DataSet.AfterScroll := prAfterScroll(SQLiteFile_DisplayCommissions);
Versuch 2

  SQLiteFile_DisplayCommissions.AfterScroll := prAfterScroll(SQLiteFile_DisplayCommissions);
Beides mal kommt beim kompilieren die Fehlermeldung:
E2010 Inkompatible Typen: 'TDataSetNotifyEvent' und 'procedure, untyped pointer or untyped parameter'

Ich will niemand ärgern oder nerven, aber was das betrifft ist mein Wissen jungfräulich, ich hab noch nie eigene Events einer Komponente zugewiesen!
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 05:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf