Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Label oder DBText auf Klick aktualisieren (https://www.delphipraxis.net/57318-label-oder-dbtext-auf-klick-aktualisieren.html)

Avax2k 19. Nov 2005 03:08

Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO

Label oder DBText auf Klick aktualisieren
 
habe folgendes Problem

möchte nämlich, dass wenn ich im DbGrid eine Zeile anklicke sich auch dementsprechend der Eintrag im Label oder DBText mit ändert..bisher zeigt es lediglich den ersten Wert beim Start der Applikation an, wenn ich auf einen speziellen Datensatz klicke passiert nichts...

der Quelltext sieht wie folgt aus:
Delphi-Quellcode:
with ADOQuery1 do begin
Parameters.ParseSQL(SQL.Text, true);
sql.Text := 'SELECT ID FROM Datenbank where ID = :ID';
open;
Parameters.ParamValues['ID'] := ADODataSet1.FieldValues['ID'];
Label9.Caption := ADODataSet1.FieldbyName('ID').asString;
refresh;
end;
das markierte Feld wird somit festgehalten..nur weiss ich eben nicht wie ich das Label auch aktualisiert bekomme. hoffe jemand kann mir weiterhelfen.

marabu 19. Nov 2005 06:12

Re: Label oder DBText auf Klick aktualisieren
 
Hallo Avax2K,

im event-handler OnAfterScroll von DBGrid.DataSource.DataSet kannst du nach dem Neupositionieren auf den dann aktuellen Datensatz zugreifen und den gewünschten Wert der Caption vom Label zuweisen.

Grüße vom marabu

Sharky 19. Nov 2005 06:37

Re: Label oder DBText auf Klick aktualisieren
 
Hai Avax2k,

wie marabu schon sagte ist für solche Sachen das Delphi-Referenz durchsuchenOnAfterScroll ideal:
Delphi-Quellcode:
procedure TForm1.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
  Label9.Caption := DataSet.FieldByName('ID').AsString;
end;
Aber eigentlich wollte ich noch etwas zu deinem Codebeispiel sagen ;-)

Zitat:

der Quelltext sieht wie folgt aus:
Delphi-Quellcode:
with ADOQuery1 do
begin
  Parameters.ParseSQL(SQL.Text, true);
  sql.Text := 'SELECT ID FROM Datenbank where ID = :ID';
  open;
  Parameters.ParamValues['ID'] := ADODataSet1.FieldValues['ID'];
  Label9.Caption := ADODataSet1.FieldbyName('ID').asString;
  refresh;
end;

Dur rufst hier aus einer Tabelle das Feld ID von dem Datesatz ab, der eine von Dir definierte ID besitzt.
So richtig Sinn macht das aber nicht ;-) Auf deutsch würde das bedeutet: "Sage mir die ID des Datesatzes der die ID fünf hat".
Warum eine Information aus der Tabelle abfragen die Du schon hast?

Avax2k 19. Nov 2005 10:47

Re: Label oder DBText auf Klick aktualisieren
 
super, hat auf Anhieb funktioniert :).

Vielen Dank an Marabu und Sharky.

zur Erläuterung für Sharky:

ich dachte eben so die label.Caption zu aktualisieren, da mit jedem klick auf einen Datensatz sich auch die ihm zugewiesene ID ändert. Ob er mir nun die Id=5 zeigt Where Id=5 sollte das Label auch 5 anzeigen..aber hab mich ja geirrt.

Nochmals aber vielen Dank für die schnelle Hilfe :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 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