Solved

Change filename in TSaveDialog

Posted on 2000-02-28
14
499 Views
Last Modified: 2010-04-04
Hi

How do I change the visible filename in a savedialog, the reason to do this is that if you have two filters and select a new one should the filename change its extension to the selected filter (like MS Office).
This also happends when the user click ok but not visible to the user.
0
Comment
Question by:koger
  • 4
  • 2
  • 2
  • +6
14 Comments
 
LVL 8

Expert Comment

by:ZifNab
ID: 2565038
Hi,

Look at OnSelectionChange.

Occurs when the file types displayed in the dialog are changed.

property OnSelectionChange: TNotifyEvent;

Description

The OnTypeChange event occurs when the user selects a new filter from the Files of Type list box at the bottom of the dialog.

Regards, Zif
0
 

Author Comment

by:koger
ID: 2565081
Ok I know this but, how to actually change the visible filename
0
 

Expert Comment

by:Freaky
ID: 2565152
Don't understand what's your problem.
0
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
LVL 27

Expert Comment

by:kretzschmar
ID: 2565167
hi koger,

did you adjusted the filterproperty like
Textfiles|*.txt|Docfiles|*.doc
?

meikl
0
 

Author Comment

by:koger
ID: 2565242
Year I know how to use the filter allright :-)

Try this start the TSaveDialog enter a filename change the filter then the filename will have a the selected extension in MS Office, then try the same think in Delphi the filename doesn't change.
0
 
LVL 6

Expert Comment

by:Jaymol
ID: 2565268
I would have thought this wasn't a problem.  If you just type a filename, it doesn't show the extension anyway.  If you type the extension yourself, then it's your own fault for being daft!  The only way to get the dialog to perform in this way is to create your own.  

John.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 2565274
? well, then i would do what zif already suggested, use the event OnTypeChange to append the new suffix, if filename is not empty
0
 
LVL 6

Expert Comment

by:Jaymol
ID: 2565298
That will work.
0
 

Author Comment

by:koger
ID: 2565337
AFAIK the tsavedialog.filename gets updated fine. I just wanted to make it foolproof, but no can do or so it seeems.
0
 
LVL 3

Expert Comment

by:sburck
ID: 2565517
Unfortunately, from the Help file:

"Programmatic changes to FileName have no effect while the dialog is active."

To do this while the dialog box is active (a live change, like in office), you'll have to modify the dialog source itself, or use a third party dialog box.
0
 
LVL 5

Expert Comment

by:TheNeil
ID: 2565830
Or you could write your own using the components on the Win 3.1 component palette

The Neil
0
 
LVL 10

Expert Comment

by:ptmcomp
ID: 2570227
Could you use another OpenDialog (an ActiveX)? There was also the possibility of an window hook of the dialog...
0
 

Accepted Solution

by:
cAkk earned 50 total points
ID: 2578603
First:
you can get dialog's handle at savedialog.OnShow
using savedialog.handle.

then:

 hParent:=getparent(savedialog.handle);
  hEdit:= FindWindowEx(hParent, 0, 'Edit',nil);

now, hEdit is the Editbox's handle.

you can set it's text by using the handle.
0
 

Author Comment

by:koger
ID: 2633976
And for all you others you can change the text with

SendMessage(hEdit,WM_SETTEXT,0,integer(PChar('text')));
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question