Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Как сделать Button1.Enabled:=true; в такой ситуации?   Найти похожие ветки 

 
Apocalepse ©   (2004-06-12 22:00) [0]

Привецтвую мастера. Вот тот код мне посоветовали чтобы мой текстовый редактор
мог открывать фалы если его поставить текстовым редактором по умолчанию.
procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Text.Lines.LoadFromFile(ParamStr(1));
FName := (ParamStr(1));

Но теперь возникла новая проблема. У меня в редакторе кнопка "сохранить"
находиться в состоянии Disabled. В состояние Enabled она переходит лишь тогда,
когда открываеться файл через OpenDialog или сохраняеться через SaveDialog.
Так же мне понадобилось чтобы она переходила в Enabled-состояние после
того, как ей открыли файл как редактором по умолчанию т.е. с помощью кода
приведенного выше. Но как то сделать? Вот такая штука:
procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Text.Lines.LoadFromFile(ParamStr(1));
FName := (ParamStr(1));
Button1.Enabled:=true;

Button1 - это кнопка "сохранить".
Подскажите плизз куда и как вписать кодButton1.Enabled:=true; в таком случае?


 
Pipa   (2004-06-12 22:41) [1]

В конструкторе:

if (ParamCount >= 1) and FileExists(ParamStr(1)) then begin
 Text.Lines.LoadFromFile(ParamStr(1));
 FName := (ParamStr(1));
 Button1.Enabled:=true;
end
else Button1.Enabled:=False;

После закрытия файла ставишь Button1.Enabled:=False;
Если открывается в OpenDialog то Button1.Enabled:=true;

Кстати, один совет. Если в файл не внесли изменения, то не нужно ставить кнопку в активное состояние (то есть всё вышесказанное не актуально).


 
Apocalepse ©   (2004-06-12 22:52) [2]

Это может не актуально, но зато работоспособно. Т.е. Если конечно не внесли изменений то и нажимать "сохранить" никто не будет, а вот если внесли а сохранить не могу, вот тога будет весело :-)


 
Apocalepse ©   (2004-06-12 22:54) [3]

Pipa, Вот ты пишиш "в конструкторе". Что то значит?


 
jack128 ©   (2004-06-12 23:00) [4]


> Вот ты пишиш "в конструкторе". Что то значит?

имелось ввиду в событии OnCreate формы, скорее всего. Хотя строго говоря "в конструкторе" - это немножко другое. Почитай, что такое классы, объекты..


 
KilkennyCat ©   (2004-06-12 23:06) [5]

В событии onChange пропиши показ кнопки.


 
Pipa   (2004-06-12 23:09) [6]

>Apocalepse ©  (12.06.04 22:54) [3]
>Pipa, Вот ты пишиш "в конструкторе". Что то значит?

Виноват, ошибся.
Конечно же я имел в виду FormCreate.


 
KilkennyCat ©   (2004-06-12 23:14) [7]

но и там желательно поставить флажок о первоначальной загрузке файла.

примерно так:

var
 FLoadNew : boolean;
 ...

после
Text.Lines.LoadFromFileнужно
FLag := false;

...

Text.onChange
begin
 ...
 ButtonSave.Enabled := FLag;
 FLag := true;
 ...
end;

Text.Save
begin
 ...
 flag := false;
 ...
end;
begin


 
KilkennyCat ©   (2004-06-12 23:16) [8]

ошибся, вот так:

Text.Save
begin
 ...
flag := false;
ButtonSave.Enabled := FLag;
...
end;


 
Apocalepse ©   (2004-06-12 23:16) [9]

KilkennyCat Ох точно! ГениальнО! Спасибо.
У меня тогда еще аопрос. У меня в SaveDialog не работает Filter
Я уж его и так и дак, и в хэлпе смотрел как правильно писать. Блин.... может чего подскажете? Как его правильно настроить.


 
KilkennyCat ©   (2004-06-12 23:20) [10]

напишите его здесь, а мы поправим...

А вообще, искренне советую установить RxLib. Там просто идеальный пример тестового редактора. Сам когда-то использовал как учебный материал.


 
Apocalepse ©   (2004-06-13 00:09) [11]

