Skip to content

Commit 33c29f4

Browse files
committed
Updates
1 parent 11246b9 commit 33c29f4

File tree

3 files changed

+54
-20
lines changed

3 files changed

+54
-20
lines changed

rtbinsrcfm.lfm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
object Form1: TForm1
2-
Left = 513
2+
Left = 502
33
Height = 560
4-
Top = 401
4+
Top = 400
55
Width = 858
66
BorderIcons = [biSystemMenu, biMinimize]
77
BorderStyle = bsDialog

rtbinsrcfm.pas

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface
99
LazFileUtils, SpinEx,rtcodegen;
1010

1111
Const
12-
ProgramName = 'RtBinSrc v1.1 By RetroNick - Released May 9 - 2023';
12+
ProgramName = 'RtBinSrc v1.2 By RetroNick - Released May 19 - 2023';
1313

1414
type
1515

@@ -52,6 +52,7 @@ TForm1 = class(TForm)
5252
Lan : integer;
5353
Format : integer;
5454
NumType : integer;
55+
Processing : boolean;
5556

5657
procedure SetBasicTypes;
5758
procedure SetGWBasicTypes;
@@ -122,11 +123,17 @@ procedure TForm1.SaveAsClick(Sender: TObject);
122123
procedure FMemoAppend(msg : string);
123124
begin
124125
Form1.MemoWithCode.Append(msg);
126+
if (Form1.CG.LineCount Mod 50) = 0 then
127+
begin
128+
Form1.InfoLabel.Caption:='Imported '+IntToStr(Form1.CG.LineCount)+' Lines';
129+
Application.ProcessMessages;
130+
end;
125131
end;
126132

127133
procedure TForm1.FormCreate(Sender: TObject);
128134
begin
129135
Caption:=ProgramName;
136+
Processing:=False;
130137
SetBasicTypes;
131138
CGInit(CG);
132139
CGSetLineNumber(CG,LineStartSpinEdit.Value,LineStepsSpinEdit.Value);
@@ -137,12 +144,26 @@ procedure TForm1.ImportClick(Sender: TObject);
137144
var
138145
error : word;
139146
begin
147+
if Processing then
148+
begin
149+
//ShowMessage('Processing Previous Import');
150+
//InfoLabel.Caption:='Import Canceled';
151+
Import.Caption:='Import'; //rename cancel back to import
152+
CGSetImportStatus(CG,FALSE);
153+
Processing:=FALSE;
154+
exit;
155+
end;
156+
140157
if EditArrayName.Text='' then
141158
begin
142159
ShowMessage('Array Name Field Cannot be blank');
143160
exit;
144161
end;
162+
163+
Import.Caption:='Cancel'; //rename import button to cancel
164+
Processing:=True;
145165
CGReset(CG);
166+
//CGSetImportStatus(CG,TRUE);
146167
CGSetIndent(CG,indentSpinedit.Value);
147168
CGSetValuesPerLine(CG,ItemsPerLineSpinEdit.Value);
148169
InfoLabel.Caption:='';
@@ -156,14 +177,19 @@ procedure TForm1.ImportClick(Sender: TObject);
156177
if error<>0 then
157178
begin
158179
ShowMessage('Error Importing File ');
159-
exit;
180+
end
181+
else
182+
begin
183+
if CG.ImportStatus then InfoLabel.Caption:='File Imported Successfully' else InfoLabel.Caption:='File Import Canceled';
160184
end;
161-
162-
InfoLabel.Caption:='File Imported';
185+
Processing:=False;
186+
Import.Caption:='Import'; //rename cancel back to import
163187
end;
164188

165189
procedure TForm1.InFileClick(Sender: TObject);
166190
begin
191+
if Processing then exit;
192+
167193
// OpenDialog.Filter := 'Windows BMP|*.bmp|PNG|*.png|PC Paintbrush |*.pcx|DP-Amiga IFF LBM|*.lbm|DP-Amiga IFF BBM Brush|*.bbm|GIF|*.gif|RM RAW Files|*.raw|All Files|*.*';
168194
if OpenDialog.Execute then
169195
begin
@@ -176,6 +202,7 @@ procedure TForm1.InFileClick(Sender: TObject);
176202

