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


Автор: cpu 6.6.2003, 18:31
Нужно чтобы при работе консольное приложение выводило коно диалога "открыть файл". Как сие сотворить?

Автор: altarasjuk 6.6.2003, 19:13
А чем консольное приложение отличается от обычногоconfused.gif
Создаёшь TFileOpenDialog и вперёд....

Автор: cpu 7.6.2003, 20:47
Плиз... Кусок кода sad.gif . В обычном - кидаешь на форму диалог - и всё. Далее - как с объектом, а в консоли его как-то создать надо.и еще - какой-то Owner указать надо. Я это делаю в первый раз. confused.gif

Автор: dm9 7.6.2003, 23:29
Owner можно nil - только не забудь потом Free вызвать...

Автор: dm9 7.6.2003, 23:33
Вот, написал (что сложного-то :-\)

Код
program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils, Dialogs;

var
  Q : TOpenDialog;

begin
 { TODO -oUser -cConsole Main : Insert code here }
 Q := TOpenDialog.Create (nil);
 if Q.Execute
 then WriteLn (Q.FileName);
 ReadLn;
 Q.Free;
end.

Автор: cpu 8.6.2003, 16:24
dm9: Super-mega-thanks! smile.gif

Автор: altarasjuk 9.6.2003, 11:08
Народ, учитесь мыслить не формами а классами, это вам поможет избежать тех вопросов.
cpu: я думаю там dm9 всё описал как надо, ну а на будущее так можно создавать всё.
Цитата
Owner можно nil - только не забудь потом Free вызвать...

Owner - это владелец. если ставишь nil, то как уже заметили, его надо убовать самому, а если нет, то заето отвечает сам Owner.

Автор: eof 9.6.2003, 11:14
altarasjuk free можно не делать если owner TComponent или его наследник...smile.gif

Автор: altarasjuk 9.6.2003, 11:28
Цитата
altarasjuk free можно не делать если owner TComponent или его наследник...

eof, ты читать умеешь smile.gif я ж так и написал, что убивать надо если nil.... smile.gif))

Автор: eof 9.6.2003, 11:37
altarasjuksmile.gif я имел в виду что если Owner: TObject или TPersistent, то убивать надо тоже самому, а экземпляры этих классов не равны nil, хотя и не за что не отвечают...
или я что то не догнал

Автор: Song 9.6.2003, 11:49
2eof
А практически такое ты встречал?

Автор: eof 9.6.2003, 12:11
Song да, а почему бы нет? у меня было несколько экзотических задач и я активно использовал TObject... чем он не класс?

Автор: Medved 10.6.2003, 11:11
Цитата
меня было несколько экзотических задач и я активно использовал TObject... чем он не класс?


Хотелось бы на них взгянуть.....

Автор: eof 10.6.2003, 11:52
Pegas а что смотреть то? мне конечно лстит ваш интерес, но немогу понять почему бы не наследовать свои классы от TObject. расскажите плз. если это ошибка, то в чем она заключается...

Автор: altarasjuk 10.6.2003, 12:22
eof На счёт , ты абсолютно прав.
Цитата
или я что то не догнал

Да не это я действительно не совсем понятно написал, так что сорри.
Pegas Я что-то не совсем пойму. Наследование - это основопологающее в любом ОО программировании. Создать свой класс, который не кнопки и не ещё там что, а выполняет добустим, задачи общения с базой и т.п. Выходит его можно наследовать только от TObject.
Вот простой пример:
Код

TRecord = class(TObject)
 private
   fFirstName: String;
   fLastName: String;
   fPhone: String;
 public
   function Load(aId: Integer): Boolean;
   function Save(): Integer;
   property FirstName.......;
   property LastName.......;
   property Phone.......;
 end;
 
implementation

function TRecord.Load(aId: Integer): Boolean;
begin
..............................................
end;

function TRecord.Save(): Integer;
begin
..............................................
end;

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