Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ребята,помогите пожалуйста!!!


Автор: LexTracer 15.10.2009, 14:18
Как по-другому записать 'end else break' ???ругается ,на else.ПОМОГИТЕ ПЛИЗ!!!
ВОТ КОД ПРОЦЕДУРЫ:

Код

procedure TfmNewMaze.bbSaveClick(Sender: TObject);
var okSave: boolean;
i, j: integer;
F: TextFile;
begin
sd_1.InitialDir :=ExtractFilePath (Application.ExeName);
sd_1.FileName := copy (Caption,pos  ('[', Caption)+1,
pos (']', Caption)-pos ('[',Caption)-1);
okSave := False;
while not okSave do
if sd_1.Execute then
begin
if FileExists (sd_1.FileName)
then okSave := (MessageDlg('Такой файл уже существует!'+
#13 + 'Сохранить поверх его?',
mtConfirmation, [mbYes ,mbNo] ,0) = mryes)
else okSave := True;
if pos('.maz', sd_1.FileName) = 0
then AssignFile(F,sd_1.FileName + '.maz')
else AssignFile(F,sd_1.FileName);
Rewrite(F);
Writeln(F,cobWallColor.Selected);
Writeln(F,cobEnterColor.Selected);
Writeln(F,cobExitColor.Selected);
for i := 1 to sdSizeV.Value do
for j := 1 to sdSizeH.Value do
if sgMazeStr.Cells [j-1,i-1] = ''
then Write(F, 'O')
else Write(F,sgMazeStr.Cells [j-1 ,i-1]);
WriteLn(F, ' ')
end;
CloseFile(F) ;
bbSave.Enabled := False;
Caption := ' Лабиринт - [ ' +
ExtractFileName(sd_1.FileName) + ']';
end else break;
end;

Автор: a_n_d_y 15.10.2009, 14:26
тег [code] отменили?

Автор: LexTracer 15.10.2009, 14:28
Цитата(a_n_d_y @ 15.10.2009,  14:26)
тег [code] отменили?

времени мало

Автор: a_n_d_y 15.10.2009, 14:34
нет времени потратить полминуты на взятие кода в тег?
в таком виде это невозможно читать...

Автор: Beltar 15.10.2009, 15:29
Посмотри как оформлены исходники в VCL. Я, лично, вообще не могу читать код у которого begin и end точно не выровнены.

Я отформатировав по своим правилам получил примрно вот что (else д/б строго под then, но оно подвинулось):

Код

sd_1.InitialDir :=ExtractFilePath (Application.ExeName);
sd_1.FileName := copy (Caption,pos  ('[', Caption)+1,
pos (']', Caption)-pos ('[',Caption)-1);
okSave := False;
while not okSave do
  if sd_1.Execute then
  begin
  if FileExists (sd_1.FileName) then okSave := (MessageDlg('Такой файл уже существует!'+
    #13 + 'Сохранить поверх его?', mtConfirmation, [mbYes ,mbNo] ,0) = mryes)
                                               else okSave := True;
  if pos('.maz', sd_1.FileName) = 0 then AssignFile(F,sd_1.FileName + '.maz')
                                                      else AssignFile(F,sd_1.FileName);
  Rewrite(F);
  Writeln(F,cobWallColor.Selected);
  Writeln(F,cobEnterColor.Selected);
  Writeln(F,cobExitColor.Selected);
  for i := 1 to sdSizeV.Value do
    for j := 1 to sdSizeH.Value do
      if sgMazeStr.Cells [j-1,i-1] = ''  then Write(F, 'O')
                                                      else Write(F,sgMazeStr.Cells [j-1 ,i-1]);
  WriteLn(F, ' ')
  end;
CloseFile(F) ;
bbSave.Enabled := False;
Caption := ' Лабиринт - [ ' +
ExtractFileName(sd_1.FileName) + ']';
  end else break;


Внимание вопрос, что ты хочешь делать Break'ом? Цикл уже давно закончился. Может тебе последнюю строчку перед CloseFile(F) поставить и один end убрать?

Автор: CodeMonkey 15.10.2009, 16:06
Цитата(LexTracer @  15.10.2009,  14:28 Найти цитируемый пост)
времени мало 

Если у вас нет времени, чтобы нормально сформулировать вопрос, то у нас тем более нет времени на него ответить.

P.S. Нашлись же люди, которым не лень копаться в чужом [вырезано] smile

Автор: bems 15.10.2009, 16:16
Модератор: Название темы не отражает ее суть, а язык описан в учебиниках!

Ознакомьтесь с правилами форума!:

http://forum.vingrad.ru/index.php?showtopic=96391

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)