Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Fenster dynamisch
23. Feb 2021, 07:34
Warum so kompliziert? Du kannst Dein Fenster wie andere auch bequem in der IDE zusammenstöpseln, zur Verwendung brauchst Du dann die *.pas und die *.dfm. Das könnte dann etwa so aussehen:
Delphi-Quellcode:
...
uses AuswahlDialog (* Unit mit dem entworfenen Fenster *);
procedure AuswahlDlg(Filelist: TStringList; out Filename: string);
var
frm: TAuswahlDialogForm;
begin
frm := TAuswahlDialogForm.Create( nil);
try
frm.FileList := FileList; // Files soll als Property von TAuswahlDialogForm deklariert sein
if frm.ShowModal = mrOK then
Filename := frm.Filename; //ebenso wie Filename
finally
frm.Free;
end;
end;
Zu den Properties in TAuswahlDialogForm:
Delphi-Quellcode:
type
TAuswahlDialogForm = class(TForm)
LB: TListBox;
btnOK: TButton;
btnCancel: TButton;
...
private
function GetFileList: TStrings;
procedure SetFileList(const Value: TStrings);
function GetFilename: string;
...
public
property FileList: TStrings read GetFileList write SetFileList;
property Filename: string read GetFilename;
...
end;
...
function TAuswahlDialogForm.GetFileList: TStrings;
begin
Result := LB.Items;
end;
procedure TAuswahlDialogForm.SetFileList(const Value: TStrings);
begin
LB.Items.Assign(Value);
end;
function TAuswahlDialogForm.GetFilename: string;
begin
if LB.ItemIndex > -1 then
Result := LB.Items[LB.ItemIndex]
else
Result := '';
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
Geändert von DeddyH (23. Feb 2021 um 07:59 Uhr)
Grund: Properties gleich benannt und Getter/Setter erweitert
|