Что написать здесь? Весь код!!?? Или что... Я про фильтр то говорил, я его в редакторе фильтров делал, а что можно подругому?


 
KilkennyCat ©   (2004-06-13 01:01) [12]

можно и по другому:

savedialog1.Filter := "Текстовые|*.txt";


 
Apocalepse ©   (2004-06-13 10:44) [13]

Спасибо, сейчас попробую.


 
Apocalepse ©   (2004-06-13 10:59) [14]

Не работет. Если пишу ваш код
SaveDialog.Filter := "Текстовые|*.txt";
В самой процедуре сохранинея или просто в любом другом месте кода, филтр вообще
не появляется. А вот если настраиваю в редакторе фильтра, то в окне SaveDialog`a
фильтр то появляется. Но я вот дупксти написал все то же в нем

SaveDialog.Filter := "Текстовые|*.txt";

Вот выбираю я "текстовые" при сохранении и он конечно файл сохраняет, но без
разширения. Тоесть нужно самому в имени писать его. Например test.TXT
Вот так блин. Может где то что то надо в true поставить в ObjectInspector`e?


 
jack128 ©   (2004-06-13 11:13) [15]


> , но без
> разширения. Тоесть нужно самому в имени писать его. Например
> test.TXT


> Может где то что то надо в true поставить в ObjectInspector`e?
не true,  а прописать свойство defaultExt


 
KilkennyCat ©   (2004-06-13 11:16) [16]

нужно указать свойство

DefaultExt - *.txt


 
Gero ©   (2004-06-13 11:21) [17]


> нужно указать свойство
>
> DefaultExt - *.txt

DefaultExt := "txt";


 
KilkennyCat ©   (2004-06-13 12:11) [18]


> Gero ©   (13.06.04 11:21) [17]


равнозначно.


 
Apocalepse ©   (2004-06-13 12:12) [19]

И что тогда у меня только в тхт будет сохранять? Или тогда фильтр заработает? И где это
> DefaultExt := "txt";
надо написать? В Процедуре сохранения или в любом месте кода?


 
KilkennyCat ©   (2004-06-13 12:14) [20]

гм......... попробуйте и так и этак. И попробуйте перевести с английского DefaultExt...


 
KilkennyCat ©   (2004-06-13 12:16) [21]

Я ведь советовал посмотреть пример редактора в RxLib.
Если бы посмотрели - такие бы вопросы не задавали.


 
Gero ©   (2004-06-13 12:16) [22]


> Apocalepse ©   (13.06.04 12:12)

TOpenDialog.DefaultExt
Писать можно где угодоно, хоть в DesignTime.
Сохранять можно будет не только в txt, но если другое расширение не указано, то добавит к FileName еще и "txt".


 
Apocalepse ©   (2004-06-13 12:22) [23]

Но от этого заработает Фильтр или нет?
> Я ведь советовал посмотреть пример редактора в RxLib
А что такое RxLib.


> И попробуйте перевести с английского DefaultExt...

Default типа впрде по умолчанию а Ext - разширение или настройка.... Короче говоря это Разширение даваемое по умолчанию.


 
Apocalepse ©   (2004-06-13 12:25) [24]


> гм......... попробуйте

Можно на со мной ты :-) ато както неудобно даже :-)


 
Gero ©   (2004-06-13 12:35) [25]


> Но от этого заработает Фильтр или нет?

Фильтр только отвечает за отображение файлов в окошке выбора файла.
А что DefaultExt делает, я написал. Так что не понятно?


 
Apocalepse ©   (2004-06-13 14:11) [26]

Да все понятно щас все пашет уже как папа карло!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.03 c
1-1087166154
Mobias
2004-06-14 02:35
2004.06.27
как изменить


14-1086896824
Gero
2004-06-10 23:47
2004.06.27
Компоненты


3-1086154029
Izyum
2004-06-02 09:27
2004.06.27
ODBC & ZEOS - что быстрее


1-1086878929
TUser
2004-06-10 18:48
2004.06.27
Тексейра


1-1086769085
Snip
2004-06-09 12:18
2004.06.27
Hint в TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский