ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

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

14.06.2007, 17:18
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
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
Провел на форуме: 820289
Репутация:
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
Провел на форуме: 4172659
Репутация:
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
Провел на форуме: 5128756
Репутация:
2032
|
|
все получилось, спасибо iNVLose
ЗЫ как допишу, блокнот, выложу, буду ждать пожеланий и предложений, что добавить, пок реализую стандартный набор notepad'a ))
|
|
|

14.06.2007, 17:42
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме: 1089794
Репутация:
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
Провел на форуме: 761935
Репутация:
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
Провел на форуме: 1089794
Репутация:
134
|
|
GlobaL > Попробуй так:
Код:
CreateProcessAndWait('cmd.exe /c C:\X-Hider\compile.bat');
|
|
|

16.06.2007, 07:00
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
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
Провел на форуме: 761935
Репутация:
154
|
|
Сообщение от KEZ
а уроки зделал уже?
WinExec( "путь_к_файлу\1.bat", SW_SHOW );
аты сам уроки зделал? я юзаю другую функцию CreateProcessAndWait а не WinExec, так как с ней мозгоепства меньше.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|