[fpc-pascal] Windows programming tutorials for FPC
James
james at productionautomation.net
Sat Nov 3 15:00:21 CET 2018
That is correct, I have only ever done console programming, but now I find I'm lost trying to do any kind of GUI programming. I have a very simple program that works as a console application, but what I would like to do is have it use the Windows "Save AS' Dialog to allow the user to save the file using the windows GUI interface, so the user can navigate through directory structures and save the file.
I looked at a few tutorials and see how to make a form and put some buttons on it, but I'm still trying to figure out how to get the save-as box to come up and how to then use the given file name and path in the program for the actual write operation.. Here’s my console program.. it’s pretty simple, but I really don’t know where to even start to convert it into a GUI program. On line 51, if the output file has not been defined yet, I want to launch the save-as dialog, then on line 54, assign whatever save-as returns to my OutputFileName Variable.
Program JobsList;
Uses CRT,Classes,Sysutils;
Var
TapFileRemainder,TapFileHeader,TapFileJobsList : tstrings;
TapFileName,TapFileData,OutputTapFileName : String;
TapFile : Text;
TapFileHeaderActive : Boolean;
StringCount : LongInt;
Begin
If ParamStr(1)<>'' Then
Begin
TapFileName:=ParamStr(1);
If FileExists(TapFileName) Then
Begin
TapFileHeaderActive:=True;
Assign(TapFile,TapFileName);
Reset(TapFile);
TapfileHeader:=TStringlist.Create;
TapfileJobsList:=TStringlist.Create;
TapfileRemainder:=TStringlist.Create;
While not(EOF(TapFile)) do
Begin
Readln(Tapfile,TapFileData);
If TapfileHeaderActive then
Begin
If TapFileData='Call [Subroutines]' Then
Begin
Writeln('Subroutine Section Found');
TapFileHeaderActive:=False
End
Else
If Copy(TapFileData,1,15)='Tap File Name =' Then
Begin
OutputTapFileName:=Copy(TapFileData,16,Length(TapFileData)-15);
Writeln('Saving to: '+OutputTapFileName);
End
Else
TapfileHeader.Add(TapFileData)
End
Else
Begin
If Copy(TapFileData,1,6)='[Job #' Then
Begin
Writeln(TapFileData);
TapFileJobsList.Add('Call '+TapFileData);
End;
TapfileRemainder.Add(TapFileData)
End;
End;
Close(TapFile);
If OutputTapFileName='' Then
Begin
{Do something to get filename from windows Save-As dialog}
OutputTapFileName:= Whatever-was-received-by-Windows-Save-As-dialog;
End;
If OutputTapFileName<>'' Then
Begin
Writeln('Writing ',TapFileHeader.count+TapFileJobsList.count+TapFileRemainder.count,' Lines to: '+OutputTapFileName);
Assign(TapFile,OutputTapFileName);
ReWrite(TapFile);
If TapFileHeader.count > 1 then
For StringCount:=0 to TapFileHeader.count-1 do
Writeln(TapFile,TapFileHeader[StringCount]);
If TapFileJobsList.count > 1 then
For StringCount:=0 to TapFileJobsList.count-1 do
Writeln(TapFile,TapFileJobsList[StringCount]);
If TapFileRemainder.count > 1 then
For StringCount:=0 to TapFileRemainder.count-1 do
Writeln(TapFile,TapFileRemainder[StringCount]);
Close(TapFile);
End
Else
Begin
Writeln ('No Output Tap File Specified in Program');
Readln;
End;
TapFileHeader.Free;
TapFileJobsList.Free;
TapFileRemainder.Free;
End
Else
Begin
Writeln (TapFileName,' Not Found');
Readln;
End;
End
Else
Begin
Writeln ('No File Name Specified');
Readln;
End;
End.
James
-----Original Message-----
From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org> On Behalf Of Tomas Hajny
Sent: Friday, November 2, 2018 8:16 PM
To: bo.berglund at gmail.com; FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org>
Subject: Re: [fpc-pascal] Windows programming tutorials for FPC
On Sat, November 3, 2018 00:00, Bo Berglund wrote:
> On Fri, 2 Nov 2018 06:13:40 -0400, "James"
> < <mailto:james at productionautomation.net> james at productionautomation.net> wrote:
>
>>I am wondering if there are any tutorials out there, hopefully
>>specific to Freepascal and/or Lazarus.
>>I need really basic stuff like how to open a message box, or how to
>>use windows file open, or save-as dialog boxes.. etc.. even a hello
>>world tutorial would be helpful...
>>ok, so ZERO windows programming experience here... Any advice on where
>> to start?
>
> What did the programs you say you have written for so long do?
> Seems hard to believe you have not encountered reading and writing
> files etc.
.
.
The original poster mentioned not having used GUI dialog boxes for file selection; I'm pretty sure reading and writing files is no problem for him.
Tomas
_______________________________________________
fpc-pascal maillist - <mailto:fpc-pascal at lists.freepascal.org> fpc-pascal at lists.freepascal.org <http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181103/5b2d569c/attachment.html>
More information about the fpc-pascal
mailing list