и первый вопрос. создание блокнота. какой должен быть тип возвращаемого функцией значения, если функция сохраняет файл? второй вопрос: если создан новый текстовой файл (а не открыт существующий), то при попытке 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
Когда-то еще в школе писал нечто на подобее вордпада, потом резко забил... вобщем была небольшая проблемка : передача редактору имени файла при открытии через проводник (пр. кн. мыши - откр. с помощью - мой редактор) стыдно, но до сих пор не наю как ето сделать =(
У неё нет возвращяемого значения, это процедура. Для проверки на ошибку используй 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;
я имел в виду немного не то. сам код ошибки должен откуда-то браться. и этот же самый код должен быть в процедуре save as. то есть я не хочу два раза писать один и тот же код, а загнать его в функцию. и меня интересует оформление функции. ты написал ее содержание. и еще вопрос. можно осуществлять печать с Memo? или только с RichEdit?
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)
Я непонимаю что собственно тебе надо в этом вопросе, вот посмотри пример простейшего редактора тут: \Borland\Delphi7\Demos\Clx\BasicEd\* Code: use QPrinters; var prn : TPrinter; prn := TPrinter.Create; prn.BeginDoc; prn.Canvas.TextOut( ... ); prn.EndDoc; Да поможет тебе F1
походу я сам немного запутался. мне нужно, чтобы были кнопки save и save as. в борландовском примере только вторая. а может save и не надо?
Обязательно нужна, я когда пользуюсь редактором нажимаю её по 2 раза в минуту При нажатии Save, проверь, если файл не существует, тогда передай управление обработчику SaveAs, иначе просто сохрани.
всем спасибо, все получилось, про горячие клавиши не забыл)) теперь буду с печатью разбираться... ЗЫ я потом исходники выложу, а вы покритикуете. ок?
уменьшение размера программы, написаной в делфе делается любым текстовым редактором, например notepad, для этого надо: 1) нопесать программу в делфе 2) открыть эту программу (.exe) в редакторе notepad 3) поставить курсор на место, с которого хотите провести обрезание 4) выделить все содержимое ниже курсора 5) нажать delete или backspace, удалив это содержимое так можно уменьшать программы PS. для слишком больших ехе, которые тяжело открыть через notepad - используйте wordpad или Microsoft(R) Word(R) 2007. PS2 > (без Usp). если не хочешь использовать Usp контровский пислолет 1.1 то бери калаш или эмку. с ней удобнее в хед попадать да и патронов в обойме больше // кез пьян от передоза баклафена
2 begin end Кстати, у меня както была задумка написать чтото типа конвертора простых форм. т.е. чтобы можно было конвертить из VCL на чистый API. В принципе всё просто. Но потребует времяни.