Thema: Delphi Fenster dynamisch

Einzelnen Beitrag anzeigen

Willie1

Registriert seit: 28. Mai 2008
618 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Fenster dynamisch

  Alt 22. Feb 2021, 18:16
Hallo Delphianer*innen,
ich will der TZipFile-class noch eine Methode hinzufügen. Der Anwender wählt ein Archiv aus, dann öffnet sich ein kleines Fenster mit einer ListBox, welches die im Archiv enthaltenen Dateien anzeigt. Der Anwender kann eine Datei auswählen. Das habe ich fertig und in der Test-Umgebung läuft es gut. Aber sicher ist sicher. Ich habe noch kein dynamisches Fenster ohne Parent gebaut.
Delphi-Quellcode:
procedure AuswahlDlg(Filelist: TStringList; out Filename: string);
var
  dlgAuswahl: TForm;
  LB: TListBox;
  btnOk, btnCancel: TButton;
  Lbl: TLabel;
begin
  dlgAuswahl := TForm.Create(nil);
  dlgAuswahl.SetBounds(100,100,300,150);
  dlgAuswahl.Caption := 'aus Archiv auswählen';
  dlgAuswahl.BorderStyle := bsDialog;
  dlgAuswahl.BorderIcons := [biSystemMenu];
  dlgAuswahl.Position := poScreenCenter;
  dlgAuswahl.Color := clMoneyGreen;
  LB := TListBox.Create(dlgAuswahl);
  LB.Parent := dlgAuswahl;
  LB.Items.Assign(FileList);
  LB.ItemIndex := 0;
  LB.SetBounds(20, 20, 120, 58);
  btnOk := TButton.Create(dlgAuswahl);
  btnCancel := TButton.Create(dlgAuswahl);;
  btnOk.Parent := dlgAuswahl; btnCancel.Parent := dlgAuswahl;
  btnOk.Left := 150; btnOk.Top := 20;
  btnCancel.Left := 150; btnCancel.Top := 55;
  btnCancel.Cancel := true;
  btnOk.ModalResult := mrOk; btnCancel.ModalResult := mrCancel;
  Lbl := TLabel.Create(dlgAuswahl);
  Lbl.Parent := dlgAuswahl;
  Lbl.Left := 20; Lbl.Top := 90;
  Lbl.Caption := FileList.Count.ToString;
  btnOk.Caption := 'Übernehmen'; btnCancel.Caption :='Verwerfen';
  Filename := '';
  if dlgAuswahl.ShowModal = mrOK then begin
    Filename := FileList[LB.ItemIndex];
  end;
  LB.Destroy;
  Lbl.Destroy;
  btnOk.Destroy; btnCancel.Destroy;
  dlgAuswahl.Destroy;
end;
Kann ich das in die class TZipFile einbauen, ohne das mir da was um die Ohren fliegt. Ich will die Datei anschließend im Temp-Ordner auspacken. Das direkte Übernehmen krieg ich nicht hin, war hier lange Thema. Den TypeCast von TByte zu einer komplizierten Record-Struktur schaffe ich nicht.
Danke und Gruß
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat