![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Снова про With
Kostafey © (2007-05-10 11:03:00)Была про это ветка, но как-то я ее несерьезно воспринял.
Видимо зря:
type
TExportToWord = class(TObject)
private
...
TemplateFileName: string;
public
procedure AddTemplate(TemplateFileName: string);
...
end;
implementation
procedure TExportToWord.AddTemplate(TemplateFileName: string);
begin
Self.TemplateFileName := TemplateFileName;
W.Documents.add(Self.TemplateFileName);
end;
...
var ExportToWord: TExportToWord;
...
ExportToWord := TExportToWord.Create;
ExportToWord.AddTemplate(TemplateFileName); //Документ создается на основе шаблона
showmessage(ExportToWord.TemplateFileName); //Все OK, видим строку - путь к файлу шаблона
//Но стоит воспользоваться with:
ExportToWord := TExportToWord.Create;
with ExportToWord do
begin
AddTemplate(TemplateFileName); //Создается пустой документ
showmessage(TemplateFileName); //Видим пустую строку
end;
Почему так?
Desdechado (2007-05-10 12:50:00) [1]Это к тому, что не стоит называть параметры, свойства и локальные переменные одинаково.
Kostafey (2007-05-10 11:27:00) [2]> ExportToWord.AddTemplate(ExportToWord.TemplateFileName)
Ых !? Да. Верно!
with ExportToWord do
begin
AddTemplate(TemplateFN);
showmessage(TemplateFileName);
end;
И все заработало.
Спасибо !
Johnmen (2007-05-10 11:18:00) [3]Потому, что это =
ExportToWord.AddTemplate(ExportToWord.TemplateFileName)
showmessage(ExportToWord.TemplateFileName);