Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
Re: Datenbankfelder werden in datasource.onchange nicht gefu
24. Feb 2005, 17:28
Zitat von buyden:
@shmia
ich komm jetzt mit deiner Aussage grad nicht ganz klar.
Der Sinn meiner Prozedur ist es, wenn sich in einem bestimmten Feld der tabelle auftrag etwas ändert, soll die Farbe des Panels, die in der verknüpften Tabelle status steht, geändert werden.
Also eher so:
Delphi-Quellcode:
procedure Tfrmdata.dsauftragDataChange(Sender: TObject; Field: TField);
begin
if Field.FieldName='AStatus' then
begin
// in einem ganz bestimmten Feld (Name hier: 'AStatus') hat sich was geändert
// jetzt müssen wir eine "Lookup" Aktion durchführen
//
Assert(tbstatus.Active); // Tabelle muss offen sein, sonst geht nix
(*
* Wichtig !!!
* wenn man sich in der Klasse Tfrmdata befindet, darf man nicht auf frmdata
* zugreifen.
* dies kann ganz schwer zu findende Fehler verursachen
*)
// suche in Tabelle tbstatus nach dem passenden Datensatz
if tbstatus.Locate('IdStatus', Field.Value) then
begin
// zusatztest:
if tbstatus.FindField('farbe') = nil then
ShowMessage('Feld farbe nicht vorhanden!'#13#10+
tbstatus.FieldList.Text); // alle vorhandenen Felder anzeigen
// Suche war erfolgreich, also Farbe übernehmen
frmmain.Panel1.Color:=tbstatus.FieldByName('farbe').AsString;
end
else
frmmain.Panel1.Color:=clRed;
end;
end;
Andreas
|
|
Zitat
|