Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SaveDialog auswerten? (https://www.delphipraxis.net/52805-savedialog-auswerten.html)

neptuntriton 21. Mär 2011 16:03

AW: SaveDialog auswerten?
 
Also das ist ein Bug in der Implementierung.

Ich hab mir mit einem WorkAround geholfen. Ich Hänge eine Prozedur in dass OnTypeChange Event des Dialogs ein. Zu diesem Zeitpunkt stimmt der Index nämlich noch. Dann merke ich mir den Index indem ich ihn in "den" Tag befördere.

siehe Quellcode

Delphi-Quellcode:

// zunächst der Handler er speichert den echten Index einfach in der Tag Variablen zwischen
procedure TMainGUI.ReactOnTypeChange(Sender: TObject);
begin
  if Sender is TFileSaveDialog then begin
    TFileSaveDialog(Sender).Tag := TFileSaveDialog(Sender).FileTypeIndex;
  end;
end;


procedure TMainGUI.Messdatenspeichern1Click(Sender: TObject);
var
  LocSaveDialog : TFileSaveDialog;
  AFileTypeItem : TFileTypeItem;
begin
  LocSaveDialog        := TFileSaveDialog.Create(Self);
  with LocSaveDialog do begin
    OnTypeChange := ReactOnTypeChange;

    AFileTypeItem := FileTypes.Add;
    with AFileTypeItem do begin
      DisplayName := 'OpenDocumentSpreadSheet';
      FileMask   := '*.ods';
    end;

    AFileTypeItem := FileTypes.Add;
    with AFileTypeItem do begin
      DisplayName := 'CommaSeparatedValue';
      FileMask   := '*.csv';
    end;

    if Execute then begin
      // Old Code
      // case FileTypeIndex of
      // New Code
      case LocSaveDialog.Tag of
      1 : begin
         ...
         end;
      2 : begin
         ...
         end;
      end;
    end;
  end;
end;
Hack the planet

Neppi


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.
Seite 3 von 3     123   

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