[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    и первый вопрос. создание блокнота. какой должен быть тип возвращаемого функцией значения, если функция сохраняет файл?
    второй вопрос: если создан новый текстовой файл (а не открыт существующий), то при попытке save
    Code:
    MainMemo.Lines.SaveToFile(FName);
    вылетает ошибка. FName появляется после использования OpenDialog.
    Code:
    if OpenDialog1.Execute then
    begin      
       FName:=OpenDialog1.FileName; 
       MainMemo.Lines.LoadFromFile(FName);    
    end;
    я хочу решить эту проблему с помощью проверки на существование FName и функции, сделанной из обработчика SaveDialog
    Code:
    begin 
       SaveDialog1.FileName:=FName;  
       if SaveDialog1.Execute then    
          begin      
             FName:=SaveDialog1.FileName; 
             MainMemo.Lines.SaveToFile(FName);    
          end;  
    end;
    может есть какое-то более правильное решение? если да, на вопрос номер 1 просьба все равно ответить.
    ЗЫ помогаюсь книжкой Архангельского "100 компонентов общего назначения библиотеки Delphi 5"
    ЗЫЫ to begin end ;)
     
    #41 Piflit, 18 May 2007
    Last edited: 18 May 2007
  2. anarсhist

    anarсhist Member

    Joined:
    28 Apr 2007
    Messages:
    25
    Likes Received:
    5
    Reputations:
    0
    Когда-то еще в школе писал нечто на подобее вордпада, потом резко забил... вобщем была небольшая проблемка :
    передача редактору имени файла при открытии через проводник (пр. кн. мыши - откр. с помощью - мой редактор)

    стыдно, но до сих пор не наю как ето сделать =(
     
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    У неё нет возвращяемого значения, это процедура. Для проверки на ошибку используй try except end;

    Code:
    var
      Form1: TForm1;
      FName : String = 'Untinled.txt';
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      FName:=ParamStr(1);
      if(FileExists(FName)) then MyNotepadOpenFile(FName);
    end;
     
  4. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    напиши пример плз
     
  5. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Code:
      try
        Memo1.Lines.SaveToFile(FName);
      except
        // Сюда перейдёт только если произойдёт ошибка
      end;
     
    1 person likes this.
  6. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    я имел в виду немного не то. сам код ошибки должен откуда-то браться. и этот же самый код должен быть в процедуре save as. то есть я не хочу два раза писать один и тот же код, а загнать его в функцию. и меня интересует оформление функции. ты написал ее содержание.

    и еще вопрос. можно осуществлять печать с Memo? или только с RichEdit?
     
    #46 Piflit, 18 May 2007
    Last edited: 18 May 2007
  7. anarсhist

    anarсhist Member

    Joined:
    28 Apr 2007
    Messages:
    25
    Likes Received:
    5
    Reputations:
    0
    Code:
    uses Printers;
    
    procedure PrintTxt(Strings: TStrings);
    var
    f: TextFile;
    i: word;
    begin
    AssignPrn(f);
    try
    Rewrite(f);
    try
    for i := 0 to Strings.Count - 1 do
    writeln(f, Strings.Strings[i]);
    finally
    CloseFile(f);
    end;
    except
    on EInOutError do
    MessageDlg('oшибка печати', mtError, [mbOk], 0);
    end;
    end;
    
    для мемо дальше делаешь: printtxt(memo1.lines)
     
    #47 anarсhist, 18 May 2007
    Last edited by a moderator: 28 Apr 2008
    1 person likes this.
  8. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Я непонимаю что собственно тебе надо в этом вопросе, вот посмотри пример простейшего редактора тут: \Borland\Delphi7\Demos\Clx\BasicEd\*

    Code:
    use QPrinters;
    var prn : TPrinter;
    prn := TPrinter.Create;
    prn.BeginDoc;
    prn.Canvas.TextOut( ... );
    prn.EndDoc;
    Да поможет тебе F1 ;)
     
  9. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    походу я сам немного запутался. мне нужно, чтобы были кнопки save и save as. в борландовском примере только вторая. а может save и не надо?
     
  10. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Обязательно нужна, я когда пользуюсь редактором нажимаю её по 2 раза в минуту :D
    При нажатии Save, проверь, если файл не существует, тогда передай управление обработчику SaveAs, иначе просто сохрани.
     
    1 person likes this.
  11. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    всем спасибо, все получилось, про горячие клавиши не забыл))
    теперь буду с печатью разбираться...
    ЗЫ я потом исходники выложу, а вы покритикуете. ок?
     
  12. Fen-Omen

    Fen-Omen Elder - Старейшина

    Joined:
    22 Mar 2007
    Messages:
    60
    Likes Received:
    88
    Reputations:
    60
    Хотелось бы услышать несколько советов по уменьшению размера программы (без Usp)...
     
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    аналогично
     
  14. inSa(Ne)rd

    inSa(Ne)rd В Стране Чудес

    Joined:
    14 Mar 2005
    Messages:
    240
    Likes Received:
    1,370
    Reputations:
    168
    уменьшение размера программы, написаной в делфе делается любым текстовым редактором, например notepad, для этого надо:
    1) нопесать программу в делфе
    2) открыть эту программу (.exe) в редакторе notepad
    3) поставить курсор на место, с которого хотите провести обрезание
    4) выделить все содержимое ниже курсора
    5) нажать delete или backspace, удалив это содержимое

    так можно уменьшать программы

    PS. для слишком больших ехе, которые тяжело открыть через notepad - используйте wordpad или Microsoft(R) Word(R) 2007.

    PS2
    > (без Usp).
    если не хочешь использовать Usp контровский пислолет 1.1 то бери калаш или эмку. с ней удобнее в хед попадать да и патронов в обойме больше

    // кез пьян от передоза баклафена
     
    #54 inSa(Ne)rd, 20 May 2007
    Last edited: 20 May 2007
    2 people like this.
  15. l-l00K

    l-l00K Banned

    Joined:
    26 Nov 2006
    Messages:
    233
    Likes Received:
    433
    Reputations:
    287
    Если хочешь не большой размер программы, то пиши ее с использованием KOL или с использованием WinApi
     
    1 person likes this.
  16. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вот на winapi и с ипользованием диалогов, у меня проги получились без p;fnbz по 18-20 килобайт
     
  17. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 begin end Кстати, у меня както была задумка написать чтото типа конвертора простых форм.
    т.е. чтобы можно было конвертить из VCL на чистый API. В принципе всё просто. Но потребует времяни.
     
    1 person likes this.
  18. podkashey

    podkashey С крышкой по жизни!

    Joined:
    18 Jun 2005
    Messages:
    756
    Likes Received:
    351
    Reputations:
    353
    Если кто-то работал с FastReport, то отпишите в ПМ плиз. Есть вопросег.
     
  19. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    буду ждать с нетерпением))))
    и распиши еще там все как можно подробнее плз=)
     
  20. mr1

    mr1 New Member

    Joined:
    17 May 2007
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    народ дайте ссылку где скачать delPHi .... и все необходимое...
     
    #60 mr1, 21 May 2007
    Last edited: 21 May 2007
    1 person likes this.
Thread Status:
Not open for further replies.