Ja ich habe die Procedur noch leicht geändert, denn es können ja auch x Memofelder in einem Dataset vorhanden sein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| If Feldtype = ftMemo then
begin
Button := TButton.Create(Self);
with Button do
begin
Parent := FRM_Main;
Caption:='Zeige Memo';
Width := 150;
Left := Feld.Left + 150;
Top := Feld.Top;
Name := 'Button_' + IntToStr(i);
OnClick := ButtonClicK;
end;
end; |
Bei einem Klick auf einen der Buttons wird immer die gleiche Routine aufgerufen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TFRM_Main.ButtonClick(Sender: tobject); begin
FRM_Memo.ShowModal;
end; |
Und nicht vergessen beim Wechsel vom Formularmodus in den Tabellenmodus alle dynamisch erzeugten Kompos wieder zu entfernen !
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| procedure TFRM_Main.form_clear;
var I : Integer;
var DBLabel : TLabel; var Feld : TDBEdit; var Button : TButton;
begin
If Tabelle.Active then
begin
for i := 0 to Tabelle.FieldCount -1 do
begin
Feld := TDBEdit(FindComponent('Feld_' + IntToStr(i)));
Feld.Free;
DBLabel := TLabel(FindComponent('Label_' + IntToStr(i)));
DBLabel.Free;
Button := TButton(FindComponent('Button_' + IntToStr(i)));
Button.Free;
end;
end;
end; |
Aber das ist ja wirklich erst die halbe Miete, denn wie kann ich den Feldnamen des Memofeldes an das Formular
FRM_Memo.ShowModal übergeben, so das immer der Inhalt des richtigen Memofeldes angezeigt wird, denn es können ja mehrere Memofelder vorhanden sein ! Ja, ich bin im Augenblick im Lernmodus, aber spannend ist es allemal.
Danke an Alle, die mir bisher weitergeholfen haben.
Ralli