Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форматирование кода программы в среде разработки


я ©   (2011-09-28 08:43:00) 

Привык к такой фиче, когда выделяешь кусок кода, нажимаешь кнопку и он сам форматируется (т.е. выстраивается лесенкой), т.е. весь код приводится в удобоваримый вид. Например есть неформатированный код:


if Intensity < 255 then
begin
if i= 0 then
begin
Xdiff := x;
Ydiff := y;
end;
searchArray[i].x:= x-Xdiff;
searchArray[i].y:= y-Ydiff;
inc(i);
end;


Выделяем этот кусок, нажимаем кнопку и получаем что то вроде этого

if Intensity < 255 then
begin
      if i= 0 then
      begin
           Xdiff := x;
           Ydiff := y;
      end;
      searchArray[i].x:= x-Xdiff;
      searchArray[i].y:= y-Ydiff;
      inc(i);
end;


В данный момент я это делаю для каждой строки вручную и не могу поверить, что такой функции нет, но и найти ее не могу. Установил RAD Studio XE, но все равно такого не увидел. Может все такие есть? Форматирование "вручную" причиняет мне адские страдания, особенно после того как я всегда это делал автоматом, но в других языках...


OW   (2011-09-28 15:39:00) [1]

+ CnPack
сильно помогает писать сразу нормально


Palladin   (2011-09-28 13:46:00) [2]


> Ctrl+D

не умеет анонимных процедур


MonoLife   (2011-09-28 10:53:00) [3]

D7
ctrl+I - блок вправо
ctrl+U - блок влево


Игорь Шевченко   (2011-09-28 09:46:00) [4]


> Установил RAD Studio XE, но все равно такого не увидел.


Ctrl+D ?


sniknik   (2011-09-28 09:40:00) [5]

> Форматирование "вручную" причиняет мне адские страдания
свой код нужно сразу так писать, чужой... ручное форматирование только поможет понять логику/найти ошибки.
и не зачем так страдать...


OW   (2011-09-28 09:33:00) [6]

сам сейчас попробовал джедаев (JCF)
interface

uses
 Graphics,
   uPoint,
 SysUtils, Dialogs;

type
 TGGraph = class
 private
 FCanva: TCanvas;
   FPoints: array of TGPoint;
 private
   procedure ReallyCreate(AC: TCanvas);
   procedure ReallyAdd(AP: TGPoint);
   procedure ReallyMove(AP: TGPoint; dx, dy: Integer);
 public
   constructor Create(AC: TCanvas);
   procedure Add(AP: TGPoint); overload;
   procedure Add(AX, AY: Integer; AR:Integer = DefaultR); overload;
   procedure Add(AName: string; AX, AY: Integer; AR:Integer = DefaultR); overload;
   procedure Move(NumP, dx, dy: Integer);

   function GetPointByXY(ax, ay: Integer): TGPoint;
   function GetPointByNum(Num: Integer): TGPoint;
 public
   
 end;

implementation

procedure TGGraph.Add(AP: TGPoint);
begin
 if AP = nil then
 raise Exception.Create('Add nil-value point. TGGraph.Add(AP)');
 if AP.Canva <> FCanva then
 begin
if AP.Canva <> nil then
 AP.Hide;
 AP.Canva := FCanva;
 end;
 ReallyAdd(AP);



vs

uses
 Graphics,
 uPoint,
 SysUtils,
 Dialogs;

type
 TGGraph = class
 private
   FCanva:  TCanvas;
   FPoints: array of TGPoint;
 private
   procedure ReallyCreate(AC: TCanvas);
   procedure ReallyAdd(AP: TGPoint);
   procedure ReallyMove(AP: TGPoint; dx, dy: Integer);
 public
   constructor Create(AC: TCanvas);
   procedure Add(AP: TGPoint); overload;
   procedure Add(AX, AY: Integer; AR: Integer = DefaultR); overload;
   procedure Add(AName: string; AX, AY: Integer; AR: Integer = DefaultR); overload;
   procedure Move(NumP, dx, dy: Integer);

   function GetPointByXY(ax, ay: Integer): TGPoint;
   function GetPointByNum(Num: Integer): TGPoint;
 public

 end;

implementation

procedure TGGraph.Add(AP: TGPoint);
begin
 if AP = nil then
   raise Exception.Create('Add nil-value point. TGGraph.Add(AP)');
 if AP.Canva <> FCanva then
 begin
   if AP.Canva <> nil then
     AP.Hide;
   AP.Canva := FCanva;
 end;
 ReallyAdd(AP);


OW   (2011-09-28 09:10:00) [7]

http://www.gunsmoker.ru/2011/01/blog-post.html


Наверх

Титульная страница Поиск, карта сайта Написать письмо