
14.06.2007, 17:05
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами:
11710201
Репутация:
134
|
|
Piflit > глянь справку о сообщении EM_CANUNDO в MSDN.
|
|
|

14.06.2007, 17:18
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
procedure TMainForm.MainMemoChange(Sender: TObject);
begin
if MainMemo.Perform(EM_CANUNDO, 0, 0) then //тут надо выполнить сравнение?
TMainForm.MUndo.Enabled:=True;
end;
пришет ошибку
[Error] MainUnit.pas(166): Type of expression must be BOOLEAN
[Error] MainUnit.pas(167): Method identifier expected
[Fatal Error] Project1.dpr(6): Could not compile used unit 'MainUnit.pas'
|
|
|

14.06.2007, 17:35
|
|
Участник форума
Регистрация: 27.10.2006
Сообщений: 115
С нами:
10282757
Репутация:
119
|
|
TMainForm.MUndo.Enabled:=false;
x:=//то с чем ты сравниваешь
if (MainMemo.Perform(// не знаю что тут у тебя за параметры) ) = x then // сдесь проверка на сходство ,если надо не равно, то тогда вмсето = пиши <>
TMainForm.MUndo.Enabled:=True;
end;
если не получиться стукани в асику.
Последний раз редактировалось mari00; 14.06.2007 в 17:39..
|
|
|

14.06.2007, 17:37
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
С нами:
10088966
Репутация:
646
|
|
Посылай Em_canundo и смотри результат.
Короче:
Memo1.Perform(EM_CANUNDO, 0, 0) > 0
В этом случае можно сделать отмену
Последний раз редактировалось Joker-jar; 14.06.2007 в 17:44..
|
|
|

14.06.2007, 17:40
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
все получилось, спасибо iNVLose
ЗЫ как допишу, блокнот, выложу, буду ждать пожеланий и предложений, что добавить, пок реализую стандартный набор notepad'a ))
|
|
|

14.06.2007, 17:42
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами:
11710201
Репутация:
134
|
|
Ещё надо юзать сообщение EM_EMPTYUNDOBUFFER для обнуления флага отмены.
Вот накатал примерчик.
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Perform(EM_UNDO, 0, 0);
Memo1.Perform(EM_EMPTYUNDOBUFFER, 0, 0);
Button1.Enabled:=Memo1.Perform(EM_CANUNDO, 0, 0)<>0;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
Button1.Enabled:=Memo1.Perform(EM_CANUNDO, 0, 0)<>0;
end;
|
|
|

15.06.2007, 23:15
|
|
Участник форума
Регистрация: 21.02.2007
Сообщений: 186
С нами:
10114886
Репутация:
154
|
|
Возможно ли из дельфи загрузить фаил тока не ехе, а batб для ехе я зделал, можно както переделать под .bat пробывад исправлять расширение неоткрывает.
вот код:
Код:
function CreateProcessAndWait(AModuleName: string): boolean;
var si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
Result := false;
ZeroMemory(@si, sizeof(si));
si.cb := sizeof(si);
ZeroMemory(@pi, sizeof(pi));
SetCurrentDir(ExtractFileDir(AModuleName));
if not CreateProcess(nil,
PChar(AModuleName),
nil,
nil,
FALSE,
0,
nil,
nil,
si,
pi) then
begin
Exit;
end;
WaitForInputIdle(pi.hProcess, INFINITE);
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
Result := true;
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
CreateProcessAndWait('C:\X-Hider\compile.bat');
timer3.Enabled:=false;
end;
Или, если кто знает подскажите как консольный компилятор в дельфи зовется, я както юзал его год примерно назад но забыл как называется лежит в папке BIN и называется примерно dcc32.exe.
Последний раз редактировалось GlobaL; 15.06.2007 в 23:32..
|
|
|

16.06.2007, 06:56
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами:
11710201
Репутация:
134
|
|
GlobaL > Попробуй так:
Код:
CreateProcessAndWait('cmd.exe /c C:\X-Hider\compile.bat');
|
|
|

16.06.2007, 07:00
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
С нами:
11042306
Репутация:
2726
|
|
> Возможно ли из дельфи загрузить фаил тока не ехе, а batб для ехе я зделал,
а уроки зделал уже?
WinExec( "путь_к_файлу\1.bat", SW_SHOW );
> называется примерно dcc32.exe.
лежит примерно в \Program Files\
Последний раз редактировалось KEZ; 16.06.2007 в 07:02..
|
|
|

16.06.2007, 09:50
|
|
Участник форума
Регистрация: 21.02.2007
Сообщений: 186
С нами:
10114886
Репутация:
154
|
|
Сообщение от KEZ
а уроки зделал уже?
WinExec( "путь_к_файлу\1.bat", SW_SHOW );
аты сам уроки зделал? я юзаю другую функцию CreateProcessAndWait а не WinExec, так как с ней мозгоепства меньше.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|