Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SMDBGrid - Spalten (Colums) ansteuern (https://www.delphipraxis.net/104016-smdbgrid-spalten-colums-ansteuern.html)

f4k3 26. Nov 2007 10:14


SMDBGrid - Spalten (Colums) ansteuern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Moin Liebe DP'ler ;)

Einleitend ein Paar Worte ...

Ich hab n Programm geschrieben (wie ihr euch wahrscheinlich bereits gedacht habt :P) in diesem Programm gibt es eine PageControl.
Der letzte Reiter "Erweitert" soll eine Reihe von Optionen enthalten. Damit ihr euch darunter etwas vorstellen könnt, ist im Anhang ein Screen davon ;)

Der linke Bereich, indem die TreeView zu finden ist, liegt in der PageControl und somit auf dem Hauptformular.
Der rechte Bereich, indem die Optionen festgelegt werden, ist ein Panel auf dem Hauptformular.
In dem Panel sind Frames (für jede Option ein seperates Frame)

Nun hab ich das Problem dass, dass Frame "Mitarbeiter" zwei SMDB-Komponenten enthält.
Ich hab die Datasource quasi händisch und nicht im Objektinspektor festgelegt.
Den Code dazu findest ihr hier ...

Delphi-Quellcode:
procedure TfKundenTV.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
  if not Assigned(Node) then
  exit;
  if Node.Text = 'Erweitert' then
  begin
  frame_E_Mitarbeiter.Visible:= false;
  end;
  if Node.Text = 'InfoScreen' then
  begin
  frame_E_Mitarbeiter.Visible:= false;
  end;
  if Node.Text = 'Mitarbeiter' then
  begin
  frame_E_Mitarbeiter.Visible:= true;
  frame_E_Mitarbeiter.smdbMitarbeiter_aktiv.DataSource := dsBen;
  frame_E_Mitarbeiter.smdbMitarbeiter_inaktiv.DataSource := dsMIT;
  end;
  if Node.Text = 'Video' then
  begin
  frame_E_Mitarbeiter.Visible:= false;
  end;
end;
So ... ich will aber nicht die Komplette Table anzeigen lassen sondern nur die Mitarbeiter-Spalte.
Wie könnt ich das realisieren?
Über die Dataset-Proberty?
und wenn ja wie?

wenn ich meinen code erweitere ...

Delphi-Quellcode:
  if Node.Text = 'Mitarbeiter' then
  begin
  frame_E_Mitarbeiter.Visible:= true;
  frame_E_Mitarbeiter.smdbMitarbeiter_aktiv.DataSource := dsBen;
  frame_E_Mitarbeiter.smdbMitarbeiter_inaktiv.DataSource := dsMIT;
  frame_E_Mitarbeiter.smdbMitarbeiter_inaktiv.DataSource.DataSet := 'Mitarbeiter';
Bekomm ich ne Fehlermeldung ... Inkomplatible Typen: 'TDataSet' und 'String' ...

bitte nicht zu hart ins gericht gehen, denn bin noch im Delphi-Anfangstadium :P

Vielen dank schon mal für eure Hilfe, Euer f4k3 ;)

Deep-Sea 26. Nov 2007 10:21

Re: SMDBGrid - Spalten (Colums) ansteuern
 
a) Klick doppelt auf die das DataSet/Table. Über das Popupmenü kannst du automatisch alle Felder hinzufügen und dann im OI ua. auch einstellen ob das Feld zu sehen ist oder nicht.
b) Klicke doppelt auf das Grid. Über den Button "Alle Felder hinzufügen" kannst du selbiges erledigen. Auch hier kannst du anschließend im OI die Sichtbarkeit einstellen.

f4k3 26. Nov 2007 10:48

Re: SMDBGrid - Spalten (Colums) ansteuern
 
Okay ;)

Vielen Dank für die schnelle Hilfe ;)

Nun hab ich ein weiteres Problem.

Ich habe testweise den Code beim Aufruf von "Mitarbeiter" entnommen...

Delphi-Quellcode:
if Node.Text = 'Mitarbeiter' then
  begin
  frame_E_Mitarbeiter.Visible:= true;
  end;
wenn ich nun innerhalb meiner frame, bei den beiden SMDBGrids die Datasource Eigenschaft ändere,

Datasource = fKundenTV.dsBen und
Datasource = fKundenTV.dsMIT

abspeichere und dann auf meine Mitarbeiter Einstellung gehe, werden keine Datensätze angezeigt.
Wenn ich Delphi schließe und wieder öffne, sind die Datasource-Eigenschaften bei beiden SMDBGrids ohne Inhalt (keine Datasource zugewiesen), obwohl ich vorher die eigenschaft geändert und abgespeichert habe.

f4k3 26. Nov 2007 10:51

Re: SMDBGrid - Spalten (Colums) ansteuern
 
Hab etz den Code, so wie er zuvor war wieder eingefügt ... und siehe da, er zeigt mir die Datensätze wieder an ...
irgendwie merkwürdig ... findet ihr nicht?

Deep-Sea 26. Nov 2007 10:58

Re: SMDBGrid - Spalten (Colums) ansteuern
 
Zitat:

Zitat von f4k3
Hab etz den Code, so wie er zuvor war wieder eingefügt ... und siehe da, er zeigt mir die Datensätze wieder an ...
irgendwie merkwürdig ... findet ihr nicht?

Ich blicke gerade eh nicht durch :roteyes: ...


PS:
Zitat:

Zitat von f4k3
Delphi-Quellcode:
if Node.Text = 'Mitarbeiter' then

Dies ist nicht gut, wenn die Anwendung mal in eine andere Sprache übersetzt werden soll :wink:

f4k3 26. Nov 2007 11:01

Re: SMDBGrid - Spalten (Colums) ansteuern
 
xD

Also die Anwendung wird garantiert nicht in eine andere Sprache übersetzt und wird hauptsächlich intern verwendet!
von dem her reicht diese Art des Programmierens vollkommen aus ;)

Aber danke für den Hinweis ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz