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

13.06.2007, 21:46
|
|
Участник форума
Регистрация: 06.03.2007
Сообщений: 283
Провел на форуме: 1547094
Репутация:
120
|
|
Люди такой вопрос, что такое TIdAttachment ето наврено приклепление файлов к письму? потскажите поподробней как его установить плиз.Скажите куда тыкнуть на Delphi 2006
Как мне уже сообщили что он идёт радной в делфи...Тока вот как его установить и где там его нарыть ненаю.
|
|
|

13.06.2007, 22:21
|
|
Участник форума
Регистрация: 22.03.2007
Сообщений: 220
Провел на форуме: 1068874
Репутация:
234
|
|
Сообщение от motorola3653
Люди такой вопрос, что такое TIdAttachment ето наврено приклепление файлов к письму?
Угу, используй объект класса TidAttachment если те нужно отправить аттачмент к письму в виде файла. Для этого применяется следующий конструктор:
constructor Create(Collection: TIdMessageParts; const AFileName: TFileName = ''); reintroduce;
где Collection - объект класса TIdMessageParts, представляющее собой коллекцию приложений к электронному письму.
Контстанта AFileName типа TFileName - представляет собой обычную текстовую строку с указанием правильного пути к файлу, например "C:\file.zip", по умолчанию имеет значение ''.
|
|
|

14.06.2007, 15:57
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
реализация кнопки Undo в текстовом редакторе.
Memo1.Perform(EM_UNDO, 0, 0); // сама кнопка
а как сделать проверку, можно ли вообще сделать undo, например, если открыт новый документ, то
Form1.Undo.Enabled:=False;
сам искал, не нашел =\
|
|
|

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..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|