Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   AV beim Schliessen von Form mit ShellListview (https://www.delphipraxis.net/90564-av-beim-schliessen-von-form-mit-shelllistview.html)

Luckie 19. Apr 2007 16:46

Re: AV beim Schliessen von Form mit ShellListview
 
Gegen einen Windowsstandarddialog spricht, dass ich nochmindestens zwei zusätzliche Eingabefelder brauche. Und bevor ich mich da hinsetze und an dem standard Dialog rumfrickele, dachte ichmir, bin ich schneller, wenn ich mir schnell selber was mit den ShellControls zusammenklicke.

ChrisE 19. Apr 2007 17:05

Re: AV beim Schliessen von Form mit ShellListview
 
Nur mal so ins Blau geraten,

der btnOK is Defaultbutton und hat Modalresult OK -> Ergo er schließt beim Click das From selbstständig. Dadurch könnte es sein, dass SelectedFolder (da ShellListView nicht mehr den Focus hat) nil wird. Versuche mal folgendes, ich glaube ich hatte so ein Problem auch schon mal.

btnOK nicht Default und kein Modalresult
Methode von btnOK wie in deinem Quelltext ganz normal ausführen aber am Schluss:
Delphi-Quellcode:
Self.Close;
Self.ModalResult := mrOK;
Vielleicht hilft es ja.

Gruß, Chris

[Edit] Rechtschreibfehler :wall: [/EDIT]

Luckie 20. Apr 2007 10:08

Re: AV beim Schliessen von Form mit ShellListview
 
Hallo,
das könnte tatsächlich der Grund sein. Ichhabe es jetzt anders gelöst:
Delphi-Quellcode:
procedure TfrmSaveTemplate.btnOKClick(Sender: TObject);
begin
  FAuthor := edtAuthor.Text;
  FDescription := memDescription.Text;
  FFilename := FPath + '\' + edtFile.Text;
end;

procedure TfrmSaveTemplate.edtFileChange(Sender: TObject);
begin
  btnOK.Enabled := edtFile.Text <> '';
end;

function TfrmSaveTemplate.Execute: Boolean;
begin
  Result := Self.ShowModal = mrOK;
end;

procedure TfrmSaveTemplate.FormCreate(Sender: TObject);
begin
  btnOK.Enabled := edtFile.Text <> '';
end;

procedure TfrmSaveTemplate.ShellListView1Click(Sender: TObject);
begin
  if ShellListView1.ItemIndex > -1 then
  begin
    if ShellListview1.SelectedFolder.IsFolder then
      FPath := ShellListview1.SelectedFolder.PathName
    else
      edtFile.Text := ShellListview1.SelectedFolder.DisplayName;
  end;
end;
Und das funktioniert soweit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz