Delphi-PRAXiS

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/)
-   -   Delphi Eingabe Dialog (https://www.delphipraxis.net/52516-eingabe-dialog.html)

LoL 30. Aug 2005 10:48


Eingabe Dialog
 
Hi,

es geht um folgendes:
Ich möchte ein Dialog in dem man einen Dateinamen eingeben kann. Dazu noch ein Ok sowie abbrechen Button.
Delphi bietet dazu zb eine Inputbox an. Den Savedialog will ich nicht verwenden da der Benutzer den Pfad nicht aussuchen darf. Mein Problem ist nun das ich einige Zeichen in dem Eingabefeld für den Dateinamen verbieten will, da ja bekanntlicherweis einige Zeichen in einem Dateinamen verboten sind!
Gibt es dafür eine einfach Lösung ohne gleich ein Komplett neues Form per Hand zu erstellen?

Aenogym 30. Aug 2005 11:21

Re: Eingabe Dialog
 
hi,

entweder du nimmst die inputBox und prüfst dann erst, ob ein legaler dateiname eingegeben wurde.
oder du machst dir ein neues formular, bastelst alles, wie du es da möchtest und rufst das schließlich per ShowModal() auf.
ich würde letzteres bevorzugen ;)

aenogym

LoL 30. Aug 2005 11:40

Re: Eingabe Dialog
 
So hab ich mich nun mit Mützes hilfe auch entschieden Vielen dank!

Delphi-Quellcode:
unit savedlg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TSaveDlg = class(TForm)
    btbtn_ok: TBitBtn;
    btbtn_cancel: TBitBtn;
    lbl_filename: TLabel;
    ed_filename: TEdit;
    procedure btbtn_okClick(Sender: TObject);
    procedure ed_filenameKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    function ShowModal(var AFileName : String): TModalResult; ReIntroduce;
  end;

var
  frm_SaveDlg: TSaveDlg;

implementation

{$R *.dfm}

function TSaveDlg.ShowModal(Var AFileName: String): TModalResult;
begin
  ed_filename.Text := AFileName;

  result := inherited ShowModal;

  if ( Result = mrOk ) then
    AFileName := ed_filename.Text;
end;

procedure TSaveDlg.btbtn_okClick(Sender: TObject);
begin
  If ( Length(Trim(ed_filename.Text)) = 0 ) Then // ok, nix eingegeben oder nur leerzeichen
  Begin
    MessageDlg('Bitte geben Sie einen Dateinamen an!', mtError, [mbOk], 0);
    ed_filename.SetFocus;
    Exit;
  End;
  ModalResult := mrOk;
end;

procedure TSaveDlg.ed_filenameKeyPress(Sender: TObject; var Key: Char);
const
  cValidFileNameKey : set of Char = [#8,#32,#33,#35..#41,#43..#46,#48..#57,#59,#61,#65..#91,#93..#123,#125,#126];
begin
  if not ((Key in cValidFileNameKey)) then Key := #0;
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz