?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, OleCtrls, ComCtrls, CommCtrl, axctrls, ActiveX,
ImgList, ExtCtrls, CodeSense_TLB, TB2Item, TBX, TB2ExtItems, Utils;
type
TForm1 = class(TForm)
SplitteB: TSplitter;
Panel1: TPanel;
Memo1: TMemo;
SplitterL: TSplitter;
SplitterR: TSplitter;
SplitterT: TSplitter;
Label1: TLabel;
Tabs: TPageControl;
First: TTabSheet;
TabPopup: TPopupMenu;
Close1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure _WM_GETMINMAXINFO( var mmInfo : TWMGETMINMAXINFO ); message wm_GetMinMaxInfo;
procedure TabsChange(Sender: TObject);
procedure TabsDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TabsDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure TabsMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormActivate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
DefWinProc : TFarProc;
DefWinProcInstance : Pointer;
// procedure WinProc(var Message: TMessage);
public
{ Public declarations }
end;
var
Form1: TForm1;
CodeSense : array[0..255] of TCodeSense;
CodeSenseCL: TNotifyEvent;
implementation
uses MainUnit;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
VAR
NewFont : TFont;
begin
// CodeSenseClick(IJustGotClicked, CodeSenseCtrl);
// CodeSense1.UpdateControlPositions;
Form1.Panel1.Height := 0;
Form1.Width := 450;
// CodeSense1.Width := 0;
// CodeSense1.Height :=0;
//Setup CodeSense:
CodeSense[0] := TCodeSense.Create(Self);
CodeSense[0].Parent := Form1.First;
CodeSense[0].UpdateControlPositions;
CodeSense[0].Align := alClient;
CodeSense[0].AutoIndentMode := 2;
CodeSense[0].ColorSyntax := True;
CodeSense[0].CurrentView := 0;
CodeSense[0].Cursor := crDefault;
CodeSense[0].DisplayLeftMargin := True;
CodeSense[0].DisplayWhiteSpace := False;
CodeSense[0].DragCursor := crDrag;
CodeSense[0].DragMode := dmManual;
CodeSense[0].EnableColumnSel := True;
CodeSense[0].EnableCRLF := True;
CodeSense[0].Enabled := True;
CodeSense[0].EnableDragDrop := True;
CodeSense[0].EnableHSplitter := True;
CodeSense[0].EnableVSplitter := True;
CodeSense[0].ExpandTabs := False;
{
CodeSense[0].Font.Color := clWindowText;
CodeSense[0].Font.Height := -15;
CodeSense[0].Font.Pitch := fpDefault;
CodeSense[0].Font.Size := 11;
}
CodeSense[0].GlobalProps := True;
CodeSense[0].Height := 215;
CodeSense[0].HideSel := True;
CodeSense[0].HighlightedLine := -1;
CodeSense[0].HScrollVisible := True;
CodeSense[0].HSplitterPos := 0;
CodeSense[0].Left := 30;
CodeSense[0].LineNumbering := True;
CodeSense[0].LineNumberStart := 1;
CodeSense[0].LineNumberStyle := 10 - cmDecimal;
CodeSense[0].LineToolTips := True;
CodeSense[0].Modified := False;
CodeSense[0].NormalizeCase := False;
CodeSense[0].Overtype := False;
CodeSense[0].OvertypeCaret := True;
CodeSense[0].ParentFont := False;
CodeSense[0].ParentShowHint := True;
CodeSense[0].ReadOnly := False;
CodeSense[0].ReplacePreserveCase := False;
CodeSense[0].SearchCaseSensitive := False;
CodeSense[0].SearchRegExp := False;
CodeSense[0].SearchWholeWord := False;
CodeSense[0].SelBounds := True;
CodeSense[0].TabSize := 4;
CodeSense[0].TabStop := True;
CodeSense[0].Top := 5;
CodeSense[0].Text := '''Type your code here';
CodeSense[0].UndoLimit := 255;
CodeSense[0].VScrollVisible := True;
CodeSense[0].VSplitterPos := 0;
CodeSense[0].Width := 420;
CodeSense[0].Left := 3;
// CodeSense[0].Top := 0;
CodeSense[0].Align := alClient;
CodeSense[0].BorderStyle := 10;
Utils.RegisterLanguages(Unit1.CodeSense[0]);
end;
procedure TForm1._WM_GETMINMAXINFO( var mmInfo : TWMGETMINMAXINFO );
begin
with mmInfo.minmaxinfo^ do
begin
// allow at most half of the screen, and position it in the middle
ptmaxposition.x := 0;//MainForm.Left + MainForm.TBDock4.Width-100;
ptmaxposition.y := 0;//MainForm.Top + MainForm.Panel3.Height-100;
ptmaxsize.x := 100;//MainForm.Width - MainForm.TBDock4.Width-100;
ptmaxsize.y := 100;//MainForm.Height - MainForm.Panel3.Height-100;
end;
end;
procedure TForm1.TabsChange(Sender: TObject);
var Items : Integer;
begin
For Items := 0 To MainForm.TreeView2.Items.Count-1 Do
begin
if MainForm.TreeView2.Items[Items].Data = Form1.Tabs.ActivePage Then
begin
MainForm.TreeView2.Select(mainForm.TreeView2.Items[Items]);
//TreeView2.Select(TreeView2.Items.AddChildObject(TreeView2.Items[Items], Control.Name, TObject(Control)));
end;
End;
IF Tabs.ActivePageIndex > 0 then
CodeSense[Tabs.ActivePageIndex].SetFocus
else
CodeSense[0].SetFocus;
end;
procedure TForm1.TabsDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if source is TPageControl then accept:= true;
end;
procedure TForm1.TabsDragDrop(Sender, Source: TObject; X, Y: Integer);
var
HitIndex: Integer;
HitTestInfo: TTCHitTestInfo;
begin
HitTestInfo.pt := Point(X,Y);
HitIndex := SendMessage(Tabs.Handle, TCM_HITTEST, 0,Longint(@HitTestInfo));
if (HitIndex <> -1) and (TTabSheet(Source).PageIndex <> HitIndex) then
TTabSheet(Source).PageIndex:= HitIndex;
end;
procedure TForm1.TabsMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
HitIndex: Integer;
HitTestInfo: TTCHitTestInfo;
begin
HitTestInfo.pt := Point(X,Y);
HitIndex := SendMessage(Tabs.Handle, TCM_HITTEST, 0,Longint(@HitTestInfo));
if (HitIndex <> -1) then begin
Tabs.Pages[HitIndex].BeginDrag(False,-1);
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var Items : Integer;
begin
{With MainForm Do
Begin
For Items := 0 To TreeView2.Items.Count-1 Do
begin
if TreeView2.Items[Items].Text = 'Code View' Then
begin
TreeView2.Select(TreeView2.Items[Items]);
end;
End;
End;}
MainForm.Undo1.Caption := 'Undo';
MainForm.TBXItem1.Hint := 'Create a new BASIC file';
MainForm.TBXItem15.ShortCut := TextToShortCut('Ctrl+N'); //File|New|BASIC File
MainForm.TBXItem17.ShortCut := TextToShortCut(''); //File|New|Form
MainForm.mnuFormDesigner.Visible := False;
MainForm.mnuCodeEditor.Visible := True;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if (MainUnit.CloseChildren = False) Then
CanClose := False;
ShowWindow(Form1.Handle, SW_HIDE);
end;
//procedure TCodeSense.OnClick(Sender);
//begin
//Showmessage('Outch!');
//end;
procedure Click(Sender:TObject);
begin
Showmessage('Outch!');
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -