@@ -88,6 +88,8 @@ TfrmMain = class(TForm)
88
88
procedure UpdateTree ;
89
89
procedure ShowElement (Sender:TObject; rt: TPascalElement);
90
90
function ReadCCodeFromFile (cfn: string):string;
91
+ procedure GetRangeSource (const text: string; e: TPascalElement; out p1,p2: TBCEditorTextPosition);
92
+ procedure GetRangeRender (const text: string; e: TPascalElement; out p1,p2: TBCEditorTextPosition);
91
93
public
92
94
CFileName:string;
93
95
Pas:WvN.Pascal.Model.TPascalUnit;
@@ -173,19 +175,33 @@ procedure TfrmMain.BCEditor1SelectionChanged(Sender: TObject);
173
175
BCEditor2.Text := pas.toPascal;
174
176
end ;
175
177
178
+ procedure TfrmMain.GetRangeSource (const text: string; e: TPascalElement; out p1,p2: TBCEditorTextPosition);
179
+ begin
180
+ p1 := getPosition(Text, e.Sourceinfo.Position);
181
+ p2 := getPosition(Text, e.Sourceinfo.Position + e.Sourceinfo.Length);
182
+ end ;
183
+
184
+ procedure TfrmMain.GetRangeRender (const text: string; e: TPascalElement; out p1,p2: TBCEditorTextPosition);
185
+ begin
186
+ p1 := getPosition(Text, e.Renderinfo.Position);
187
+ p2 := getPosition(Text, e.Renderinfo.Position + e.Renderinfo.Length);
188
+ end ;
189
+
190
+
176
191
procedure TfrmMain.BCEditor2CaretChanged (ASender: TObject; X, Y: Integer);
177
192
var c:TClassdef;e:TPascalElement;
178
193
p1,p2:tbceditortextposition;
194
+ text:string;
179
195
begin
180
196
StatusBar1.Panels[4 ].Text := Format(' [Line:%d,Col%d]' , [Y,X]);
181
197
if pas=nil then
182
198
Exit;
183
199
200
+ text := BCEDitor2.Text;
184
201
for c in pas.Classes do
185
202
for e in c.Methods do
186
203
begin
187
- p1 := getPosition(BCEDitor2.Text, e.Renderinfo.Position);
188
- p2 := getPosition(BCEDitor2.Text, e.Renderinfo.Position+e.Renderinfo.Length);
204
+ GetRangeRender(text, e, p1, p2);
189
205
if InRange(Y,p1.Line, p2.Line) then
190
206
begin
191
207
ShowElement(ASender,e);
@@ -196,8 +212,7 @@ procedure TfrmMain.BCEditor2CaretChanged(ASender: TObject; X, Y: Integer);
196
212
197
213
for e in pas.GlobalArrays1D do
198
214
begin
199
- p1 := getPosition(BCEDitor2.Text, e.Renderinfo.Position);
200
- p2 := getPosition(BCEDitor2.Text, e.Renderinfo.Position+e.Renderinfo.Length);
215
+ GetRangeRender(text, e, p1, p2);
201
216
if InRange(Y,p1.Line, p2.Line) then
202
217
begin
203
218
ShowElement(ASender,e);
@@ -208,8 +223,7 @@ procedure TfrmMain.BCEditor2CaretChanged(ASender: TObject; X, Y: Integer);
208
223
209
224
for e in pas.GlobalArrays2D do
210
225
begin
211
- p1 := getPosition(BCEDitor2.Text, e.Renderinfo.Position);
212
- p2 := getPosition(BCEDitor2.Text, e.Renderinfo.Position+e.Renderinfo.Length);
226
+ GetRangeRender(text, e, p1, p2);
213
227
if InRange(Y,p1.Line, p2.Line) then
214
228
begin
215
229
ShowElement(ASender,e);
@@ -315,6 +329,7 @@ procedure TfrmMain.Run;
315
329
ListBox1.Items.Add(prog.Msgs.AsInfo);
316
330
end ;
317
331
end ;
332
+
318
333
{ $ELSE}
319
334
procedure TfrmMain.Run ;
320
335
begin
@@ -487,43 +502,40 @@ procedure TfrmMain.actRunExecute(Sender: TObject);
487
502
procedure TfrmMain.BCEditor1CaretChanged (ASender: TObject; X, Y: Integer);
488
503
var c:TClassdef;e:TPascalElement;
489
504
p1,p2:tbceditortextposition;
505
+ text:string;
490
506
begin
491
507
if pas=nil then
492
508
Exit;
493
509
510
+ text := BCEditor1.Text;
511
+
494
512
for c in pas.Classes do
495
513
for e in c.Methods do
496
514
begin
497
- p1 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position);
498
- p2 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position+e.Sourceinfo.Length);
515
+ GetRangeSource(text, e, p1, p2);
499
516
if InRange(Y,p1.Line, p2.Line) then
500
517
begin
501
518
ShowElement(ASender,e);
502
- BCEditor1.Refresh;
503
519
Exit;
504
520
end ;
505
521
end ;
506
522
507
523
for e in pas.GlobalArrays1D do
508
524
begin
509
- p1 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position);
510
- p2 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position+e.Sourceinfo.Length);
525
+ GetRangeSource(text, e, p1, p2);
511
526
if InRange(Y,p1.Line, p2.Line) then
512
527
begin
513
528
ShowElement(ASender,e);
514
- BCEditor1.Refresh;
515
529
Exit;
516
530
end ;
517
531
end ;
518
532
519
533
for e in pas.GlobalArrays2D do
520
534
begin
521
- p1 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position);
522
- p2 := getPosition(BCEDitor1.Text, e.Sourceinfo.Position+e.Sourceinfo.Length);
535
+ GetRangeSource(text, e, p1, p2);
523
536
if InRange(Y,p1.Line, p2.Line) then
524
537
begin
525
538
ShowElement(ASender,e);
526
- BCEditor1.Refresh;
527
539
Exit;
528
540
end ;
529
541
end ;
@@ -537,7 +549,11 @@ procedure TfrmMain.BCEditor1Change(Sender:TObjecT);
537
549
tl := BCEditor2.TopLine;
538
550
c := BCEditor1.Text;
539
551
pas := c_to_pas(c,t,BCEditor1.Hint);
540
- Caption := pas.Name + ' - ' + Application.Title;
552
+
553
+ Caption := Application.Title;
554
+ if Pas.name <> ' ' then
555
+ Caption := pas.Name + ' - ' + Caption;
556
+
541
557
UpdateTree;
542
558
543
559
BCEditor2.Text := pas.toPascal;
0 commit comments