Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с вызовом 
:(
    Опции темы
Pavelbej
Дата 31.7.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 419
Регистрация: 5.7.2005

Репутация: нет
Всего: 6



Помогите! Файлы .txt и .html открываются простым перетаскиванием их в мою программу. Дальше смотрите код.



Код

procedure TForm1.wmDropFiles(var Message: TMessage);
var  Ext: string;
     Count: integer;
begin
Count := DragQueryFile(Message.WParam, 0, @S[1], 255);
Length(S) := Count;
DragFinish(Message.WParam);
if Count >0 then
  begin
  Ext := LowerCase(ExtractFileExt(S));
  if (Ext = '.htm') or (Ext = '.html') then
    begin
    TWinControl(html).Visible := true;
    html.navigate(S);
    html.Tag:=1;
    end
  else if (Ext = '.txt') then
-----------------------------------------
                Как мне проверить если прежний файл был изменен?
                 Это не работает
                     if memo1.tag=1 then
                            begin
                                case MessageDlg('Do you want to save?', mtConfirmation, mbYesNoCancel, 0) of
                                    IDYes: Save1click(sender);  - - - - - - -     Undeclared identifier
                                    IDCancel: exit;
                                    end;
------------------------------------------
    begin
    TWinControl(html).Visible := False;
    memo1.lines.LoadFromFile(S);
-------------------------------------------
                           а тут получить form1.Caption файла
-------------------------------------------
    memo1.tag:=0;
    end;
  end;
Message.Result := 0;
end;


Это сообщение отредактировал(а) Pavelbej - 31.7.2005, 11:10
PM MAIL   Вверх
Albinos_x
Дата 31.7.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
Как мне проверить если прежний файл был изменен?
                Это не работает


два варианта - хранить даты изменения файлов и сравнивать их
и более надёжный - делать контрольные суммы для каждого файла и проверять их

Цитата
а тут получить form1.Caption файла


здесь не совсем понятно - что тебе нужно

может это:

function ExtractFileName(const FileName: string): string; Извлекает из строки с полным именем файла FileName часть, содержащую его имя и расширение.

а дальше понятно:
Код

Form1.Caption := 'MyProg - ' + ExtractFileName(S);



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Pavelbej
Дата 31.7.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 419
Регистрация: 5.7.2005

Репутация: нет
Всего: 6



С именем файла все вышло, благодарю, а вот насчет проверки изменения файла не мог бы по подробнее?
PM MAIL   Вверх
Albinos_x
Дата 31.7.2005, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



вариант 1: делаешь файл или БД при открытии файла проверяешь наличие этого файла в БД, если есть то идёшь ко второму полю где хранишь даты изменений файлов (как получить смотри в FAQ). Далее сравниваешь, если различаются значит изменяли, совпадают = не изменяли. если нет = файл не открывался до этого.

Но файл можно изменить не меняя даты изменения хранящейся в файле, отсюда следует способ 2:

Аналогично первому делаешь файл или БД где будешь хранить пути с именами файлов и контрольные суммы.
Далее при открытии файла по его содержимому делаешь контрольную сумму(алгоритм можно свой придумать). Сверяешь с имеющимся в БД, есть - совпадает = не изменялся, есть - не совпадает = изменялся, нет = не открывался


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Pavelbej
Дата 31.7.2005, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 419
Регистрация: 5.7.2005

Репутация: нет
Всего: 6



Я месяц как сижу в Delphi и для меня это еще слишком сложно. Нельзя ли както по простому вызвать диалог сохранения?
PM MAIL   Вверх
Albinos_x
Дата 31.7.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
Я месяц как сижу в Delphi и для меня это еще слишком сложно.


Это не так сложно как кажется...Тем более в местном FAQ почти всё есть...

Цитата
Нельзя ли как-то по простому вызвать диалог сохранения?


Не понял? поясни свою идею... или может я не понял что тебе нужно?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Pavelbej
Дата 31.7.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 419
Регистрация: 5.7.2005

Репутация: нет
Всего: 6



Я хочу просто вызвать - Save1click(sender), но ему не нравится этот Sender, а вить создавая или открывая новый файл все работает нормально, в чем же тут дело?
PM MAIL   Вверх
Albinos_x
Дата 31.7.2005, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
Я хочу просто вызвать - Save1click(sender), но ему не нравится этот Sender, а вить создавая или открывая новый файл все работает нормально, в чем же тут дело?


я так понимаю, это уже другой вопрос...

Ну мы не телепаты. Надо смотреть код. smile


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Song
Дата 1.8.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



А чего дату/время изменения не сравнить?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.