Subversion Repositories fastphp

Compare Revisions

Regard whitespace Rev 44 → Rev 45

/trunk/EditorMain.dfm
61,10 → 61,6
object HtmlTabSheet: TTabSheet
Caption = 'HTML'
ImageIndex = 1
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object WebBrowser1: TWebBrowser
Left = 0
Top = 0
182,10 → 178,6
object HelpTabsheet: TTabSheet
Caption = 'Help'
ImageIndex = 1
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object WebBrowser2: TWebBrowser
Left = 0
Top = 0
226,6 → 218,7
Width = 75
Height = 35
Action = ActionRun
PopupMenu = RunPopup
TabOrder = 0
end
object Button2: TButton
348,12 → 341,12
Enabled = False
Interval = 500
OnTimer = SynEditFocusTimerTimer
Left = 668
Left = 692
Top = 249
end
object ActionList: TActionList
Left = 252
Top = 276
Left = 132
Top = 252
object ActionFind: TAction
Caption = 'Find'
ShortCut = 16454
394,6 → 387,11
ShortCut = 120
OnExecute = ActionRunExecute
end
object ActionRunConsole: TAction
Caption = 'Run in console'
ShortCut = 8312
OnExecute = ActionRunConsoleExecute
end
object ActionESC: TAction
Caption = 'Esc'
ShortCut = 27
421,11 → 419,22
Top = 8
end
object SynEditSearch1: TSynEditSearch
Left = 780
Top = 236
Left = 788
Top = 252
end
object ImageList1: TImageList
Left = 92
Top = 180
end
object RunPopup: TPopupMenu
Left = 60
Top = 4
object OpeninIDE1: TMenuItem
Action = ActionRun
Default = True
end
object Runinconsole1: TMenuItem
Action = ActionRunConsole
end
end
end
/trunk/EditorMain.pas
33,8 → 33,9
// TODO: "{$IFDEF USE_SHDOCVW_TLB}_TLB{$ENDIF}" does not work with Delphi 10.2
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, ComCtrls, ExtCtrls, ToolWin, IniFiles,
SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw, FindReplace,
ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode;
SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw_TLB, FindReplace,
ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode,
System.ImageList, System.Actions, Vcl.Menus;
 
{.$DEFINE OnlineHelp}
 