177203
procedure TForm1.LanRadioGroupClick(Sender: TObject);
178204
begin
205+
if Processing then exit;
179206
case LanRadioGroup.ItemIndex of 0:SetBasicTypes;
180207
1:SetGWBasicTypes;
181208
2:SetCTypes;
@@ -185,11 +212,11 @@ procedure TForm1.LanRadioGroupClick(Sender: TObject);
185212

186213
procedure TForm1.CopyToClipboardClick(Sender: TObject);
187214
begin
215+
if Processing then exit;
188216
MemoWithCode.SelectAll;
189217
MemoWithCode.CopyToClipboard;
190218
MemoWithCode.SelLength:=0;
191219
InfoLabel.Caption:='Code Copied to Clipboard';
192-
193220
end;
194221

195222
procedure TForm1.FormatRadioGroupClick(Sender: TObject);
@@ -223,7 +250,6 @@ procedure TForm1.SetGWBasicTypes;
223250
IndentSpinEdit.Enabled:=false;
224251
LineStartSpinEdit.Enabled:=true;
225252
LineStepsSpinEdit.Enabled:=true;
226-
227253
end;
228254

229255
procedure TForm1.SetPascalTypes;

rtcodegen.pas

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ interface
1717
ValueFormatDecimal = 0;
1818
ValueFormatHex = 1;
1919

20-
21-
22-
2320
c_char_signed = 1;
2421
c_char_unsigned = 2;
2522
c_int_signed = 3;
@@ -54,9 +51,10 @@ interface
5451
LineCount : integer; //line counter
5552
LanId : integer;
5653

57-
LineBufStr : String;
58-
NextLineNumber : integer;
59-
StepNumber : integer;
54+
LineBufStr : String;
55+
NextLineNumber : integer;
56+
StepNumber : integer;
57+
ImportStatus : boolean;
6058

6159
end;
6260

@@ -79,6 +77,8 @@ procedure CGSetMemoProc(MP : MemoProc);
7977
procedure CGWrite(var mc : CodeGenRec ; Msg : string);
8078
procedure CGWriteLn(var mc : CodeGenRec);
8179

80+
procedure CGSetImportStatus(var mc : CodeGenRec;status : boolean);
81+
8282
function ImportBinFile(var mc : CodeGenRec;filename,aname : string;Lan,DataType,nformat : integer) : word;
8383

8484
implementation
@@ -141,6 +141,7 @@ procedure CGInit(var mc : CodeGenRec);
141141
mc.LineBufStr:='';
142142
mc.NextLineNumber:=1000;
143143
mc.StepNumber:=10;
144+
mc.ImportStatus:=TRUE;
144145
CGSetIndent(mc,10);
145146
CGSetIndentOnFirstLine(mc,true);
146147
CGSetValuesPerLine(mc,10);
@@ -153,16 +154,22 @@ procedure CGInit(var mc : CodeGenRec);
153154
//Reset VC and VCL - used for Repeated Imports for GWBASIC
154155
procedure CGReset(var mc : CodeGenRec);
155156
begin
156-
mc.VC:=0;
157-
mc.VCL:=0;
158-
mc.LineCount:=0;
159-
mc.LineBufStr:='';
157+
mc.VC:=0;
158+
mc.VCL:=0;
159+
mc.LineCount:=0;
160+
mc.LineBufStr:='';
161+
mc.ImportStatus:=True;
162+
end;
163+
164+
procedure CGSetImportStatus(var mc : CodeGenRec;status : boolean);
165+
begin
166+
mc.ImportStatus:=Status;
160167
end;
161168

162169
Procedure CGSetLineNumber(var mc : CodeGenRec;Num : integer;StepNum : integer);
163170
begin
164-
mc.NextLineNumber:=Num;
165-
mc.StepNumber:=StepNum;
171+
mc.NextLineNumber:=Num;
172+
mc.StepNumber:=StepNum;
166173
end;
167174

168175
function CGGetGWNextLineNumber(var mc :CodeGenRec) : integer;
@@ -408,6 +415,7 @@ procedure ConvertToCode(var mc : CodeGenRec;aname : string;var data; asize : lon
408415

409416
for i:=0 to asize-1 do
410417
begin
418+
if mc.ImportStatus = FALSE then exit;
411419
Case BitSize of BitSize8:CGWriteNumber(mc,BData[i],DataType);
412420
BitSize16:CGWriteNumber(mc,WData[i],DataType);
413421
BitSize32:CGWriteNumber(mc,LData[i],DataType);

0 commit comments

Comments
 (0)