Einzelnen Beitrag anzeigen

r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#1

Projekt: Dynamischer StoredProcedure Viewer

  Alt 9. Aug 2007, 15:12
Hallo DP Gemeinde,

Ich wollte hier mal ein Projektbegleitenden Thread aufmachen.
wo ich euch über den Projektstand informieren kann. Und ihr evtl mir helfen könnt bei Problemen.
Wenn dies im DP Board nicht erlaubt ist. Bitte ich den Thread zu löschen

Es geht sich um ein Programm was auf eine DB2 Zugreifen soll. Sich von der DB2 Die Anzahl der Stored Procedure holen soll plus die Parameter.
Dann in einer PageControl soviele TabSheets wie vorhandende Proceduren und soviele TLabeledEdit Felder wie Parameter vorhanden erzeugen.

irgendwann soll das programm dann tatsächlich die SP anpsrechen und holt sich datensätze.

Momentaner Stand. Screen anhängend!
Design fast abgeschlossen.
StoredProcedure Namen und Anzahl kriege ich raus.
Parameter Anzahl Namen Typ und In/Out kriege ich auch raus.
TabSheets werden automatisch erzeugt
TLabelededit Werden automatisch beschriftet (Parameternamen) und erzeugt
Button wird erzeugt.
Grids werden erzeugt!

problem.
Da ich immer näher zum ende vom design komme!
Wie kann ich die einzelnen btns grids und editfelder ansprechen. Wenn ich zum Beispiel ein ONClick ereigniss dranhängen will?


Erzeugen tu ich das Dynamische so:
Delphi-Quellcode:
unit TabSheetfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, Grids, StdCtrls;

type
  TfrmTabSheet = class(TForm)
    pnlTabSheet: TPanel;
    PageControl: TPageControl;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    LblEdit: TLabeledEdit;
    top,left,height,length,counterSheets,counterlblEdit: integer;
    Sheet: TTabSheet;
    Grid: TStringGrid;
  public
    { Public-Deklarationen }
    ListeTabSheet: TList;
    ListelblEdit: TList;
    pnllbledit: TPanel;
    pnlgrid: TPanel;
    excecbtn: TButton;
    procedure TabSheeterstellung(anzahl: Integer);
    procedure pnlerstellunglbledit;
    procedure lblEditerstellung;
    procedure Sheeterstellung(AktuSpzahl: integer);
    procedure pnlerstellungGrid;
    procedure Griderstellung;
    procedure Excecutebtnerstellung;
  end;

var
  frmTabSheet: TfrmTabSheet;

implementation
uses Memofrm, SPViewerMainfrm;

{$R *.dfm}

{ TfrmTabSheet }

procedure TfrmTabSheet.TabSheeterstellung(anzahl: Integer);
var
  i: integer;
begin
  top:= 20;
  left:= 20;
  height:= 25;
  length:= 0;
  counterSheets:= 0;
  for i:= 0 to anzahl-1 do
  begin
    counterlblEdit:= 0;
    frmMain.ADOQry.SQL.Text:= 'Select * FROM qsys2.sysparms WHERE SPECIFIC_SCHEMA=''KOSYFAREV'' AND SPECIFIC_NAME=''' + frmMain.ProcedureNamen[i] + '''';
    frmMain.ADOQry.Open;
    frmMain.ADOQry.First;
    while not frmMain.ADOQry.Eof do
    begin
      if length < Canvas.TextWidth(frmMain.ADOQry.Fields[4].AsString)then
        length:= Canvas.TextWidth(frmMain.ADOQry.Fields[4].AsString);
      frmMain.ADOQry.Next;
    end;
    frmMain.ADOQry.First;
    if frmMain.ADOQry.RecordCount<> 0 then
    begin
      Sheeterstellung(i);
      pnlerstellunglbledit;
      pnlerstellungGrid;
      while not frmMain.ADOQry.Eof do
        lblEditerstellung;
      Griderstellung;
      counterSheets:= counterSheets + 1;
      Excecutebtnerstellung;
      frmMemo.lblEditerstellt(counterlblEdit);
    end;
    length:= 0;
    height:= 25;
    top:= 20;
    left:= 20;
  end;
  frmMemo.insgesammtsheet(counterSheets);
end;

procedure TfrmTabSheet.FormShow(Sender: TObject);
begin
  PageControl.SetFocus;
end;

procedure TfrmTabSheet.FormCreate(Sender: TObject);
begin
  ListelblEdit:= TList.Create();
end;

procedure TfrmTabSheet.lblEditerstellung;
begin
  LblEdit:= TLabeledEdit.Create(self);
  LblEdit.Parent:= pnllbledit;
  LblEdit.EditLabel.Caption:= frmMain.ADOQry.Fields[4].AsString;
  LblEdit.LabelPosition:= lpLeft;
  LblEdit.Text:= '';
  LblEdit.Top:= top;
  LblEdit.Left:= left + length;
  LblEdit.Height:= height;
  top:= top + 20;
  counterlblEdit:= counterlblEdit + 1;
  frmMain.ADOQry.next;
end;

procedure TfrmTabSheet.Sheeterstellung(AktuSpzahl: integer);
begin
  Sheet:= TTabSheet.Create(PageControl);
  Sheet.Parent:= PageControl;
  Sheet.Caption:= frmMain.ProcedureNamen[AktuSpzahl];
  frmMemo.Tabsheeterstellt(Sheet.Caption);
  Sheet.PageControl:= PageControl;
end;

procedure TfrmTabSheet.Griderstellung;
begin
  grid:= TStringgrid.create(self);
  grid.Parent:= pnlgrid;
  grid.Left:= 0;
  grid.RowCount:= 2;
  grid.DefaultRowHeight:=15;
  grid.ColCount:= 2;
  grid.DefaultColWidth:= 60;
  grid.ColWidths[0]:= 15;
  grid.Align:= alClient;
end;

procedure TfrmTabSheet.pnlerstellunglbledit;
begin
  pnllbledit:= TPanel.Create(self);
  pnllbledit.Parent:= Sheet;
  pnllbledit.Left:= 0;
  pnllbledit.Width:= 350;
  pnllbledit.Align:= alLeft;
end;

procedure TfrmTabSheet.pnlerstellungGrid;
begin
  pnlgrid:= TPanel.Create(self);
  pnlgrid.Parent:= Sheet;
  pnlgrid.Left:= 350;
  pnlgrid.Align:= alClient;
end;
procedure TfrmTabSheet.Excecutebtnerstellung;
begin
  excecbtn:= TButton.Create(self);
  excecbtn.Parent:= pnllbledit;
  excecbtn.Caption:= 'Excecute SP';
  excecbtn.Top:= top + 30;
  excecbtn.Left:= length+left;
end;

end.
Miniaturansicht angehängter Grafiken
spviewer2_138.jpg  
Blub ich bin die Sig.
  Mit Zitat antworten Zitat