86,7 → 87,12
btnLint: TButton;
ActionLint: TAction;
ImageList1: TImageList;
RunPopup: TPopupMenu;
OpeninIDE1: TMenuItem;
ActionRunConsole: TAction;
Runinconsole1: TMenuItem;
procedure Run(Sender: TObject);
procedure RunConsole(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
93,15 → 99,19
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PageControl2Changing(Sender: TObject; var AllowChange: Boolean);
procedure Memo2DblClick(Sender: TObject);
(*
{$IFDEF USE_SHDOCVW_TLB}
*)
procedure WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
(*
{$ELSE}
procedure WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
{$ENDIF}
*)
procedure BeforeNavigate(const URL: OleVariant; var Cancel: WordBool);
procedure SynEditFocusTimerTimer(Sender: TObject);
procedure ActionFindExecute(Sender: TObject);
130,6 → 140,7
procedure SynEdit1PaintTransient(Sender: TObject; Canvas: TCanvas;
TransientType: TTransientType);
procedure ActionLintExecute(Sender: TObject);
procedure ActionRunConsoleExecute(Sender: TObject);
private
CurSearchTerm: string;
HlpPrevPageIndex: integer;
222,6 → 233,12
SrcRep.ReplaceExecute;
end;
 
procedure TForm1.ActionRunConsoleExecute(Sender: TObject);
begin
RunConsole(Sender);
SynEdit1.SetFocus;
end;
 
procedure TForm1.ActionRunExecute(Sender: TObject);
begin
Run(Sender);
375,7 → 392,7
try
SynEdit1.Lines.SaveToFile(GetScrapFile);
 
memo2.Lines.Text := RunPHPScript(GetScrapFile, Sender=ActionLint);
memo2.Lines.Text := RunPHPScript(GetScrapFile, Sender=ActionLint, False);
 
Webbrowser1.LoadHTML(MarkUpLineReference(memo2.Lines.Text), GetScrapFile);
 
388,6 → 405,12
end;
end;
 
procedure TForm1.RunConsole(Sender: TObject);
begin
SynEdit1.Lines.SaveToFile(GetScrapFile);
RunPHPScript(GetScrapFile, Sender=ActionLint, True);
end;
 
procedure TForm1.SynEdit1GutterClick(Sender: TObject; Button: TMouseButton; X,
Y, Line: Integer; Mark: TSynEditMark);
begin
613,7 → 636,9
if lineNo > 0 then GotoLineNo(lineNo);
end;
 
(*
{$IFDEF USE_SHDOCVW_TLB}
*)
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
620,6 → 645,7
begin
BeforeNavigate(URL, Cancel);
end;
(*
{$ELSE}
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
628,6 → 654,7
BeforeNavigate(URL, Cancel);
end;
{$ENDIF}
*)
 
procedure TForm1.BeforeNavigate(const URL: OleVariant; var Cancel: WordBool);
var
/trunk/FastPHPGroup2007.groupproj
2,19 → 2,34
<PropertyGroup>
<ProjectGuid>{35ff4d02-4529-4083-ad0a-8a9cebfd02e0}</ProjectGuid>
</PropertyGroup>
<ItemGroup />
<ItemGroup>
<Projects Include="FastPHPBrowser.dproj" />
<Projects Include="FastPHPEditor.dproj" />
<Projects Include="FastPHPEditor.dproj">
<Dependencies/>
</Projects>
<Projects Include="FastPHPBrowser.dproj">
<Dependencies/>
</Projects>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Default.Personality</Borland.Personality>
<Borland.Personality>Default.Personality.12</Borland.Personality>
<Borland.ProjectType />
<BorlandProject>
<BorlandProject xmlns=""> <Default.Personality> </Default.Personality> </BorlandProject></BorlandProject>
<BorlandProject>
<Default.Personality/>
</BorlandProject>
</BorlandProject>
</ProjectExtensions>
<Target Name="FastPHPEditor">
<MSBuild Projects="FastPHPEditor.dproj"/>
</Target>
<Target Name="FastPHPEditor:Clean">
<MSBuild Projects="FastPHPEditor.dproj" Targets="Clean"/>
</Target>
<Target Name="FastPHPEditor:Make">
<MSBuild Projects="FastPHPEditor.dproj" Targets="Make"/>
</Target>
<Target Name="FastPHPBrowser">
<MSBuild Projects="FastPHPBrowser.dproj" Targets="" />
<MSBuild Projects="FastPHPBrowser.dproj"/>
</Target>
<Target Name="FastPHPBrowser:Clean">
<MSBuild Projects="FastPHPBrowser.dproj" Targets="Clean" />
22,23 → 37,14
<Target Name="FastPHPBrowser:Make">
<MSBuild Projects="FastPHPBrowser.dproj" Targets="Make" />
</Target>
<Target Name="FastPHPEditor">
<MSBuild Projects="FastPHPEditor.dproj" Targets="" />
</Target>
<Target Name="FastPHPEditor:Clean">
<MSBuild Projects="FastPHPEditor.dproj" Targets="Clean" />
</Target>
<Target Name="FastPHPEditor:Make">
<MSBuild Projects="FastPHPEditor.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="FastPHPBrowser;FastPHPEditor" />
<CallTarget Targets="FastPHPEditor;FastPHPBrowser"/>
</Target>
<Target Name="Clean">
<CallTarget Targets="FastPHPBrowser:Clean;FastPHPEditor:Clean" />
<CallTarget Targets="FastPHPEditor:Clean;FastPHPBrowser:Clean"/>
</Target>
<Target Name="Make">
<CallTarget Targets="FastPHPBrowser:Make;FastPHPEditor:Make" />
<CallTarget Targets="FastPHPEditor:Make;FastPHPBrowser:Make"/>
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
</Project>
/trunk/FastPHPUtils.pas
3,7 → 3,7
interface
 
uses
Windows, SysUtils, StrUtils, Dialogs, IniFiles, Classes, Forms;
Windows, SysUtils, StrUtils, Dialogs, IniFiles, Classes, Forms, ShellAPI;
 
const
FASTPHP_GOTO_URI_PREFIX = 'fastphp://editor/gotoline/';
10,7 → 10,7
 
function FastPHPConfig: TMemIniFile;
function GetPHPExe: string;
function RunPHPScript(APHPFileName: string; lint: boolean=false): string;
function RunPHPScript(APHPFileName: string; lint: boolean=false; inConsole: boolean=False): string;
function ParseCHM(const chmFile: TFileName): boolean;
function IsValidPHPExe(const exeFile: TFileName): boolean;
 
64,18 → 64,48
end;
end;
 
function RunPHPScript(APHPFileName: string; lint: boolean=false): string;
function RunPHPScript(APHPFileName: string; lint: boolean=false; inConsole: boolean=False): string;
var
phpExe: string;
phpExe, args, batFile, workdir: string;
slBat: TStringList;
begin
phpExe := GetPHPExe;
if phpExe = '' then Abort;
 
if lint then
result := GetDosOutput('"'+phpExe+'" -l "'+APHPFileName+'"', ExtractFileDir(ParamStr(0)))
args := '-l "'+APHPFileName+'"'
else
result := GetDosOutput('"'+phpExe+'" -f "'+APHPFileName+'"', ExtractFileDir(ParamStr(0)));
args := '-f "'+APHPFileName+'"';
 
//workdir := ExtractFileDir(ParamStr(0));
workdir := ExtractFileDir(APHPFileName);
 
if inConsole then
begin
(*
ShellExecute(0, 'open', PChar(phpExe), PChar(args), PChar(workdir), SW_NORMAL);
*)
batFile := IncludeTrailingPathDelimiter(GetTempDir) + 'RunFastPHP.bat';
slBat := TStringList.Create;
try
slBat.Add('@echo off');
slBat.Add('cd /d "'+workdir+'"');
slBat.Add('"'+phpExe+'" ' + args);
slBat.Add('pause.');
slBat.SaveToFile(batFile);
ShellExecute(0, 'open', PChar(batFile), '', '', SW_NORMAL);
finally
slBat.Free;
end;
 
result := '';
end
else
begin
result := GetDosOutput('"'+phpExe+'" ' + args, workdir);
end;
end;
 
function ParseCHM(const chmFile: TFileName): boolean;
var
test, candidate, candidate2: string;
/trunk/Functions.pas
16,6 → 16,7
function MyVarToStr(v: Variant): string;
function FileSystemCaseSensitive: boolean;
function HighColorWindows: boolean;
function GetTempDir: string;
 
implementation
 
282,4 → 283,20
((dwMajorVersion = 6) and (dwMinorVersion <= 1));
end;
 
function GetTempDir: string;
var
Dir: string;
Len: DWord;
begin
SetLength(Dir,MAX_PATH);
Len:=GetTempPath(MAX_PATH, PChar(Dir));
if Len>0 then
begin
SetLength(Dir,Len);
Result:=Dir;
end
else
RaiseLastOSError;
end;
 
end.
/trunk/WebBrowserUtils.pas
5,7 → 5,8
interface
 
uses
Windows, {$IFDEF USE_SHDOCVW_TLB}ShDocVw_TLB{$ELSE}ShDocVw{$ENDIF}, SysUtils, Forms;
// TODO: "{$IFDEF USE_SHDOCVW_TLB}ShDocVw_TLB{$ELSE}ShDocVw{$ENDIF}" does not work with Delphi 10.2
Windows, ShDocVw_TLB, SysUtils, Forms;
 
procedure WaitForBrowser(AWebBrowser: TWebbrowser);