PDA

Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ


Страницы : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Isis
06.05.2007, 17:23
Задаем Вопросы,получаем ответы.
Отвечают на ваши вопросы все хек кодеры ачата :)
Задаем вопрос и ждем ответа.

-------------------------------------------------------
by jes
Навигация по разделу:


Где скачать Delphi ?--> (https://forum.antichat.ru/showpost.php?p=532182&postcount=881)
--> (https://forum.antichat.ru/showpost.php?p=587898&postcount=1059)
--> (https://forum.antichat.ru/showpost.php?p=381905&postcount=124)
Как сделать действия закрятия формы(программы), сворачивания и развертывания её? (https://forum.antichat.ru/showpost.php?p=357393&postcount=3)
Я хочю чтоб при на жатии кнопки на Button1 комп выключался,а при нажатии на кнопку Button2 совершалась перезагрузка... (https://forum.antichat.ru/showpost.php?p=357648&postcount=9) Как добавлять запись в файл? (https://forum.antichat.ru/showpost.php?p=358127&postcount=12)
А потом какой функцией сделать поиск по файлу? (https://forum.antichat.ru/showpost.php?p=358127&postcount=12)
Как добавить Иконку? (https://forum.antichat.ru/showpost.php?p=358287&postcount=16) Как разобрать uins.ini формата 3252436;passwr на две переменные?--> (https://forum.antichat.ru/showpost.php?p=358663&postcount=18)
--> (https://forum.antichat.ru/showpost.php?p=358683&postcount=19)
--> (https://forum.antichat.ru/showpost.php?p=358824&postcount=20)
Как проверить что:
1. интернет включен
2. Что данные не были заблочены FireWall'ом и успешно отправлены.--> (https://forum.antichat.ru/showpost.php?p=359342&postcount=25)
--> (https://forum.antichat.ru/showpost.php?p=359357&postcount=26) Как реализовать отправку писем через Socks5, допустим, используя компоненты Indy - IdSMTP и TidMessage? (https://forum.antichat.ru/showpost.php?p=360737&postcount=30)
в файле допустим 15 номеров формата uins;pass ,как сделать чтобы все эти 15 номеров подконнектились? (https://forum.antichat.ru/showpost.php?p=362608&postcount=34)
Ищу учебник или статьи по сетевым компонентам (Indy), или статьи на эту тему (https://forum.antichat.ru/showpost.php?p=364487&postcount=40)
Как сделать простельние графические графические часики? (https://forum.antichat.ru/showpost.php?p=365522&postcount=42)
подскажите какие-нибудь проги для начинающих для самостоятельного написания? (https://forum.antichat.ru/showpost.php?p=365658&postcount=44)
какой должен быть тип возвращаемого функцией значения, если функция сохраняет файл?--> (https://forum.antichat.ru/showpost.php?p=365995&postcount=47)
--> (https://forum.antichat.ru/showpost.php?p=366045&postcount=49)
можно осуществлять печать с Memo? или только с RichEdit? (https://forum.antichat.ru/showpost.php?p=366127&postcount=52)
Хотелось бы услышать несколько советов по уменьшению размера программы (http://forum.antichat.ru/thread40603.html)

Как написать чекер акков на валид ? ( конект идет через Https ) --> (https://forum.antichat.ru/showpost.php?p=369618&postcount=71)
--> (https://forum.antichat.ru/showpost.php?p=369977&postcount=73)

Как использовать в моей программе курсоры, независящие от системы?--> (https://forum.antichat.ru/showpost.php?p=369977&postcount=73)
--> (https://forum.antichat.ru/showpost.php?p=370025&postcount=75)
Как использовать ресурсы? (https://forum.antichat.ru/showpost.php?p=370026&postcount=76)

как работать с архивами из приложения? (https://forum.antichat.ru/showpost.php?p=370210&postcount=80)


как определить при помощи делфи имя компьютера?--> (https://forum.antichat.ru/showpost.php?p=374971&postcount=92)
--> (https://forum.antichat.ru/showpost.php?p=375160&postcount=93) Как получить список процессов НО ТОЛЬКО С ИХ полным путем !? (https://forum.antichat.ru/showpost.php?p=376851&postcount=95)

как создавать потоки с помощью TThread?--> (https://forum.antichat.ru/showpost.php?p=377209&postcount=98)
--> (https://forum.antichat.ru/showpost.php?p=377209&postcount=99)
--> (https://forum.antichat.ru/showpost.php?p=377209&postcount=100)

Как отправить почту ? (https://forum.antichat.ru/showpost.php?p=380375&postcount=108)

как использовать камандуную строку windows через дельфи?--> (https://forum.antichat.ru/showpost.php?p=380636&postcount=113)
--> (https://forum.antichat.ru/showpost.php?p=380648&postcount=114)
как в делфи выполнять гет, пост запросы к сайтам? --> (https://forum.antichat.ru/showpost.php?p=381489&postcount=117)
--> (https://forum.antichat.ru/showpost.php?p=381489&postcount=118)
--> (https://forum.antichat.ru/showpost.php?p=381489&postcount=119)

Как установить компонет из исходника? (https://forum.antichat.ru/showpost.php?p=381765&postcount=121)

как при помощи TIdAttachment прикрепить файл к письму ? (https://forum.antichat.ru/showpost.php?p=386734&postcount=127)

как из Delphi запустить .bat файл? (https://forum.antichat.ru/showpost.php?p=388649&postcount=136)

Как программно загрузить файл из интернета (скрытно) ? (https://forum.antichat.ru/showpost.php?p=391414&postcount=156)
Возможно ли программно установить Пароль на папку? (https://forum.antichat.ru/showpost.php?p=395368&postcount=165)

Подскажите как по имени процесса получить его Pid?
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=169)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=172)

как можно организовать перехват событий мышки в любом приложении?--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=174)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=175)

Как зделать чтобы окно не сворачивалось и не разворачивалось ?--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=194)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=196)
Как скрыть программу с панели задач?--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=221)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=222)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=223)
--> (https://forum.antichat.ru/showpost.php?p=399532&postcount=224)
как написать простенький редактор на Delphi ? (https://forum.antichat.ru/showpost.php?p=408366&postcount=227)

Есть ли исходники zlib, которые пакуют, распаковывают файлы..?--> (https://forum.antichat.ru/showpost.php?p=409065&postcount=231)
--> (https://forum.antichat.ru/showpost.php?p=409065&postcount=232)

Подскажите пример парсинга страницы? <b> текст </b> ? (https://forum.antichat.ru/showpost.php?p=412092&postcount=239)
...Для нескольких тэгов (https://forum.antichat.ru/showpost.php?p=412097&postcount=241)

как сменить иконку стороннего приложения? (https://forum.antichat.ru/showpost.php?p=415399&postcount=254)

КАк сделать переход на другую форму при нажатии кнопки? (https://forum.antichat.ru/showpost.php?p=416171&postcount=257)

Как поменять размер окна, зная её хэндл? (https://forum.antichat.ru/showpost.php?p=416190&postcount=260)

как сделать чтобы когда открывалась форма номер 2, 1 форма закрывалась? (https://forum.antichat.ru/showpost.php?p=416211&postcount=265)

а как задать размер окна, например 800х600? (https://forum.antichat.ru/showpost.php?p=416241&postcount=269)

как выводить красный текст в Мемо через Memo1.Lines.Add('text');? --> (https://forum.antichat.ru/showpost.php?p=417292&postcount=282)
--> (https://forum.antichat.ru/showpost.php?p=417109&postcount=280)

Как получить заголовок и указатель активного окна? (https://forum.antichat.ru/showpost.php?p=417364&postcount=284)

как организовать поиск определенного файла по имени или части имени?--> (https://forum.antichat.ru/showpost.php?p=420133&postcount=319)
--> (https://forum.antichat.ru/showpost.php?p=420569&postcount=320)

TServerSocket и TClientSocket, как передать файл от сервера к клиенту или наоборот? (https://forum.antichat.ru/showpost.php?p=421073&postcount=326)

Как читать файл построчно? (https://forum.antichat.ru/showpost.php?p=422372&postcount=381)

Как программно перезагрузить Компьютер? (https://forum.antichat.ru/showpost.php?p=422298&postcount=378)

Как прохешировать строку в MD5 (https://forum.antichat.ru/showpost.php?p=423770&postcount=409)

Подскажите редактор ресурсов для .res диалогов ?--> (https://forum.antichat.ru/showpost.php?p=425627&postcount=429)
--> (https://forum.antichat.ru/showpost.php?p=423770&postcount=409)

механизм Drag-and-Dock так, чтобы одна форма прилипала к другой при перетаскивании той формы, кторая должна прилипнуть, на ту форму, к котрой она должна прилипнуть примерно на 5-6 пикселей?? (https://forum.antichat.ru/showpost.php?p=426885&postcount=440)




Продолжение:

Как поставить на хук на TerminateProcess? (https://forum.antichat.ru/showpost.php?p=430544&postcount=461)

Подкиньте пример работы с aplib только без FileStream? (https://forum.antichat.ru/showpost.php?p=430894&postcount=463)

как сделать чтобы при нажатии на кнопку открывался опен диалог? (https://forum.antichat.ru/showpost.php?p=432794&postcount=467)

Как сделать чтобы при выборе в OpenDialog имя файла(+путь) выводилось в TEdit? (https://forum.antichat.ru/showpost.php?p=432828&postcount=474)

Как сделать OpenDialog & SaveDialog на WinAPI ? (https://forum.antichat.ru/showpost.php?p=434009&postcount=477)

Как масштабировать форму? (https://forum.antichat.ru/showpost.php?p=437893&postcount=495)

Как сделать чтобы окно нельзя было двигать и оно всегда было активным? (https://forum.antichat.ru/showpost.php?p=469239&postcount=646)
где взять JVCL?--> (https://forum.antichat.ru/showpost.php?p=438268&postcount=499)
--> (https://forum.antichat.ru/showpost.php?p=438268&postcount=500)
Как пропарсить файл вида sdas@mail.ru \n asdas@bk.ru ? (https://forum.antichat.ru/showpost.php?p=441787&postcount=522)

Эмуляция консоли: (https://forum.antichat.ru/showpost.php?p=448050&postcount=552)


Как осуществить отправку файла выбранного в OpenDialog1 на e-mail скрыто от пользователя ? --> (https://forum.antichat.ru/showpost.php?p=449481&postcount=563)
--> (https://forum.antichat.ru/showpost.php?p=449481&postcount=570)
Как сделать на WinApi в ListView,чтобы новые записи при добавлении добавлялись сверху вниз ? Или Снизу вверх? (https://forum.antichat.ru/showpost.php?p=456057&postcount=596)

Куда поместить ProcessMessages for WinAPI? (https://forum.antichat.ru/showpost.php?p=457816&postcount=607)

FormatDateTime('dddd, d-mmm-yy h:mm:ss',Date+Time) возвращает дату по-русски. Как сделать чтоб данная функция всегда возвращала дату по-английски?
--> (https://forum.antichat.ru/showpost.php?p=461964&postcount=626)
--> (https://forum.antichat.ru/showpost.php?p=461969&postcount=627)
как созданному файлу, иконку изменить программно? (https://forum.antichat.ru/showpost.php?p=462221&postcount=633)
как получить список дочерних процессов чужого приложения? (для win2000-XP) (https://forum.antichat.ru/showpost.php?p=466132&postcount=641)

поиск определителя матрицы, любого порядка, рекурсия (https://forum.antichat.ru/showpost.php?p=466177&postcount=644)

Как можно зашифровать файл в Base64 и разшифровать из Base64?--> (https://forum.antichat.ru/showpost.php?p=486041&postcount=666)
--> (https://forum.antichat.ru/showpost.php?p=486079&postcount=667)

как отправить письмо через WinSock c аттачментом? (https://forum.antichat.ru/showpost.php?p=486943&postcount=669)

как иконку добавить к программе? (https://forum.antichat.ru/showpost.php?p=491711&postcount=681)

Работа с ф-цией WaveOutOpen? (https://forum.antichat.ru/showpost.php?p=494734&postcount=691)

как написать программу чтоб она "заходила" на сайт допустим mysite.ru ,чтоб счетчик защитывал посещение и при этом юзер ничего не видел? (https://forum.antichat.ru/showpost.php?p=496822&postcount=699)

Поиск слова в строке/тексте (https://forum.antichat.ru/showpost.php?p=496986&postcount=702)

как программно залогинится на сйте(vBulletin)? (https://forum.antichat.ru/showpost.php?p=499728&postcount=706)

Выдаёт ошибку Project2.dpr(2): File not found: 'Crt.dcu' (https://forum.antichat.ru/showpost.php?p=500519&postcount=713)


посылка формы методом Post по Https (https://forum.antichat.ru/showpost.php?p=501101&postcount=720)

Как скопировать себя при запуске в определенное место на диске ? (https://forum.antichat.ru/showpost.php?p=501228&postcount=722)


Преобразование Ascii в шестнадцатиричное представление (https://forum.antichat.ru/showpost.php?p=502819&postcount=739)
...и обратно... (https://forum.antichat.ru/showpost.php?p=502891&postcount=740)

Как сделать форму ввиде сердца, фигуры , рисунка? (https://forum.antichat.ru/showpost.php?p=507050&postcount=746)

Как передать текст с первой формы на вторую ? (https://forum.antichat.ru/showpost.php?p=508051&postcount=748)

Как прочитать параметры запуска? ( prog.exe -param1 -param2) (https://forum.antichat.ru/showpost.php?p=514165&postcount=770)

Как использовать таймер в консоли? (https://forum.antichat.ru/showpost.php?p=516658&postcount=776)

как забрать с запученого процесса cmd его строки? (https://forum.antichat.ru/showpost.php?p=518787&postcount=785)

Работа с MySQL (https://forum.antichat.ru/showpost.php?p=521551&postcount=800) +Пример (https://forum.antichat.ru/showpost.php?p=521563&postcount=802)

Как отключить мышь? (https://forum.antichat.ru/showpost.php?p=525432&postcount=824)

Возможно ли закриптовать программный код в исходниках?--> (https://forum.antichat.ru/showpost.php?p=525595&postcount=826)
--> (https://forum.antichat.ru/showpost.php?p=526099&postcount=830) Как сделать чтобы окно загружалась по центру а не соева сверху? (https://forum.antichat.ru/showpost.php?p=528987&postcount=855)

Автозагрузка программы (https://forum.antichat.ru/showpost.php?p=532362&postcount=888)

как правильно запускать файл через коммандную строку на Delphi? (https://forum.antichat.ru/showpost.php?p=533311&postcount=890)

Как с помощью IdHTTP получить содержимое веб страницы в переменную? (https://forum.antichat.ru/showpost.php?p=545456&postcount=912)

Как изменить текст в поле другого окна?--> (https://forum.antichat.ru/showpost.php?p=548578&postcount=918)
--> (https://forum.antichat.ru/showpost.php?p=548586&postcount=919) Как написать сетевой сниффер? (https://forum.antichat.ru/showpost.php?p=549882&postcount=922)

Как вывести числа из массива в TMemo? (https://forum.antichat.ru/showpost.php?p=554958&postcount=928)

Как сделать чтобы нажатии на кнопку/ссылку открывалась нужная web страница? (https://forum.antichat.ru/showpost.php?p=558424&postcount=930)

Как изменить цвет фона в TMemo? (https://forum.antichat.ru/showpost.php?p=560180&postcount=938)

как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась? (https://forum.antichat.ru/showpost.php?p=561236&postcount=944)

как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?--> (https://forum.antichat.ru/showpost.php?p=561236&postcount=944)
--> (https://forum.antichat.ru/showpost.php?p=561245&postcount=946)
как вывести числовую матрицу на экран? (https://forum.antichat.ru/showpost.php?p=571876&postcount=995)

Как сохранить содержимое TStringGird в файл (и загрузить из файла)? (https://forum.antichat.ru/showpost.php?p=572562&postcount=1005)

Описание компонентов + новые компоненты: (https://forum.antichat.ru/showpost.php?p=573305&postcount=1007)

Описание компонентов Indy: (https://forum.antichat.ru/showpost.php?p=575213&postcount=1011)

Как создать процесс из части файла? (https://forum.antichat.ru/showpost.php?p=576111&postcount=1015)

есть ли какой нибудь мини делфи или компилятор для него? (где скачать DCC32?) (https://forum.antichat.ru/showpost.php?p=578174&postcount=1022)

Как сделать скриншот только активного окна? (https://forum.antichat.ru/showpost.php?p=580631&postcount=1027)

Как программно посчитать количество слов в тексте?--> (https://forum.antichat.ru/showpost.php?p=584598&postcount=1044)
--> (https://forum.antichat.ru/showpost.php?p=584650&postcount=1045)
--> (https://forum.antichat.ru/showpost.php?p=584668&postcount=1046)
Как записать матрицу в массив? (https://forum.antichat.ru/showpost.php?p=585536&postcount=1050)

Принцип работы бэкдора? (исходник)--> (https://forum.antichat.ru/showpost.php?p=588289&postcount=1069)
--> (https://forum.antichat.ru/showpost.php?p=588982&postcount=1074) как из компонента ListView скопировать строчку в буфер? (https://forum.antichat.ru/showpost.php?p=589446&postcount=1076)

как запустить командную строку с перенаправлением ввода вывода на сокеты? (https://forum.antichat.ru/showpost.php?p=590899&postcount=1083)

Как random в delphi генерирует случайные значения? есть какой либо алгоритм? (https://forum.antichat.ru/showpost.php?p=591440&postcount=1088)

как запретить закрытие form1 когда открыта form2? (https://forum.antichat.ru/showpost.php?p=591573&postcount=1090)

как сделать отсылку файлов через электронную почту? (https://forum.antichat.ru/showpost.php?p=593383&postcount=1104)

ICQ и Delphi (https://forum.antichat.ru/showpost.php?p=593952&postcount=1107)

Как сделать окно (сплэш) с приветствием? (https://forum.antichat.ru/showpost.php?p=594784&postcount=1112)

как узнать имена всех пользователей Windows? (https://forum.antichat.ru/showpost.php?p=595668&postcount=1121)

а как можно сменить пароль на email ? (https://forum.antichat.ru/showpost.php?p=597466&postcount=1137)

как разбить строку вида 192.168.0.1 на 192 168 0 1? (https://forum.antichat.ru/showpost.php?p=599254&postcount=1147)

как отобразить на форме картинку с какого нибудь сайта ? --> (https://forum.antichat.ru/showpost.php?p=604325&postcount=1159)
--> (https://forum.antichat.ru/showpost.php?p=609971&postcount=1173)
Как извлечь файл на диск из resource data? (https://forum.antichat.ru/showpost.php?p=611692&postcount=1180)

Можн ли в delphi написать нечто подобное : a:array[21] of TLabel? (https://forum.antichat.ru/showpost.php?p=615304&postcount=1184)

пример роботы из Делфи с MySQL? (https://forum.antichat.ru/showpost.php?p=617272&postcount=1189)




как сжать папку с файлами на Delphi (rar)?
-> (https://forum.antichat.ru/showpost.php?p=643830&postcount=1298)
-> (https://forum.antichat.ru/showpost.php?p=644090&postcount=1300)
примитивный склейщик файлов (https://forum.antichat.ru/showpost.php?p=644128&postcount=1301)

Delphi & SQLite (https://forum.antichat.ru/thread135998.html)

Isis
06.05.2007, 17:26
Ну я пожалуй начну :)
Интересует.....
Как сделать действия закрятия формы(программы), сворачивания и развертывания её !!!
Пытался сделать
Form1.Close := true;
не получилось т.к. бред :)

И еще...сделал форму свой с бордером bsNone т.е. убрал стандартные виндоус бока..Так вот..как теперь сделать так, чтобы мою форму можно было перетаскивать??А то н сдвинуть теперь с места никуда :)

l-l00K
06.05.2007, 17:32
Form1.Close; - закрытие
Application.Minimize; - сворачивание
ShowWindow(Form1.Handle,SW_MAXIMIZE); - развертывание


Чтобы можно было перетаскивать форму за любую точку, нужно добавить вот эту процедуру:

public
procedure WMNChitTest(var M:TWMNCHitTest);message wm_NchitTest;
end;

procedure TForm1.WMNChitTest(var M: TWMNCHitTest);
begin
inherited ;
if M.Result=htClient then M.Result:=HTCAPTION;
end;

Isis
06.05.2007, 18:20
Следующий вопрос..
Можно ли как-нибудь на mainMenu( выпадющий список) наложить панельку ...
Или может как-то MainMenu спустить пониже, а сверху панельку..
Вот как такое сделать

GlooK
06.05.2007, 20:01
Решил не создавать новую тему, а просто попросить выложить линки на материал по поводу ручногоо изменения Pe загловков, для того чтобы не палился пинч.

mr.The
06.05.2007, 21:37
Решил не создавать новую тему, а просто попросить выложить линки на материал по поводу ручногоо изменения Pe загловков, для того чтобы не палился пинч.
поищи на xakep.ru. в статьях. там было

xaker-boss
06.05.2007, 22:43
Люди кото может памоч? у меня чёта непалучается органезовать выключение и перезагрузку компа.
Я хочю чтоб при на жатии кнопки на Button1 комп выключался,а при нажатии на кнопку Button2 совершалась перезагрузка...Кто может скинте код,или исходник,ПЛИЗ..

Isis
06.05.2007, 22:54
Эм...ну думаю сложного ничего нету.....
Просто открыть смд и прописать команды.........
Хм..а зачем это...не легче просто выключить или ребутнуть?

l-l00K
06.05.2007, 23:04
Выключение:

var
downQuick: Boolean = False;
powerOff: Boolean = False;
logoff: Boolean = False;
reboot: Boolean = False;

...

procedure DoShutdown;
var
rl, flgs: Cardinal;
hToken: Cardinal;
tkp: TOKEN_PRIVILEGES;
begin
flgs := 0;
if downQuick then flgs := flgs or EWX_FORCE;
if not reboot then flgs := flgs or EWX_SHUTDOWN;
if reboot then flgs := flgs or EWX_REBOOT;
if poweroff and (not reboot) then flgs := flgs or EWX_POWEROFF;
if logoff then flgs := (flgs and (not (EWX_REBOOT or EWX_SHUTDOWN or EWX_POWEROFF))) or
EWX_LOGOFF;
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken) then
exit
else
begin
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.PrivilegeCount := 1;
AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl);
if GetLastError <> ERROR_SUCCESS then
Writeln('Error adjusting process privileges.');
end
else
exit;
end;

end;

ExitWindowsEx(flgs, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DoShutdown;
end;


Вот еще варианты:


ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);




останавливает работу системы в безопасный момент времени. Все буферы очищаются с сохранением данных на диске, все процессы останавливаются



ExitWindowsEx(EWX_REBOOT or ewx_force,0);




перезагрузка системы



ExitWindowsEx(EWX_FORCE or ewx_force,0);




завершает работу всех запущенных в системе приложений, не посылая им сообщения WM_QUERYENDSESSION и WM_ENDSESSIO. Это может вызвать потерю не сохраненных данных



ExitWindowsEx(EWX_POWEROFF or ewx_force,0);



завершает работу компьютера с выключением питания, если система поддерживает автоуправление питанием



ExitWindowsEx(EWX_FORCEIFHUNG or ewx_force,0);




завершает работу всех запущенных в системе приложений если система висит

Ещё вариант перезагрузки:



mov al,0F0h
out 64h,al

Isis
07.05.2007, 12:29
Пара нубских вопросов:
Как добавлять запись в файл?
Дропустим нужно все время дописывать в конец файл номера..
ПО 1 номеру на строку..
А потом какой функцией сделать поиск поф файлу?если ли такой номер

l-l00K
07.05.2007, 15:52
Добавляет запись в файл

var
SL: TStringList;
begin
Sl:=TStringList.Create;
if FileExists('myfile.txt') then SL.LoadFromFile('myfile.txt');
SL.Add('Text');
SL.SaveToFile('myfile.txt');
SL.Free;
end;

Чтобы сделать поиск, нужно просто загружать весь файл в
переменую

SL.LoadFromFile('myfile.txt');

и потом проверять наличие нужного тебе номера в каждой строчке

if SL.Strings[nomerstroki]='Text' then...;

Isis
07.05.2007, 17:10
if SL.Strings[nomerstroki]='Text' then...;
Не понятно......как я узнаю номер строки??
Ищем текст Text в файле...что за номер строки?:)

l-l00K
07.05.2007, 17:23
var
i:integer
begin
for i:=0 to Sl.Count-1 do
if Sl.Strings[i] = 'Text' then ...

Isis
07.05.2007, 18:17
Спс...
Теперь проблема с иконкой...
пытаюсь поставить иконку на прогу.....вроде ставлю, она высвечивается в заголовке программы., а сам значок проги не делается :(

l-l00K
07.05.2007, 18:20
"Projects -> Options -> Application" и там жми Load Icon...

Isis
07.05.2007, 23:29
Super Puper вопрос:
Вообщем надо сделать так:
Есть файл uins.ini такого формата

3252436;passwr
236347;264sdg34

Nак вот.....надо как-то сделать так, чтобы номер до точки с запятой был переменной UIN, а после переменная PASSWORD

l-l00K
07.05.2007, 23:38
UIN:= copy(SL.Strings[i],0,pos(';',SL.Strings[i])-1);
Pas:= copy(SL.Strings[i],pos(';',SL.Strings[i])+1,32);

Isis
08.05.2007, 08:28
Сделал проще:
var
ss:Tstrings;
begin
ss:=TStringList.Create;
ss.LoadFromFile('uins.txt');
ss.NameValueSeparator:=';';
ICQClient1.UIN := StrToInt(ss.Names[1]);
ICQClient1.Password := ss.ValueFromIndex[1];

Ci5
08.05.2007, 13:56
Как проверить что:
1. интернет включен
2. Что данные не были заблочены FireWall'ом и успешно отправлены.

inSa(Ne)rd
08.05.2007, 14:22
1.


BOOL WINAPI InternetGetConnectedState( OUT LPDWORD lpdwFlags, IN DWORD dwReserved);

// Flags for InternetGetConnectedState
#define INTERNET_CONNECTION_MODEM 1
#define INTERNET_CONNECTION_LAN 2
#define INTERNET_CONNECTION_PROXY 4
#define INTERNET_CONNECTION_MODEM_BUSY 8



#include <wininet.h>

...

DWORD dwFlags;
InternetGetConnectedState( &dwFlags, 0 );
if (dwFlags && INTERNET_CONNECTION_MODEM) printf( "модем подключен\n" );
if (dwFlags && INTERNET_CONNECTION_LAN) printf( "lan подключен\n" );

2.
Хех, если коннект к удаленному серверу прошел успешно, значит фаервол не заблочил данные)
if (connect( s, (struct sockaddr_in*)s_addr, sizeof( s_addr ) ) == SOCKET_ERROR)
printf( "заблочил)\n" ); else printf( "не заблочил)\n" );

чмок)

neji
08.05.2007, 20:48
const INTERNET_CONNECTION_MODEM = 1;
INTERNET_CONNECTION_LAN = 2;
INTERNET_CONNECTdState';
{$R *.DFM}
procedure TForm1.CheckState(Sender: TObject);
var dwConnectionTypes: DWORD;
begin
dwConnectionTypes:=IC_MODEM+IC_LAN+IC_PROXY;
if InternetGetConnectedState(@dwConnectionTypes,0)
then
ShowMessage('Youa connected')
else
ShowMessage('No Connection');
end;

Ch3ck
08.05.2007, 20:59
Как проверить что:
1. интернет включен

function InetIsOffline(Flag: Integer): Boolean;
stdcall; external 'URL.DLL';
if InetIsOffline(0) then
ShowMessage('This computer is not connected to Internet!')
else
ShowMessage('You are connected to Internet!');

neji
08.05.2007, 21:41
Я канешна извеняюсь но я написал тоже самое толька оформил хренова иба малый опыт писатьни в форумах)))

Brun
09.05.2007, 13:53
Прежде чем задавать здесь вопрос стоит посмотреть, а нет ли его сдесь -> http://forum.antichat.ru/showthread.php?p=325627#post325627 . Это хорошая тема, но интересно было бы усышать какую то интересную проблему (вопрос). Ведь спрашивать на счёт строк, которые проходят в школе это не очень серьёзно. ИМХО.

Go0o$E
09.05.2007, 14:59
2 Brun
Ладно, попробую задать вопрос немного поинтереснее...

Как реализовать отправку писем через Socks5, допустим, используя компоненты Indy - IdSMTP и TidMessage?

neji
10.05.2007, 20:24
idSmtp.Host:=<smtp>; // smtp.mail.ru
idSmtp.UserName:=<user name>;
idSmtp.Password :=<password>;
// если не надо авторизации на смтп сервере
idSmtp.AuthenticationType:=atNone
// если надо
idSmtp.AuthenticationType:=atLogin
......
if not idSmtp.Connected then idSmtp.Connect;
idMess.Body.Clear;
idMess.Body.Add('ТЕКСТ')
idMess.From.Address:=<отправитель>;
idMess.Subject:='тема';
idMess.Recipients.EMailAddresses:=<получатель>;
idSmtp.Send(idMess);
idSmtp.Disconnect;
Удачи!!

Go0o$E
11.05.2007, 20:50
2 neji

Не плохо... Осталось лишь дописать главную часть заданного мной вопроса, а именно поддержку Socks5...

Isis
13.05.2007, 19:24
У меня такой вопрос не простой....
Вообщем по TICQClient'y :)
У меня в файле допустим 15 номеров формата uins;pass
Вообщем надо сделать чтобы все эти 15 номеров подконнектились....и не выключались :)
Пытасюь сделать типа этого:
Uins.LoadFromFile('uins.txt');
Uins.LoadFromFile('uins.txt');
Uins.NameValueSeparator := ';';
for i := 0 to Uins.Count - 1 do
begin
ICQClient1.UIN := StrToInt(copy(Uins.Strings[i],0,pos(';',Uins.Strings[i])-1));
ICQClient1.Password := copy(Uins.Strings[i],pos(';',Uins.Strings[i])+1,32);
ICQClient1.Login();
end;
Этим способом выводит в онлайн только 1 номер(последний в файле),а мне надо чтобы все номера выводились..
Так вот мне сказали что надо использовать не 1 ICQClient, а столько, сколько надо номеров вывести вонлайн...

Так вот скажите пожалуйста как мне это сделать правильно и чтобы эти номера вывелись в онлайн одновременно, то бишь потоки...
Пожалуйста поподробнее...:)Надо вникнуть.
За эту задачу дам +18, только объясните подробненько каждую функцию которую будете делать...

l-l00K
13.05.2007, 23:25
Так ты выведешь только 1 номер в онлайн, так как у тебя только 1 ICQClient, а их должно быть столько же сколько и уинов, я тебе по асе кидал почти весь код своего флудера, советую немного подучить Delphi, тогда ты сможешь воспользоваться моим кодом

slesh
14.05.2007, 00:04
Можно еще попробывать создавать потоки и потом в Runtime создавать TICQClient.

Вот пример создания в рунтайме n-го колва кнопок и присвоение им обработчика клика. Также можно и создать скока хошь TICQClient'ов
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s:array of tbutton;
const
b_c=4;

implementation

{$R *.dfm}
procedure my_click(Self: pointer; Sender: TObject);
begin
showmessage(inttostr(Tbutton(sender).Tag));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
begin
setlength(s,b_c);
for x:=0 to b_c-1 do begin
s[x]:=tbutton.Create(self);
s[x].ParentWindow:=form1.Handle;
s[x].Caption:=inttostr(x);
s[x].Left:=10;
s[x].Top:=40*x;
s[x].Tag:=x;
@s[x].OnClick:=@my_click;
end;
end;

end.

slesh
14.05.2007, 00:09
2 Go0o$E На счет писам - дык можно запросто юзать обычные сокеты :)
И через почтовые шлюзы отправлять письма. А там какой хошь такой и пиши адрес отправителя. Если заюзать сокеты то запросто можно всё переложить на socks5
Я себе для теста писал модуль дельфяный который сам создавал соединение с сокс5 прокси и возвращал дескптор сокета. модуль конечно сырой. (т.е. можно юзать тока IP и только TCP Connect). Если нужен, то могу выложить

tip4il
15.05.2007, 22:50
вообшем вопрос как создать сторожа, который "наблюдает" за сайтом т.е. заходит на сайт каждые 20 минут и проверяет изменилось ли что-нибудь или нет.
мнеб какой-нибудь сорц или хотяб примерно как это это осушествить

begin_end
16.05.2007, 00:42
tip4il, я похожего сторожа писал, но он оказался не сильно эффективен. На таком крупном и активном форуме каждые 20 минут гарантированно происходят изменения. К тому же имеются возможности для этого у самого форума.
Вообще сначала определи требования к сторожу: что именно надо - обнаруживать любые изменения в конкретных разделах, просто создание новых тем или пр. В лучшем варианте это съест 75 Кб траффика (загрузка главной страницы форума), а если что-то посложнее - нужно будет тратить ещё больше.
Реализация возможна следующими средствами: использовать idHTTP или использовать WebBrowser. В всяком случае грузим html и производим выборочные сравнения с ранее загруженным, замечая отличия.

slesh
16.05.2007, 23:08
Почему все так и лезук к визуальным компонентам?
Если легче юзать напрямую сокеты.
Вот я написал парочку функций для работы с сокетами и всё время их юзаю.
К примеруЖ функции передаешь адрес буфера где содержится HTTP-заголовки, адрес буфера куда будет помещан ответ, IP сервака и порт куда нужно подсоедениться. И всё пашет запросто. Даже Time-out есть :)
Особенно удобно юзать если юзаются потоки

Piflit
17.05.2007, 02:09
дайте плиз учебник или статьи по сетевым компонентам (Indy), или статьи на эту тему. или сорцы с большим количеством комментов.
http://www.programmersclub.ru/book тут я уже был.
я начинающий, так что особо не понайте :)
всем заранее очень благодарен!))

begin_end
17.05.2007, 04:24
Я как раз занимаюсь подобной тематикой.
Вот статьи, из написанных мной, где рассматривается работа с некоторыми INDY-компонентами:

Пишем простенький браузер (http://forum.antichat.ru/thread33165.html)
Простейший IRC-клиент на Delphi, средствами INDY (http://forum.antichat.ru/thread34872.html)
Простой веб-сервер на Дельфи (http://forum.antichat.ru/thread36384.html)
Пишем быстро простой бэкдор на основе idHTTPServer (http://forum.antichat.ru/thread36969.html)
Бесформенное использование INDY на примере Id http ProxyServer (http://forum.antichat.ru/thread38342.html)

К статьям обычно прилагается прокомментированный исходный код. Кроме самих статей, в теме после них, иногда бывают ещё указаны ссылки на полезные литературные источники.

PS: Всё это было на форуме и до этого поста :) . Рекомендую начать использовать поиск.

Astral_Master
18.05.2007, 07:50
Люди, подскажите. Я не силен с работой с графикой в делфе.. не так давно один человечек попросил написать меня простенькие графические часики..
я сделал форму, которая рисуется по контуру загруженной картинки циферблата, сделал перетаскивание часов по экрану за любую их часть, расчитал попиксельно, куда должна с каждой новой секундой отклоняться стрелка в зависимости от начального положения.
Даже стрелку нарисовал стандартными MoveTo, LineTo. Вот тут загвоздочка и пошла... стрелка-то, конечно, рисуется, и отрисовывается куда надо, только звездочка получается, потому что рефреша нету. Делаю рефреш - обновляется и картинка циферблата, отображая только равномерный Color формы... искал помощи в разны местах - не нашел. Может кто сможет помочь?
Не стоит говорить в своих ответах что-то вроде "зачем тебе часы, если их сейчас можно найти и скачать навалом..." Если я задаю вопрос, значит мне действительно это нужно.
Спасибо заранее тем, кто сможет помочь разобраться!

Ник Ример

hidden
18.05.2007, 08:22
Тебе нужна буфферизация(вспомогатель ая картинка), вот простенький пример набросалvar
Form1: TForm1;
bm : TBitmap;
im : TBitmap;
al : Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
bm:=TBitmap.Create;
bm.Width:=128;
bm.Height:=128;
im:=TBitmap.Create;
im.LoadFromFile('D:\MyDocs\My Pictures\untitled.bmp');
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.Draw(0, 0, bm);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
bm.Canvas.Draw(0, 0, im);
bm.Canvas.Pen.Color:=$00FF00;
bm.Canvas.MoveTo(64, 64);
bm.Canvas.LineTo(round(sin(al/60*pi*2)*64)+64, round(cos(al/60*pi*2)*64)+64);
dec(al);
Form1.Canvas.Draw(0, 0, bm);
end;

Piflit
18.05.2007, 13:29
подскажите какие-нибудь проги для начинающих для самостоятельного написания. ведь теория без практики - это не есть гуд) просто подкиньте идей, а в процессе написания можно будет и теорию подучить, и в целом потренироваться.
заранее спасибо =)

begin_end
18.05.2007, 13:56
О, вот возможно интересное задание - попробуй постепенно воспроизвести стандартный набор Windows: напиши блокнот, калькулятор, проводник, Интернет-браузер, редактор типа WordPad и медиаплеер в этой последовательности. Я начинал своё самообучение именно так.
В ходе создания программ тебе потребуется освоить работу с практически всеми визуальными компонентами. Причём, благодаря таким компонентам, само написание программ очень простое! А ещё есть исходники их (конечно на Делфи - можно подсмотреть). При возникновении конкретных проблем тебе всегда помогут здесь :)
Однако, если ещё ты не запускал Делфи, не видел "HelloWorld" и не знаешь, где пункт "Compile", то приступать к подобным заданиям не следует. Нужно хорошо освоить синтаксис языка и функционал среды разработки для того, чтобы хоть как то начать.

Piflit
18.05.2007, 19:20
и первый вопрос. создание блокнота. какой должен быть тип возвращаемого функцией значения, если функция сохраняет файл?
второй вопрос: если создан новый текстовой файл (а не открыт существующий), то при попытке save
MainMemo.Lines.SaveToFile(FName);
вылетает ошибка. FName появляется после использования OpenDialog.
if OpenDialog1.Execute then
begin
FName:=OpenDialog1.FileName;
MainMemo.Lines.LoadFromFile(FName);
end;
я хочу решить эту проблему с помощью проверки на существование FName и функции, сделанной из обработчика SaveDialog
begin
SaveDialog1.FileName:=FName;
if SaveDialog1.Execute then
begin
FName:=SaveDialog1.FileName;
MainMemo.Lines.SaveToFile(FName);
end;
end;
может есть какое-то более правильное решение? если да, на вопрос номер 1 просьба все равно ответить.
ЗЫ помогаюсь книжкой Архангельского "100 компонентов общего назначения библиотеки Delphi 5"
ЗЫЫ to begin end ;)

anarсhist
18.05.2007, 20:02
... напиши блокнот, калькулятор, проводник, Интернет-браузер, редактор типа WordPad и медиаплеер в этой последовательности...


Когда-то еще в школе писал нечто на подобее вордпада, потом резко забил... вобщем была небольшая проблемка :
передача редактору имени файла при открытии через проводник (пр. кн. мыши - откр. с помощью - мой редактор)

стыдно, но до сих пор не наю как ето сделать =(

hidden
18.05.2007, 20:18
и первый вопрос. создание блокнота. какой должен быть тип возвращаемого функцией значения, если функция сохраняет файл?У неё нет возвращяемого значения, это процедура. Для проверки на ошибку используй try except end;

второй вопрос: если создан новый текстовой файл (а не открыт существующий), то при попытке savevar
Form1: TForm1;
FName : String = 'Untinled.txt';

Когда-то еще в школе писал нечто на подобее вордпада, потом резко забил... вобщем была небольшая проблемка :
передача редактору имени файла при открытии через проводник (пр. кн. мыши - откр. с помощью - мой редактор)

стыдно, но до сих пор не наю как ето сделать =(procedure TForm1.FormCreate(Sender: TObject);
begin
FName:=ParamStr(1);
if(FileExists(FName)) then MyNotepadOpenFile(FName);
end;

Piflit
18.05.2007, 20:49
У неё нет возвращяемого значения, это процедура.

напиши пример плз

hidden
18.05.2007, 21:00
напиши пример плз try
Memo1.Lines.SaveToFile(FName);
except
// Сюда перейдёт только если произойдёт ошибка
end;

Piflit
18.05.2007, 21:07
я имел в виду немного не то. сам код ошибки должен откуда-то браться. и этот же самый код должен быть в процедуре save as. то есть я не хочу два раза писать один и тот же код, а загнать его в функцию. и меня интересует оформление функции. ты написал ее содержание.

и еще вопрос. можно осуществлять печать с Memo? или только с RichEdit?

anarсhist
18.05.2007, 21:44
и еще вопрос. можно осуществлять печать с Memo? или только с RichEdit?

uses Printers;

procedure PrintTxt(Strings: TStrings);
var
f: TextFile;
i: word;
begin
AssignPrn(f);
try
Rewrite(f);
try
for i := 0 to Strings.Count - 1 do
writeln(f, Strings.Strings[i]);
finally
CloseFile(f);
end;
except
on EInOutError do
MessageDlg('oшибка печати', mtError, [mbOk], 0);
end;
end;

для мемо дальше делаешь: printtxt(memo1.lines)

hidden
18.05.2007, 22:32
я имел в виду немного не то. сам код ошибки должен откуда-то браться. и этот же самый код должен быть в процедуре save as. то есть я не хочу два раза писать один и тот же код, а загнать его в функцию. и меня интересует оформление функции. ты написал ее содержание.Я непонимаю что собственно тебе надо в этом вопросе, вот посмотри пример простейшего редактора тут: \Borland\Delphi7\Demos\Clx\BasicEd\*

и еще вопрос. можно осуществлять печать с Memo? или только с RichEdit?use QPrinters;
var prn : TPrinter;
prn := TPrinter.Create;
prn.BeginDoc;
prn.Canvas.TextOut( ... );
prn.EndDoc;
Да поможет тебе F1 ;)

Piflit
18.05.2007, 22:42
Я непонимаю что собственно тебе надо в этом вопросе, вот посмотри пример простейшего редактора тут: \Borland\Delphi7\Demos\Clx\BasicEd\*

походу я сам немного запутался. мне нужно, чтобы были кнопки save и save as. в борландовском примере только вторая. а может save и не надо?

hidden
18.05.2007, 22:49
походу я сам немного запутался. мне нужно, чтобы были кнопки save и save as. в борландовском примере только вторая. а может save и не надо?Обязательно нужна, я когда пользуюсь редактором нажимаю её по 2 раза в минуту :D
При нажатии Save, проверь, если файл не существует, тогда передай управление обработчику SaveAs, иначе просто сохрани.

Piflit
19.05.2007, 21:10
всем спасибо, все получилось, про горячие клавиши не забыл))
теперь буду с печатью разбираться...
ЗЫ я потом исходники выложу, а вы покритикуете. ок?

Fen-Omen
20.05.2007, 20:21
Хотелось бы услышать несколько советов по уменьшению размера программы (без Usp)...

Piflit
20.05.2007, 20:57
Хотелось бы услышать несколько советов по уменьшению размера программы

аналогично

inSa(Ne)rd
20.05.2007, 21:29
уменьшение размера программы, написаной в делфе делается любым текстовым редактором, например notepad, для этого надо:
1) нопесать программу в делфе
2) открыть эту программу (.exe) в редакторе notepad
3) поставить курсор на место, с которого хотите провести обрезание
4) выделить все содержимое ниже курсора
5) нажать delete или backspace, удалив это содержимое

так можно уменьшать программы

PS. для слишком больших ехе, которые тяжело открыть через notepad - используйте wordpad или Microsoft(R) Word(R) 2007.

PS2
> (без Usp).
если не хочешь использовать Usp контровский пислолет 1.1 то бери калаш или эмку. с ней удобнее в хед попадать да и патронов в обойме больше

// кез пьян от передоза баклафена

l-l00K
20.05.2007, 22:57
Если хочешь не большой размер программы, то пиши ее с использованием KOL или с использованием WinApi

slesh
20.05.2007, 23:52
Вот на winapi и с ипользованием диалогов, у меня проги получились без p;fnbz по 18-20 килобайт

slesh
21.05.2007, 01:15
2 begin end Кстати, у меня както была задумка написать чтото типа конвертора простых форм.
т.е. чтобы можно было конвертить из VCL на чистый API. В принципе всё просто. Но потребует времяни.

podkashey
21.05.2007, 08:36
Если кто-то работал с FastReport, то отпишите в ПМ плиз. Есть вопросег.

Piflit
21.05.2007, 18:16
В ближайшее время я собираюсь написать подробную статью по этой тематике

буду ждать с нетерпением))))
и распиши еще там все как можно подробнее плз=)

mr1
21.05.2007, 21:51
народ дайте ссылку где скачать delPHi .... и все необходимое...

Piflit
21.05.2007, 22:29
delPHi

mr1
21.05.2007, 22:34
ты лучшессылку дай а не опечатку исправляй (все равно спасиб ....

Piflit
21.05.2007, 23:09
если очень попросите, могу залить на рапиду))

slesh
22.05.2007, 12:05
Качнуть дельфу... LOL *ROFL*
На борланде поищи. Вес гдето около 350 метров.
Блин это прям как на башорге:

<+Dr3d> Где скачать МСДН
<@sanniassin> в инторнете
<+Dr3d> Дайте точную ссылку, а то трафика жалко

AHTOLLlKA
22.05.2007, 12:25
смысл такой, нужно написать чекер акков на валид, конект идет через Https, если есть примеры то поделитесь

Piflit
22.05.2007, 16:26
На борланде поищи. Вес гдето около 350 метров.

на борланде она случайно не триальная? :)

в любом случае, вот: (delphi 7)
часть 1 (http://rapidshare.com/files/32721538/del_7e.part1.rar.html) 101376 KB

часть 2 (http://rapidshare.com/files/32724050/del_7e.part2.rar.html) 21811 KB

в сумме 120 метров =)

пасс на оба архива http://netz.ru

когда-то давно нашел на каком-то сайте=)

Astral_Master
22.05.2007, 22:06
Ребята, такой, наверное, самый распространенный вопрос, ответ на который я никак не получу.. уверен, здесь толковых и знающих людей много, поможете..
В общем, суть проста.. моя программа использует нестандартные шрифты.. я реализовал на данном этапе только то, что встроил их в setup к программе, таким образом они добавляются в папку Windows\Fonts
Я знаю, что шрифты можно "зашивать" внутрь программы, таким образом установка шрифтов в систему не требуется, отображаются же они в программе корректно. Как это реализовать в делфи?

Подобный вопрос у меня о курсорах. Как использовать в моей программе курсоры, независящие от системы?.. то есть какие-нибудь свои.. надеюсь, что можно использовать не только cur, но и ani ??

Спасибо всем, кто откликнется!

Ник Ример

slesh
22.05.2007, 23:08
2 AHTOLLlKA - могу дасть дать исходник одного чекера. Челал ок номера кредиток. Всё написано на дельфе. Юзается библиотека виндовая, та через которую осел юзает SSL.
Правдо однопоточная система. Но переделать сможешь. Если что, то стучись в АСЮ.
----------

2 Astral_Master
1) Курсоры:

const
MyConst = 100;
.-.-.-.-.-.
Screen.Cursors[MyConst] := LoadCursor(hInstance,'MYCURSOR');
Screen.Cursor := MyConst;

MYCURSOR - имя курсора в ресурсах.

2) Вот пример работы со шрифтом:

// При создании фотрмы добавить новый шрифт, что хранится в ресурсах
procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
Res.SavetoFile('MYFONT.ttf');
Res.Free;
AddFontResource(PChar('MYFONT.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

// Испольхзование
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'MYFONT';
end;

// Удаление
procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("MYFONT.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

Astral_Master
22.05.2007, 23:22
Спасибо большое, завтра попробую обязательно, а то уже в сон клонит..
У меня теперь вопрос другого плана.. а как пользоваться этими ресурсами? В смысле, как подключить их к юниту делфи и использовать после этого внутри.. знаю стандартную утилиту для создания ресурсного файла.. но, кажется, он не поддерживает закачку шрифтов.. и курсоры только cur.. да и более того, не более 256 цветов для любой картинки... нет ли инструмента помощнее?
Спасибо откликнувшемуся! Простите, что плюсы не ставлю, так репутация нулевая.. не за что мне ее повышать...

Ник Ример

slesh
22.05.2007, 23:55
2 Astral_Master
ДЫк тебе нужно подрубить к проекту файл с ресурсами.
Мож прям a форму дабавить {$R myres.res}
Ну файлы с ресурсами можешь создать с какомнить левом редакторе ресурсов.
К примеру можно заюзать от VC++
Или еще лучше - юзай RC файлы.
т.е. это файл в котором описываются ресурсы. потом его можно добавить к ресурсу.
Мож вырозился не так. Но суть такова. В этом файле прописываешь тип ресурса и его имя и файл от куда берутся данные.
К примеру чтобы грузануть звук. ТО файл выглядет так:
-.-.-.-.
110 WAVE sound1.wav
120 WAVE sound2.wav
-.-.-.-.

Для включения ширта юзай вот такую вот вешь:
MY_FONT ANYOL1 "Bauhs93.ttf"
Имя, Тип ресурса, файл где хранятся данные.
Вот так вот можно засунуть JPEG:
1 RCDATA "MyPic.jpg"
И тогда чтобы юзать его. Нужно:

uses jpeg;
-.-.-.-.-
procedure LoadJPEGfromEXE;
var
MyJPG: TJPEGImage; // Объект - JPEG
ResStream: TResourceStream; // Объект - поток ресурсов
begin
try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream);
Canvas.Draw(12, 12, MyJPG);
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure

slesh
22.05.2007, 23:57
Вот пример статьи как юзать ресурсы:

У меня имеется приблизительно 36 маленьких растровых изображений, которые я хочу сохранить в файле и затем прилинковать его к exe. Как мне поместить их в res-файл?

Самый простой путь - создать файл с именем "BITMAPS.RC" и поместить в него список ваших .BMP-файлов:


BMAP1 BITMAP BMAP1.BMP
BMAP2 BITMAP BMAP2.BMP
CLOCK BITMAP CLOCK.BMP
DBLCK BITMAP DBLCK.BMP
DELOK BITMAP DELOK.BMP
LUPE BITMAP LUPE.BMP
OK BITMAP OK.BMP
TIMEEDIT BITMAP TIMEEDIT.BMP
Затем загрузите Resource Workshop (RW) и выберите пункт меню File|Project Open. В выпадающем списке "File Type" (тип файла) выберите RC-Resource Script и откройте файл, который вы только что создали. После того, как RW загрузит ваш файл, выберите пункт меню File|Project save as. Выберите объект RES-Resource из выпадающего списка "File Type" (тип файла). В поле редактирования "New File name" задайте имя нового файла, скажем, BITMAPS.RES. Нажмите OK. Теперь у вас есть файл ресурса. В вашем модуле Delphi добавьте после строки {$R *.RES} строку {$R BITMAPS.RES}. После компиляции вы получите exe-файл с скомпилированными ресурсами. Для получения доступа к ресурсам во время выполнения программы нужно сделать следующее:

myImage.Picture.Bitmap.Handle := LoadBitmap(HInstance, 'TIMEEDIT');

В качестве предостережения: убедитесь в том, что имена (в самой левой колонке) изображений в .RC файле написаны в верхнем регистре, при вызове также необходимо писать их имена в верхнем регистре.

Astral_Master
23.05.2007, 06:55
Спасибо огромное! Буду сегодня пробовать.. ну вы ребята и умные, я просто фигею :)
А может кто из вас знает, как работать с архивами из приложения? нередки случаи использования экзешником какого-нибудь ресурса, изначально запакованного в какой-нибудь, например, dat файл, который по сути является простым архивом. Бывают и не стандартные архивные, но тоже компресованные форматы.. как возможно и возможно ли использование таких ресурсов?

Ник Ример

Astral_Master
23.05.2007, 09:27
Пробовал найти Resource Workshop, занятие неблагодарное.. можно сказать, что успехом поиски не увенчались, или же не совсем. Я нашел программу версии 4.5, но она, кажися, 16-тиразрядная. При запуске под виндой получаю warning-сообщение типа: "Не найден файл D:\ResWorkshop\workshop.exe или один из его компонентов. Проверьте правильность бла-бла-бла..." с заголовком "Не удается запустить 16-разрядную программу для Wi" (наверное, для Windows?! :) ). Как заставить его работать, если у меня Win2k SP4?? Ставить Borland C++ ради одного малюсенького приложения как-то влом, да и к тому же я потерял где-то диск..
Хм.. я еще не задолбал вопросами? :)

P.S. я там на 8-й еще немножко написал.. :rolleyes:

hidden
23.05.2007, 09:46
http://www.mininova.org/search/?Delphi+7 - Так никто не искал?

Xserg
23.05.2007, 09:59
Astral_Master
Текст в myres.rc
LORDPE RAR Lordpe.rar
DATA DAT Data.dat

Получаем myres.res
Выполняем brcc32.exe myres.rc
//brcc32.exe там же, где и Delphi.exe


rar:=TResourceStream.Create(Hinstance,'LORDPE','RA R');
x:=Dword(rar.Memory); //адрес ресурса в памяти
y:=int64(rar.Size); //размер ресурса
rar:=TResourceStream.Create(Hinstance,'DATA','DAT' );
x:=Dword(rar.Memory); //адрес ресурса в памяти
y:=int64(rar.Size); //размер ресурса

rar.SaveToFile('my.rar'); //можно использовать так

slesh
23.05.2007, 10:44
2 Astral_Master
C воркшопом есть один прикол. ТАм в настройках можно ставить 16 бит или 32

Astral_Master
23.05.2007, 11:24
Да как же попасть к этим настройкам, если программа не запускается-то? По экзешнику щелкаешь, да и ошибка сразу выскакивает, приложение не запускается.. как же это сделать-то? Давай, если удобно, свяжемся сегодня по icq? Я сейчас ухожу, но буду уже через несколько часов дома.. мой номер в профиле указан.

Ник Ример

Colidius
24.05.2007, 14:31
я так понял что вопросы по delphi задавать тут... если нет не обессудьте...
вообщем вопрос такой я перевожу число(dec) в 16-теричный формат(hex) и мне нужно передать это через UDP(Indy)
вот допустим перевожу число символов находящихся в мемо:

var len,hexlen:string;
lenmes:integer;
begin
lenmes:=length(Memo1.Lines.Text); hexlen:=Format('%0x',[lenmes]);
len:=#$+hexlen; IdUDPClient1.Send('192.168.0.255',4578,len);

здесь у меня не получается какретно отправить это всё hex`ом.
Я так понял len:=#$+hexlen; это чушь... без привязки #$ тож не получается, как быть подскажите? :confused:

Hellsp@wn
24.05.2007, 14:39
var
nexlen:dword;
len:string;
begin
nexlen:=length(text);
len:=IntToHex(nexlen,8) ?

Colidius
25.05.2007, 00:22
var
nexlen:dword;
len:string;
begin
nexlen:=length(text);
len:=IntToHex(nexlen,8) ?
нет, не прокатит оно типа как стринг передастся...

Joker-jar
25.05.2007, 12:07
Colidius, твой метод число тоже передает как строку. В каком конкретно формате нужно передать?

Hellsp@wn
25.05.2007, 13:22
Твой метод число тоже передает как строку. В каком конкретно формате нужно передать?

ну дык ты строку и посылал, что не так?
ты норм объяснить не можешь, что тебе надо))

Colidius
26.05.2007, 07:59
Colidius, твой метод число тоже передает как строку. В каком конкретно формате нужно передать?
вот знаешь в чём разника когда просто передаешь
11 и #$11 ? первый просто строчка а второй в 16-ричной системе, мне нужен второй вариант, блин. ну я не знаю как ещё объяснить попробуйте переслать кому непонятно и посмотрите снифером =)

NetMan
27.05.2007, 01:10
вот знаешь в чём разника когда просто передаешь
11 и #$11 ? первый просто строчка а второй в 16-ричной системе, мне нужен второй вариант, блин. ну я не знаю как ещё объяснить попробуйте переслать кому непонятно и посмотрите снифером =)
Тогда так надо len:='#$'+IntToHex(nexlen,8);

Colidius
27.05.2007, 23:29
Тогда так надо len:='#$'+IntToHex(nexlen,8);
а вот и нет, так тоже не получится... предаёт как строку... только впереди приписывается #$!
эх, если бы было всё так просто я бы не задавал этот вопрос на форуме, я тож подумал что всё у меня будет в шоколаде, но вот не смог закончить прогу только из-за это шняги...

x-treem
29.05.2007, 08:50
скажите, как определить при помощи делфи имя компьютера?

Joker-jar
29.05.2007, 10:42
Function ReadComputerName:string;
var
i:DWORD;
p:PChar;
begin
i:=255;
GetMem(p, i);
GetComputerName(p, i);
Result:=String(p);
FreeMem(p);
end;

NetMan
29.05.2007, 15:05
Можно и без дополнительной переменной PChar сделать...

function CompName:string;
var nSize:Cardinal;
begin
nSize:=MAX_COMPUTERNAME_LENGTH+1;
SetLength(Result,nSize);
GetComputerName(@Result[1],nSize);
SetLength(Result,nSize);
end;

zl0y
31.05.2007, 15:55
Как получить список процессов НО ТОЛЬКО С ИХ полным путем !? тоесть: не winlogon.exe а c:\windows\winlogon.exe ;) ???

NetMan
31.05.2007, 18:13
Как получить список процессов НО ТОЛЬКО С ИХ полным путем !? тоесть: не winlogon.exe а c:\windows\winlogon.exe ;) ???
Причерчик есть здесь :
Прочитать список всех запущенных Exe и проверить, запущен ли Exe (http://www.delphisources.ru/pages/faq/base/is_exe_running.html)
Проверял, работает!

zl0y
31.05.2007, 18:32
NetMan
Спасибо то что нужно =)

Isis
01.06.2007, 00:52
Помогите с потоками
Расскажите пожалуйста как создавать потоки с помощью TThread....
Что, как для чего и т.п. :)
И покажите например как сделать чтобы одновременно вывелось 2 сообщения ну или чтобы одновременно записались ...
Вообщем покажите как делать потоки.
Спасибо

NetMan
01.06.2007, 01:12
Потоки (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1125)

Joker-jar
01.06.2007, 01:15
Значит так в двух словах. Открываешь делфню - там проект пустой. Сохраняешь его в папку какую-нибудь. Потом выполняешь файл - создать - другое - объект потока. В классе написать можно что-нибудь типа TMyThread. Создастся новый модуль с методом Execute - то, что должно выполняться в потоке. Для теста можно всунуть что-нибудь, что должно занять пару секунд на выполнение, например winexec(какая-нибудь большая прога, sw_show). Этот модуль подключаешь к проекту и сохраняешь в ту же папку. В проекте делаешь кнопку, на ней событие, например такое
var
potok: TMyThread;
begin
potok := TMyThread.Create(true);
potok.Resume;
messagebox(handle,'хай','xaй',mb_iconerror or mb_ok);
end;
Ну и в итоге получается, что мессажбокс вылазит, не дожидаясь загрузки какой-нибудь большой программы.

З.Ы. Если поток что-то с интерфейсом проги мутит, нужно синхронизацию юзать

З.З.Ы. Я лично апишками потоки мучу, имхо удобней

slesh
01.06.2007, 12:14
Я для работы с потоком юзаю вот такие вот вещи:

var
thread_id:array[1..100] of dword; // типа 100 потоков можно будет юзать

..........
procedure mypotok(id:dword);stdcall;
begin
..............
end;
.......
for x:=1 to 100 do
begin
thread_id[x]:=CreateThread(nil, 0, @mypotok, pointer(x), 0, thread_id[x]); // запустить потоки
SuspendThread(thread_id[x]); // приостановить потоки
ResumeThread(thread_id[x]); // возобновить работу потоков
TerminateThread(thread_id[x],0); // прибить поток
end;

Всё На чистом апи. При запуске потока ему передается его номер (ID)

trOid
03.06.2007, 13:35
Помогите решить пару задачек плиз
две параболы на плоскости заданы коэфициэнтами своих уравнений. Выяснить, существуют для них точки пересечения, если есть, то найти их
Задав пользователю только один дополнительный вопрос с ответом "да" или "нет", определить, писать окончание "ым" или "ом" в мужском и среднем роде прилагательных. ( Например в словах новом, новым)

da_ff
03.06.2007, 15:55
Задав пользователю только один дополнительный вопрос с ответом "да" или "нет", определить, писать окончание "ым" или "ом" в мужском и среднем роде прилагательных. ( Например в словах новом, новым)
Вопрос: Правильно будет написать "ым"?
ответ: да\нет =)

Piflit
03.06.2007, 17:41
Помогите решить пару задачек плиз

Задав пользователю только один дополнительный вопрос с ответом "да" или "нет", определить, писать окончание "ым" или "ом" в мужском и среднем роде прилагательных. ( Например в словах новом, новым)


поясни условие =)

Fata1ex
03.06.2007, 17:59
две параболы на плоскости заданы коэфициэнтами своих уравнений. Выяснить, существуют для них точки пересечения, если есть, то найти их
Решаем систему уравнений. все элементарно.

ALPAN
05.06.2007, 12:36
Хай всем! Я ламер ушастый, прошу не дергать за уши. Так это было вступление. Меня интересует, возможно ли отправка сообщений на мыло с помощью дельфина. Заранее благодарю. Кстати это мое первое сообщение. Можете поздравить.

Piflit
05.06.2007, 12:45
Меня интересует, возможно ли отправка сообщений на мыло с помощью дельфина.

да

Я ламер ушастый, прошу не дергать за уши.

на ачате эльфы? откуда?

ALPAN
05.06.2007, 12:55
А можно не много подробней?

The_HuliGun
05.06.2007, 13:03
Отправку письма замутить можно, было бы время и желание.
Юзай компоненты IdSMTP с вкладки Indy Clients и idMessage с вкладки Indy Misc. Ставь кнопень, пиши код


procedure TForm1.Button1Click(Sender: TObject);
var
IdSMTP: TIdSMTP;
idMessage: TidMessage;
begin
idMessage := TIdMessage.Create(nil);
try
with idMessage do
begin
Recipients.Add.Address :='lol@mail.ru';{ кому отправляем }
Subject :='Привет с античата!';{Тема}
From.Address := 'Inter@yandex.ru';{ свое мыло }
Body.Text := 'Добрый день'+#13+
'Я знаю Delphi';
end;
IdSMTP := TIdSMTP.Create(nil);
with IdSMTP do
try
Host := 'smtp.ukrwest.net'; { сервер исходящей почты }
Connect;
Send(idMessage);
Disconnect;
finally
Free;
end;
finally
Free;
end;
end;


и будет тебе щастье!

З. Ы. Как видите так можно посылать анонимную почту. Удачи!

ALPAN
05.06.2007, 13:11
ух ты! спасибо большое! у меня еще один вопрос. Где можно скачать дополнительные компоненты?

GlobaL
05.06.2007, 17:17
Есть ли такая возможность использовать камандуную строку виндовса через дельфи?

NetMan
05.06.2007, 17:44
Есть ли такая возможность использовать камандуную строку виндовса через дельфи?
Что под этим подразумевается? Выполнение команд?

GlobaL
05.06.2007, 17:48
Что под этим подразумевается? Выполнение команд?
да, как из cmd.exe

begin_end
05.06.2007, 18:10
Такая возможность есть. Если тебе нужно выполнить команду запуска программы по имени, то ты можешь сделать это, например, через функцию WinExec: WinExec('someappname.exe',0);
А если нужно не просто осуществить такую команду запуска, но и получить результат её выполнения (текст из консоли), то тут пригодится следующий код (https://forum.antichat.ru/showthread.php?p=295979#post295979).

NetMan
05.06.2007, 18:31
Если выполнить команду из cmd.exe, то, например, так:
WinExec('cmd /c copy c:\1.txt c:\2.txt',SW_HIDE);
Ключ /c - выполнение указанной команды (строки) с последующим завершением.

GlobaL
05.06.2007, 18:43
спс, то что я искал

Isis
06.06.2007, 17:00
GET,POST запросы
Скажи те плз, как в делфи выполнять гет, пост запросы к сайтам.....
Покажите плз пример програмки...
Какой компонент юзать?
И т.д. и т.п.
Самый развернутый ответ получит +10 =\

NetMan
06.06.2007, 17:24
Использование Internet-функций Win32® API (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=401)

[add]
Введение в WinInet (http://rsdn.ru/article/inet/wininet.xml) (примеры на C++, но на Delphi переделать не проблема)

The_HuliGun
06.06.2007, 17:51
Нужен компонент IdHTTP с вкладки Indy Clients например следующий код


procedure TForm1.Button1Click(Sender: TObject);
var sl : TStringList;
begin
sl := TStringList.Create;
sl.Add('id=111');
sl.Add('pass=***');
Memo1.Lines.Text:=IdHTTP1.Post('http://www.ya.ru',sl);
end;


выведет в мемо html код страницы, полученной пост запросом.
Если нужно сделать get запрос, используй метод IdHTTP1.Get

slesh
06.06.2007, 18:47
А я не парясь мучаюсь вот так вот:

procedure timeouts(wnd:hwnd;uMsg:UINT;id:UINT;dwtime:dword); stdcall;
begin
tout:=true;
closesocket(socket_id);
end;

function send_packs(ip:string; port:word; send_buf:string; var recv_buf:string):integer;
var
SockAddrIn: TSockAddrIn;
tmp_buf:array[1..1024] of char;
len:longint;
begin
result:=-10;
socket_id:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if socket_id=WINDOWS.INVALID_HANDLE_VALUE then exit;
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_port := htons(port);
SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(ip));
result:=-20;
if Connect(socket_id, @SockAddrIn, SizeOf(SockAddrIn))<>0 then exit;
tout:=false;
windows.SetTimer(form1.Handle,1,30000,@timeouts);
send(socket_id,send_buf[1],length(send_buf),0);
recv_buf:='';
repeat
len:=recv(socket_id,tmp_buf,1024,0);
recv_buf:=recv_buf+copy(tmp_buf,1,len);
until len<=0;
killtimer(form1.Handle,1);
result:=-30;
if tout=true then exit;
result:=length(recv_buf);
closesocket(socket_id);
end;


Чисто делал код под многопаточную работу через прокси с использованием TIMEOUT

примет юзанья:

buf_send:=
'GET http://xz.org/? HTTP/1.0'#13#10+
'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'#13#10+
'Referer: http://xz.ru/'#13#10+
'Accept-Language: ru-ru'#13#10+
'Proxy-Connection: Keep-Alive'#13#10+
'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))'#13#10+
'Host: xz.org'#13#10#13#10;

case send_packs(proxy[x].ip,proxy[x].port,buf_send,buf_recv) of
-10:begin
form1.memo2.Lines.Add('Ошибка создания сокета');
goto m1;
end;
-20:begin
form1.memo2.Lines.Add(proxy[x].ip+' > дохлый');
goto m1;
end;
-30:begin
form1.memo2.Lines.Add(proxy[x].ip+' > TIME OUT');
goto m1;
end;
0:begin
form1.Memo2.Lines.Add(proxy[x].ip+' > Ошибка прокси');
goto m1;
end;
end;


НУ и как всегд не надо забывать перед выполнением этого делать:

if WSAStartup($202, WSAData)=-1 then
begin
memo2.Lines.Add('Ошибка WSAStarup');
exit;
end;


Вся система держится на базе winsock2.

Или есть вот пример юзанья через WinInet с использованием SSL. Хотя его можно отрубить!

function zapros(login,pass,proxy_ip:string;proxy_port:word) :string;
var
h_open:HINTERNET;
h_connect:HINTERNET;
h_request:HINTERNET;
mas:array of char;
s,outs:string;
l:integer;
begin
result:='- InternetOpen';
if proxy_ip<>'' then
h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_PROXY,Pansichar(proxy_ ip+':'+inttostr(proxy_port)),nil,0)
else
h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_DIRECT,nil,nil,0);
if h_open=nil then exit;
result:='- InternetConnect';
h_connect:=InternetConnect(h_open,'hz.ru',INTERNET _DEFAULT_HTTPS_PORT,nil,nil,INTERNET_SERVICE_HTTP, 0,0);
if h_connect=nil then exit;
setlength(mas,1024);
lstrcpy(Pansichar(mas),'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*');
result:='- HttpOpenRequests';
h_request:=HttpOpenRequest(h_connect,'POST','/','HTTP/1.0','hz.ru',@mas,INTERNET_FLAG_SECURE+INTERNET_FL AG_KEEP_CONNECTION,0);
if h_request=nil then exit;
randomize;
s:='login='+login+'pass='+pass;
lstrcpy(Pansichar(mas),Pansichar(s));
HttpSendRequest(h_request,'Content-Type: application/x-www-form-urlencoded', 47,mas,length(s));

setlength(mas,1024);
outs:='';
repeat
InternetReadFile(h_request,mas,1024,cardinal(l));
s:=copy(Pchar(mas),1,l);
outs:=outs+s;
until l<=0;
result:='- PASSWORD ERROR';
if pos('Вы ввели неправильный пароль.',outs)<>0 then exit;
result:='+ ОК';
wininet.InternetCloseHandle(h_open);
end;

xaker-boss
06.06.2007, 23:06
Люди извеняюсь конечно за глупый вопрос, но всёже:
http://www.forum-mp3.org/DynamicSkinForm.v7.40.Full.Source.Delphi.BCB.ccrun .446521.rar
Люди потскажите ктонебуть как установить этот кампонент? если можно поподробние на Delphi 2006.
Вить там файла .bpl та нету.
http://www.forum-mp3.org/1.gif

slesh
06.06.2007, 23:16
это компонент в исходниках. поэтому его ставить нужно через DPK файлы.
Открываешь в дельфе DPK файл соответствующий твоей версии дельфы.
Появится окно установки пакета. Там нажмешь на кнопку компилировать.
А потом на кнопку Установить. После чего появится messagebox со списком установленых компонентов.
Советую прежде чем это сделать, скопировать все фалы находящиеся в архиве в папке ssdsf740 в папку Delphi\Lib и из неё уже устанавливать. Т.к. если установить из временной папки, то потом частенько появляются глюки.

xaker-boss
06.06.2007, 23:59
slesh уменя некакое окно установки невышло, просто какбы показан код:
package skinpackD2006;

{$R *.res}
{$R 'spreg.dcr'}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}

requires
rtl,
vcl,
vcljpg,
designide,
vclactnband,
vclx;

contains
SPUtils in 'SPUtils.pas',
SkinBoxCtrls in 'SkinBoxCtrls.pas',
SkinCtrls in 'SkinCtrls.pas',
SkinData in 'SkinData.pas',
SkinGrids in 'SkinGrids.pas',
SkinHint in 'SkinHint.pas',
SkinMenus in 'SkinMenus.pas',
SkinTabs in 'SkinTabs.pas',
SPEffBmp in 'SPEffBmp.pas',
spMessages in 'spMessages.pas',
spreg in 'spreg.pas',
spSkinUnZip in 'spSkinUnZip.pas',
spSkinZip in 'spSkinZip.pas',
spTrayIcon in 'spTrayIcon.pas',
DynamicSkinForm in 'DynamicSkinForm.pas',
spSkinShellCtrls in 'spSkinShellCtrls.pas',
spfilectrl in 'spfilectrl.pas',
spzlib in 'spzlib.pas',
spNBPagesEditor in 'spNBPagesEditor.pas' {spNBPagesForm},
spcalendar in 'spcalendar.pas',
spColorCtrls in 'spColorCtrls.pas',
spDialogs in 'spDialogs.pas',
spzlibcompress in 'spzlibcompress.pas',
spconst in 'spconst.pas',
spRootEdit in 'spRootEdit.pas' {spRootPathEditDlg},
SkinPrinter in 'SkinPrinter.pas',
spbuttongroup in 'spbuttongroup.pas',
spcategorybuttons in 'spcategorybuttons.pas';

end.

Halo
07.06.2007, 02:46
не знаю может уже задавали такой вопрос...но все же...где можно скачать Делфи (желательно последнюю версию)...сори если че не так...

begin_end
07.06.2007, 03:10
Такой вопрос задавался тут не один раз!

Что мне дал гугл:
1) http://www.codegear.com/downloads/free/delphi
2) Delphi 2007 Lite for Win32:
http://rapidshare.com/files/26500700/Lite.rar
http://rapidshare.com/files/26501160/Lite.r00
http://rapidshare.com/files/26501592/Lite.r01
http://rapidshare.com/files/26502227/Lite.r02
http://rapidshare.com/files/26503377/Lite.r03
http://rapidshare.com/files/26508525/Lite.r04
http://rapidshare.com/files/26508806/Lite.r05

А ещё смотрим темы: 1 (https://forum.antichat.ru/thread41545.html), 2 (https://forum.antichat.ru/thread14644-%E4%E5%EB%F4%E8+%F1%EA%E0%F7%E0%F2%FC.html), 3 (https://forum.antichat.ru/thread41131-Delphi+%F1%EA%E0%F7%E0%F2%FC.html).

slesh
07.06.2007, 08:54
2 motorola3653 Не могу сказать как именно действовать, т.к. сам приверженец 7-й дельфы.
Если так не прокатило, то попробуй В Меню "Компонент" (если оно у тебя есть)
Выбрать пункт "Установить компонент" и там ввести имя файла пакета.

xaker-boss
13.06.2007, 21:46
Люди такой вопрос, что такое TIdAttachment ето наврено приклепление файлов к письму? потскажите поподробней как его установить плиз.Скажите куда тыкнуть на Delphi 2006
Как мне уже сообщили что он идёт радной в делфи...Тока вот как его установить и где там его нарыть ненаю.

Fen-Omen
13.06.2007, 22:21
Люди такой вопрос, что такое TIdAttachment ето наврено приклепление файлов к письму?

Угу, используй объект класса TidAttachment если те нужно отправить аттачмент к письму в виде файла. Для этого применяется следующий конструктор:

constructor Create(Collection: TIdMessageParts; const AFileName: TFileName = ''); reintroduce;

где Collection - объект класса TIdMessageParts, представляющее собой коллекцию приложений к электронному письму.

Контстанта AFileName типа TFileName - представляет собой обычную текстовую строку с указанием правильного пути к файлу, например "C:\file.zip", по умолчанию имеет значение ''.

Piflit
14.06.2007, 15:57
реализация кнопки Undo в текстовом редакторе.

Memo1.Perform(EM_UNDO, 0, 0); // сама кнопка

а как сделать проверку, можно ли вообще сделать undo, например, если открыт новый документ, то

Form1.Undo.Enabled:=False;

сам искал, не нашел =\

NetMan
14.06.2007, 17:05
Piflit > глянь справку о сообщении EM_CANUNDO в MSDN.

Piflit
14.06.2007, 17:18
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'

mari00
14.06.2007, 17:35
TMainForm.MUndo.Enabled:=false;
x:=//то с чем ты сравниваешь
if (MainMemo.Perform(// не знаю что тут у тебя за параметры) ) = x then // сдесь проверка на сходство ,если надо не равно, то тогда вмсето = пиши <>
TMainForm.MUndo.Enabled:=True;
end;

если не получиться стукани в асику.

Joker-jar
14.06.2007, 17:37
Посылай Em_canundo и смотри результат.

Короче:

Memo1.Perform(EM_CANUNDO, 0, 0) > 0

В этом случае можно сделать отмену

Piflit
14.06.2007, 17:40
все получилось, спасибо iNVLose

ЗЫ как допишу, блокнот, выложу, буду ждать пожеланий и предложений, что добавить, пок реализую стандартный набор notepad'a ))

NetMan
14.06.2007, 17:42
Ещё надо юзать сообщение 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;

GlobaL
15.06.2007, 23:15
Возможно ли из дельфи загрузить фаил тока не ехе, а 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.

NetMan
16.06.2007, 06:56
GlobaL > Попробуй так:
CreateProcessAndWait('cmd.exe /c C:\X-Hider\compile.bat');

KEZ
16.06.2007, 07:00
> Возможно ли из дельфи загрузить фаил тока не ехе, а batб для ехе я зделал,

а уроки зделал уже?
WinExec( "путь_к_файлу\1.bat", SW_SHOW );

> называется примерно dcc32.exe.

лежит примерно в \Program Files\

GlobaL
16.06.2007, 09:50
а уроки зделал уже?
WinExec( "путь_к_файлу\1.bat", SW_SHOW );

аты сам уроки зделал? я юзаю другую функцию CreateProcessAndWait а не WinExec, так как с ней мозгоепства меньше.

KEZ
16.06.2007, 10:45
По русскому ставлю 2 тебе.
> Безпалевный
> криптованные
> НЕПАЛЯТСЯ

По кодингу 2 так же.

> CreateProcessAndWait а не WinExec, так как с ней мозгоепства меньше.

мозгоепство это когда человек считает что .bat соответствует запущеному процессу и пытается его "createprocess()"
скажи честно, ты употребляешь делфи, borland билдер и другие опасные наркотики?

GlobaL
16.06.2007, 11:37
признаю я наркоман, но он и через WinExec непрет.

Piflit
16.06.2007, 16:14
Вот моя первая более или менее осмысленная прога на дельфях (блокнот) :) Хотелось бы услышать ваши пожелания/предложения, что добавить/улучшить. Единственное, что у меня не получилось сделать, это нормальное появление/скрытие StatusBar без возникновения полос прокрутки, как их устранить? Всем ответившим заранее спасибо))

http://slil.ru/24522152

Piflit
16.06.2007, 16:55
iNVLose, спасибо, приятно слышать такие слова))


UNDO - я думал уберется 1символ убралось все)

а как должна работать undo?...


в принципе я пользуюсь ctrl+z и мне все равно что нет кнопки сверху Как другим не знаю)позже я так понимаю появится=)

я так понимаю, кнопка undo, а не пункт в меню. так?


полос прокрутки при изменения status bar не заметил
когда убираешь статус бар то внизу толстая полоса серая Возможно стоит сделать тоньше

то, о чем говоришь ты, у меня было в предпоследней компиляции. я это убрал, но теперь возникают полосы прокрутки... хм... может все дело в разных машинах?

Alexander Shepard
17.06.2007, 09:21
Люди , может подскажете , как в конфиге юзера в квипе расшифровать строки
(Custom1,Custom2) , которые обозначают пасс ?

KEZ
17.06.2007, 09:29
используй ф-ию делфи DecryptICQPassThatPresentInQIPConfig( 0 );

Alexander Shepard
17.06.2007, 11:42
используй ф-ию делфи DecryptICQPassThatPresentInQIPConfig( 0 );
эээ , а поподробней можна ? :D

Piflit
17.06.2007, 15:29
напечатал один символ или много нажал UNDO последний убрался
открой обычный блокнот и проверь=)

виндовский блокнот работает как у меня) может удаляться не последняя набранная буква, а весь набранный текст. смысл делать undo для одного символа? backspace есть... :rolleyes:

ЗЫ каким компонентом лучше пользоваться для отправки почты?

NetMan
17.06.2007, 19:15
Piflit > idSMTP (Отправка почты средствами Delphi (http://megalib.com/books/314/how_to_send_mail.htm))

slesh
17.06.2007, 22:30
2 Piflit На мой взгляд лучше юзать для отправки почты обычные сокеты. Имхо меньше размер :) Ктомуже мож даже анонимно слать :)

Piflit
17.06.2007, 22:45
2 Piflit На мой взгляд лучше юзать для отправки почты обычные сокеты. Имхо меньше размер :) Ктомуже мож даже анонимно слать :)

спасибо, но я уже заюзал idSMTP =\

GlobaL
18.06.2007, 12:11
помогите с кодом

нада чтобы прога искала сначала один фаил по нажатии на кнопку, потом другой и а если она ненайдет первый фаил то должно выводиться сообщение что фаил ненайден.

procedure TForm1.Button4Click(Sender: TObject);
var
sr:TSearchRec;
Result1, Result2 :word;
begin
ChDir('C:\x-hider');
Result1 := FindFirst ('System.dcu',faAnyFile,sr);
if result1=0 then
Begin
Result1:=FindNext (sr);
End;
if result1<>0 then
begin
showmessage('asdvxcdra')
end;

if Result1=0 then
begin
ChDir('C:\x-hider');
Result2 := FindFirst ('Windows.dcu',faAnyFile,sr);
if result2<>0 then
Begin
Result2:=FindNext (sr);
End;
end;
if result2<>0 then
begin
showmessage('asdvxcdra')
end;
end;


сам с поиском работаю впервые,и вообще эту функцию никогда неиспользовал, если есть способ попроше реализовать мою идею, плиз сообшите.

NetMan
18.06.2007, 12:32
GlobaL >
var SR:TSearchRec;
begin
ChDir('C:\x-hider');
if FindFirst('System.dcu',faAnyFile,sr)<>0 then
ShowMessage('aaa');
if FindFirst('Windows.dcu',faAnyFile,sr)<>0 then
ShowMessage('aaa');
FindClose(SR);
end;

GlobaL
18.06.2007, 12:34
GlobaL >
var SR:TSearchRec;
begin
ChDir('C:\x-hider');
if FindFirst('System.dcu',faAnyFile,sr)<>0 then
ShowMessage('aaa');
if FindFirst('Windows.dcu',faAnyFile,sr)<>0 then
ShowMessage('aaa');
FindClose(SR);
end;
пасип ща попробую

zl0y
18.06.2007, 13:02
GlobaL

Тут все проще можно =)


function FileExists(const FileName :string) :Boolean;
var
Code :DWORD;
begin
Code := GetFileAttributes(PChar(FileName));
Result := (Code <> DWORD(-1)) and (Code and FILE_ATTRIBUTE_DIRECTORY = 0);
end;

-----------------------------------------------
if FileExists('C:\test.txt') then MessageBox(0,'Файл найден',0,0) else MessageBox(0,'Файл не найден',0,0);

Allbit
18.06.2007, 20:19
понял снова)

Feshh
19.06.2007, 04:23
Народ.. такая проблема... надо чтобы программа загружала файл из интернета и причем это не показывала. много функций пересмотрел - непонимаю как заюзать.. кто поможет составит функцию как программой загрузить файл из интернета - получит плюсик и огромадный ресмпект))

sys32
19.06.2007, 05:20
Как загрузить посмотри здесь (http://delphi-jedi.org/apilibrary.html)
HTML HELP :: Interface for the Microsoft HTML Help API, v 1.1 HtmlHelp.zip (ftp://ftp.delphi-jedi.org/api/HtmlHelp.zip)

Allbit
19.06.2007, 21:49
Ситуация такая.
Пишу я одну прогу, которая в процессе своей работы обращается к веб-сайту..
Точнее , не знаю, как это правильно сказать, к форме что-ли.. где нужно ввести определённый набор символов...т.е. логин и пароль).. Как программно вбить туда эти данные... я думал что нужно что-то типа имитации нажатия клавиш (keybd_event), но так и не понял как оно работает..

Заранее спасибо за понимание)

Piflit
19.06.2007, 22:09
Allbit если ты имеешь в виду то, что я думаю, то надо просто составить запрос так:
http://www.site.ru/index.php?login=qwerty&password=pass

k1m
19.06.2007, 22:15
Вопрос:
Где скачать?
Учебник с примерами обезательно примеры (я начинающий)
И сам компилер и что там

Piflit
19.06.2007, 22:19
дельфи:
http://forum.antichat.ru/showpost.php?p=369618&postcount=71

k1m
19.06.2007, 23:29
Учебник с примерами обезательно примеры (я начинающий)
Жду срочно! :)

Allbit
20.06.2007, 16:33
Да,мне нужно именно это, но у меня есть ссылка вида https://www.site.com/members/bin/hist.mpl?index
При запуске, появляется окно , где нужно залочиться..
если просто приписать к этому https://www.site.com/members/bin/hist.mpl?index?login=qwerty&password=pass то это не катит.. наверное я туплю, и всё же.. ) как сделать правильно?

Piflit
20.06.2007, 17:24
если хочешь, можешь кинуть ссылку в пм. я посмотрю

NetMan
20.06.2007, 17:31
GET- и POST-запросы можно делать с помощью WinInet.

_Great_
23.06.2007, 09:03
как сделать такую штуку в делфи... Пароль на папку... чтобы при попытке открыть эту папку вылетало окошко с просьбой ввести пароль... при 3 неверно введенных паролей должна произойти перезагрузка...?????
На дельфи нельзя. Только если намутить чтонить с folder.htt и прочим. Но это защита от дураков только.
Лучший выход - запароленный виртуальный диск
ЗЫ. Это вопрос не по дельфи

Подскажите как по имени процесса получить его Pid :)
Сделать снапшот процессов через CreateToolHelp32Snapshot и перебрать процессы, сравнивая имена образов.
ЗЫ. этот вопрос тоже не по дельфи, а по WinAPI

_Great_
25.06.2007, 11:27
Никто не читает 1 пост топика и не хочет/не может разделять понятия вопроса по синтаксису языка и вопроса по реализации. Так вот эта тема для вопросов по синтаксису! Не надо тут спрашивать как реализовать какой-либо алгоритм на дельфи и уж тем более про винапи и прочие языконезависимые конструкции.

W!z@rD
27.06.2007, 23:53
Вопрос:
Где скачать?
Учебник с примерами обезательно примеры (я начинающий)
И сам компилер и что там
www.delphiWorld.narod.ru -DelphiWorld
www.drkb.ru - Delphi Russian Knowleage Base

Где скачать не знаю... но советую:
А.Я. Архангельский Программирование в Delphi 7
И. Ю. БАЖЕНОВА Delphi 7 САМОУЧИТЕЛЬ ПРОГРАММИСТА
Культин Н. Б. Основы программирования в Delphi 7
С. И. Бобровский. Delphi 7. Учебный курс
Шпак Ю. А. Delphi 7 на примерах
И конечно же Библию Delphi...

И качай Delphi 7 (моя любимая версия ;) ) borland.com

(совет: изучай лучше C# ;) )

KEZ
28.06.2007, 02:56
> Сообщение от zl0y
Подскажите как по имени процесса получить его Pid

у нескольких процессов может быть одинаковое "имя", получить PID нескольких процессов нельзя.

MagNomeTik
28.06.2007, 11:56
Сообщение от zl0y
Подскажите как по имени процесса получить его Pid

Вот тебе код


function GetProcessId(pName: PChar): dword;
var
Snap: dword;
Process: TPROCESSENTRY32;
begin
Result := 0;
Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if Snap <> INVALID_HANDLE_VALUE then
begin
Process.dwSize := SizeOf(TPROCESSENTRY32);
if Process32First(Snap, Process) then
repeat
if lstrcmpi(Process.szExeFile, pName) = 0 then
begin
Result := Process.th32ProcessID;
CloseHandle(Snap);
Exit;
end;
until not Process32Next(Snap, Process);
Result := 0;
CloseHandle(Snap);
end;
end;

Вводишь имя, получаешь Pid...

KEZ
28.06.2007, 14:39
не надо пиздить! возможно существование нескольких процессов с одним именем
я отвечаю на конкретный вопрос. он некорректен.

sn0w
28.06.2007, 14:52
:d

NetMan
28.06.2007, 15:09
Объявляем тип:
TPIDs = array of DWORD;

function GetProcessIDs(ProcessName:PChar):TPIDs;
var
ResultLen,hSnapshot:DWORD;
PE:TPROCESSENTRY32;
begin
Result:=nil;
hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPRO CESS,0);
if hSnapshot=INVALID_HANDLE_VALUE then exit;

PE.dwSize:=SizeOf(TPROCESSENTRY32);
if not Process32First(hSnapshot,PE) then exit;

ResultLen:=0;
repeat
if lstrcmpi(PE.szExeFile,ProcessName)=0 then
begin
inc(ResultLen);
SetLength(Result,ResultLen);
Result[ResultLen-1]:=PE.th32ProcessID;
end;
until not Process32Next(hSnapshot,PE);
CloseHandle(hSnapshot);
end;

Юзать:
...........
var i:integer;
PIDs:TPIDs;
begin
PIDs:=GetProcessIDs('svchost.exe');
if PIDs=nil then exit;
lb.Items.Clear;
for i:=0 to Length(PIDs)-1 do
lb.Items.Add(IntToStr(PIDs[i]));
end;
....................

kuka
29.06.2007, 09:18
Народ подскажите плиз как можно организовать перехват событий мышки в любом приложении?

NetMan
29.06.2007, 11:21
kuka Использование HOOK в Дельфи (http://articles.org.ru/cfaq/index.php?qid=2257)

slesh
29.06.2007, 23:59
function SetWindowsHookEx(idHook: integer; lpfn: TFNHookProc;
hmod: HINST; dwThreadID: DWORD): HHOOK; stdcall;




idHook: описывает тип устанавливаемой ловушки. Данный параметр может принимать одно из следующих значений:

Константа Описание
WH_CALLWNDPROC Фильтр процедуры окна. Функция-фильтр ловушки вызывается, когда процедуре окна посылается сообщение. Windows вызывает этот хук при каждом вызове функции SendMessage.
WH_CALLWNDPROCRET Функция-фильтр, контролирующая сообщения после их обработки процедурой окна приемника.
WH_CBT В литературе встречаются следующие названия для этого типа фильтров: "тренировочный" или "обучающий". Данная ловушка вызывается перед обработкой большинства сообщений окон, мыши и клавиатуры.
WH_DEBUG Функция-фильтр, предназначенная для отладки. Функция-фильтр ловушки вызывается перед любой другой ловушкой Windows. Удобный инструмент для отладки и контроля ловушек.
WH_GETMESSAGE Функция-фильтр обработки сообщений. Функция-фильтр ловушки вызывается всегда, когда из очереди приложения считывается любое сообщение.
WH_HARDWARE Функция-фильтр, обрабатывающая сообщения оборудования. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщение оборудования.
WH_JOURNALPLAYBACK Функция-фильтр вызывается, когда из очереди системы считывается любое сообщение. Используется для вставки в очередь системных событий.
WH_JOURNALRECORD Функция-фильтр вызывается, когда из очереди системы запрашивается какое-либо событие. Используется для регистрации системных событий.
WH_KEYBOARD Функция-фильтр "обработки" клавиатуры. Наверное, наиболее часто используемый тип ловушки. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщения wm_KeyDown или wm_KeyUp.
WH_KEYBOARD_LL Низкоуровневый фильтр клавиатуры.
WH_MOUSE Функция-фильтр, обрабатывающая сообщения мыши. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщение мыши.
WH_MOUSE_LL Низкоуровневый фильтр мыши.
WH_MSGFILTER Функция-фильтр специального сообщения. Функция-фильтр ловушки вызывается, когда сообщение должно быть обработано диалоговым окном приложения, меню или окном приложения.
WH_SHELL Фильтр приложения оболочки. Функция-фильтр ловушки вызывается, когда создаются и разрушаются окна верхнего уровня или когда приложению-оболочке требуется стать активным.


Что бы упредить шквал писем в мой адрес, скажу сразу, что каждый, из вышеперечисленных, типов имеет свои особенности, о которых каждый может прочитать в SDK, MSDN или же найти их описание в Internet-e.

lpfn : это адрес функции-фильтра, которая является функцией обратного вызова. Функция-фильтр имеет тип TFNHookProc, определение которого выглядит следующим образом:



TFNHookProc = function (code: Integer; wparam: WPARAM;
lparam: LPARAM): LRESULT stdcall;




Значение каждого из параметров функции-фильтра ловушки изменяется в зависимости от типа устанавливаемой ловушки. За более подробными разъяснениями значений параметров обращайтесь к справке по Win32 API.

hmod
данный параметр должен иметь значение hInstance в EXE или DLL-файлах, в которых содержится функция-фильтр ловушки (напомню, что это функция обратного вызова). Если речь идёт о глобальных ловушках, то данный параметр может принимать только дескриптор DLL, из которой устанавливается ловушка. Причина очевидна - EXE-файл не может быть отображён на АП другого процесса, тогда как DLL-фалы специально созданы для этого. Подчеркну это обстоятельство ещё раз: глобальные ловушки могут располагаться только в DLL, но никак не в EXE файлах !
dwThreadID
данный параметр идентифицирует поток, с которым будет связана ловушка. Мы ведём речь о глобальных ловушках, поэтому данный параметр будет всегда равен 0, что означает, что ловушка будет связана со всеми потоками в системе.
Возвращаемое значение
функция SetWindowsHookEx возвращает дескриптор установленной ловушки, именно этот дескриптор нам и надо будет сделать доступным ВСЕМ экземплярам отображаемой DLL. Как это сделать я расскажу после небольшого примера, показывающего на практике необходимость сохранять дескриптор ловушки для того, что бы суметь вызвать предыдущую ловушку в цепочке.
Замечание:

при установке двух ловушек разного типа, система создаст две цепочки ловушек. Т.е. каждому типу ловушки соответствует своя цепочка. Так при установке ловушки типа WH_MOUSE и WH_KEYBOARD обе эти ловушки будут находиться в разных цепочках и, соответственно, будут обрабатываться независимо друг от друга.
Для удаления функции-фильтра из очереди необходимо вызвать функцию UnhookWindowsHookEx. Данная функция принимает дескриптор ловушки, полученный функцией SetWindowsHookEx. Если удаление не удалось, то функция возвращает ноль, иначе не нулевое значение. В дальнейшем, под выражением "снять ловушку" будем подразумевать удаление функции-фильтра.

Gil
01.07.2007, 00:12
Люди, такой трабл, надо отправить мыло с компа через дельфи, юзаю инди библиотеку, вроде все прально, и примеры качал, а хер, всегда сокет еррор и все. Может есть еще какие-нибудь способы отправить, не через смтп. Ни у кого такого не было?

Gil
01.07.2007, 22:04
Все мля перепробовал, все компоненты, готовые исходники, уже скомпиленные проги, ниче не помогает, все сокет еррор и все, ну не коннектиться к серваку... может кто писал для себя, поделитесь....

W!z@rD
01.07.2007, 22:21
держи... своего рода трой... написан на api + используется комп. coban2k'a - RASDescrypt
мыло шлет! ))
http://slil.ru/24579115
сорцы...

Gil
01.07.2007, 23:32
Рульная кстати вещь, пасиб W!z@rD ;)

Delphi07
02.07.2007, 20:35
Помогите плиз. Как из Edit1, в котором находиться URL файла, допустим http://site.ru/file.exe достать текст имя файла, в данном случае file.exe , и прописать в Edit2.

NetMan
03.07.2007, 01:09
Delphi07, читай здесь Parsing URI's (http://www.howtodothings.com/computers/a1149-parsing-uris.html).

Delphi-X
06.07.2007, 14:03
а как сделать например если со страницы мне приходит

<h>tra tra tra</h>

а в проге вылазило бы окошко. к примеру: вы ввели неверные данные!

Gil
06.07.2007, 23:10
Ну это по-моему чисто со строкой надо работать(вырезаешь, проверяешь), прописывать какие комбинации неверны, а лучше, если ты скажем пишешь что-то типа хоумсайта то забить готовые теги, и чтоб они выдавались тебе тогда когда начинаешь писать. и вообще как понять со страницы приходят? ты написал прогу, которая тебе выдает исходник страницы чтоль?

Akelth
06.07.2007, 23:25
W!z@rD, ответь на вопрос в аське плз!

Ni0x
07.07.2007, 00:39
а как сделать например если со страницы мне приходит

<h>tra tra tra</h>

а в проге вылазило бы окошко. к примеру: вы ввели неверные данные!
для начала неплохо бы было четко описать что тебе нужно, если я правильно понял тебе нужен обычный парсер строк.

a1ex
07.07.2007, 11:36
Каким образом можно изменить код программы или его так сделать, чтобы в диспетчере задач прога (в запущенном виде) не высвечивалась? :confused:

p.s.если можно напишите поподробней плиз.

W!z@rD
07.07.2007, 12:16
Каким образом можно изменить код программы или его так сделать, чтобы в диспетчере задач прога (в запущенном виде) не высвечивалась? :confused:

p.s.если можно напишите поподробней плиз.
wasm.ru
и качай руткит aphex'a... все вопросы отпадут!

a1ex
07.07.2007, 12:24
и качай руткит aphex'a... все вопросы отпадут!
Дай плиз ссылку,и про прогу я спрашивал на делфи.

Ni0x
07.07.2007, 12:56
Каким образом можно изменить код программы или его так сделать, чтобы в диспетчере задач прога (в запущенном виде) не высвечивалась?

p.s.если можно напишите поподробней плиз.
Инжект или драйвер. По первому варианту исходников очень много, про второй можешь прочитать тут: http://bp-team.com/t05.txt, не дельфи конечно, зато написано нормально.

a1ex
07.07.2007, 13:41
Тоесть на дельфи тоже можно реализовать такую фишку?

Ni0x
07.07.2007, 14:19
Тоесть на дельфи тоже можно реализовать такую фишку?
да, но писать драйвера на дельфи изврат.

БензиН
07.07.2007, 18:05
Как сделать ссылку на форме, и переход с одной формы на другую?

infernal-team
07.07.2007, 19:29
Как зделать чтобы окно не сворачивалось и не разворачивалось ?

Ni0x
07.07.2007, 20:08
>>Как зделать чтобы окно не сворачивалось и не разворачивалось ?
можешь сам обрабатывать сообщения посылаемые твоему окну.

procedure TForm1.WMGetSysCommand(var message : TMessage);
message WM_SYSCOMMAND;
begin
if (message.wParam = SC_MINIMIZE) then
begin
...
end

infernal-team
07.07.2007, 20:42
Неполучаеться чето =( ошибка !!!

infernal-team
07.07.2007, 21:32
Procedure TForm1.WMGetSysCommand(var Message : TMessage);
Begin
IF (Message.wParam = SC_MINIMIZE) then ShowMessage('Сейчас окно будет свернуто');
Inherited;
End;

это пробывал ошибка пишет =( в чем проблемма?

Попрошайка
07.07.2007, 22:50
Procedure TForm1.WMGetSysCommand(var Message : TMessage);
Begin
IF (Message.wParam = SC_MINIMIZE) then ShowMessage('Сейчас окно будет свернуто');
Inherited;
End;

это пробывал ошибка пишет =( в чем проблемма?


Когда пишет? Ты вот это сделать не забыл ? :
type
TForm1 = class(TForm)
private
Procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;
{ Private declarations }
public
{ Public declarations }
end;

Попрошайка
07.07.2007, 23:03
Как сделать ссылку на форме, и переход с одной формы на другую?

Что значит ссылку? К примеру кинь на форму Label и обрабатывай событие OnClick .

БензиН
07.07.2007, 23:14
Дело в том что я незнаю как может кинеш код.

Попрошайка
07.07.2007, 23:34
Дело в том что я незнаю как может кинеш код.

Как вариант можно так :

procedure TForm1.Label1Click(Sender: TObject);
begin
Form1.Hide;
Form2.Show;
end;



Для придания Label'у вида URL выстави стиль у шрифта
(в инспекторе объектов) [fsUnderline] ну и цвет поменяй.

n3m0
07.07.2007, 23:34
Создаеш Две формы. На первую кидаеш компонент Label1. Кликаеш на него Два Раза. И пишеш код вызова Второй формы: Form2.Show
Вот пример::

procedure TForm1.Label1Click(Sender: TObject);
begin
Form2.Show;
end;

infernal-team
07.07.2007, 23:35
Если чел просит видимо нужно выложит =), че глупые вопросы задаеш?!

infernal-team
07.07.2007, 23:44
Попрошайка кароче все сделал правильно, но эта функция выдает предупреждение на сворачивание а мне нужно чтобы свернуть и развернуть не функцианировали.

infernal-team
07.07.2007, 23:50
Что нужно:
1. Сделать на форме ссылку
2. Сделать нефункционирующими и прозрачными кнопки свернуть и развернуть
3. Сделать переход на другую форму через бутон
Пока на этом все.

Попрошайка
08.07.2007, 00:22
Что нужно:
1. Сделать на форме ссылку
2. Сделать нефункционирующими и прозрачными кнопки свернуть и развернуть
3. Сделать переход на другую форму через бутон
Пока на этом все.

Мда... ;)

Вот дерзай, только какой смысл обрабатывать сообщения по развёртыванию формы, когда гораздо проще просто убрать эти кнопки...

http://slil.ru/24605079

Для пущей жести можно добавить :


procedure TForm1.FormCreate(Sender: TObject);
var
Style: Longint;
begin
Style := GetWindowLong(Handle, GWL_STYLE);
SetWindowLong(Handle, GWL_STYLE, Style and not WS_SYSMENU);
end;
:D

infernal-team
08.07.2007, 00:36
какой смысл обрабатывать сообщения по развёртыванию формы[/url]
Проста так задумано.

infernal-team
08.07.2007, 00:40
Чет я не догнал =), можно на пальцах?

Попрошайка
08.07.2007, 01:05
Чет я не догнал =), можно на пальцах?

Ты про последнее изменение? Если да, то у формы не будет кнопок и её нельзя будет переместить, и изменить размер.

infernal-team
08.07.2007, 12:48
То что мне нужно не получилась, может ещё какнибудь можно?!

W!z@rD
08.07.2007, 13:04
Что нужно:
1. Сделать на форме ссылку
2. Сделать нефункционирующими и прозрачными кнопки свернуть и развернуть
3. Сделать переход на другую форму через бутон
Пока на этом все.

1. Используй TLabel. т.е.
а) в сво-ве font выставляешь - Color = Blue;
б) изменяешь курсор на finger - че-то там... ))) не помню... поищи...
б) по событию OnMouseMove
Label1.Font.Style:=Label1.Font.Style+[fsUnderline];
в) по событию OnMouseLeave
Label1.Font.Style:=Label1.Font.Style-[fsUnderline];
2. ответили
3. событие OnClick у Button'a;
Form2.Show
(в секцию uses необходимо добавить модуль связанный с формой)

W!z@rD
08.07.2007, 13:14
Дай плиз ссылку,и про прогу я спрашивал на делфи.
http://www.google.ru/search?hl=ru&q=%22Aphex+rootkit%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=

не найдешь... дай знать... я тебе поищу...
а вообще помниться в том году качал 80 метров х-стаффа... такого рода по мойму называется
Delphi Developer Kit 2006 что-то там типа того...
потом если потребуется выложу нормальное название...

infernal-team
08.07.2007, 13:36
Вот насчет второго планы изменились нужно удалить свернуть и развернуть. Как это сделать?

GlOFF
08.07.2007, 13:59
infernal-team
Два пути:

1) В настройках формы, раскрывай BorderIcons и видешь
biSystemMenu - наличие системного меню (слева у значка)
biMinimize - свернуть
biMaximize - развернуть
biHelp - помощь
Тебе нужно будет поставить все параметре в FALSE (Можешь biSystemMenu оставить TRUE)

2) Написать код

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.BorderIcons := [biSystemMenu];
end;

infernal-team
08.07.2007, 15:21
xqwerx пасиб, еще нужно сделать так чтобы окно не раздвигалось.

GlOFF
08.07.2007, 16:04
Чтобы не раздвигалось в опциях формы у BorderStyle смени bsSizeable на bsSingle ....
P.S. Спасибом бей по репе...

infernal-team
08.07.2007, 16:32
ХеХ я не могу репу ставить!!!

Попрошайка
08.07.2007, 16:44
ХеХ я не могу репу ставить!!!

Кончай флудить! Иди, учи матчасть. :mad:

infernal-team
08.07.2007, 17:53
Как скрыть программу с панели задач?

zl0y
08.07.2007, 17:55
Как скрыть программу с панели задач?
http://www.yandex.ru/yandsearch?stype=www&nl=0&text=%CA%E0%EA+%F1%EA%F0%FB%F2%FC+%EF%F0%EE%E3%F0% E0%EC%EC%F3+%F1+%EF%E0%ED%E5%EB%E8+%E7%E0%E4%E0%F7 %3F

sayman
08.07.2007, 22:47
Если С++ Builder то что бы скрыть:
SetWindowLong( Application->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
А если Delphi то:
Application.CreateHandle;
ShowWindow(Application.Handle, SW_HIDE);
Application.ShowMainForm := FALSE;

KEZ
09.07.2007, 02:02
> SetWindowLong( Application->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

так ты сделаешь окну стиль toolwindow, т.е. маленькую полоску
скрыть можно например, если окно делать диалагом (DialogBox) или через COM в task-bar'е, см /fasm/examples/usecom/usecom.asm с дистра fasm - flatassembler.net

sayman
09.07.2007, 11:09
Простите за ошбку! :rolleyes: Вот функция которая скрывает и с панели задачь и с диспечера задачь:
ShowWindow(Application->Handle, SW_HIDE);
вернуть:
ShowWindow(Application->Handle, SW_SHOW);

_Great_
09.07.2007, 11:25
Как скрыть программу с панели задач?
Метод Delete COM-интерфейсов:

ITaskbarList::Delete
ITaskbarList2::Delete
Простите за ошбку! :rolleyes: Вот функция которая скрывает и с панели задачь и с диспечера задачь:
ShowWindow(Application->Handle, SW_HIDE);
вернуть:
ShowWindow(Application->Handle, SW_SHOW);
Оно скрывает окно вообще, а не только с панели задач

_seeattack_
09.07.2007, 11:30
расскажите как написать простенький редактор на Delphi :)

sayman
09.07.2007, 11:41
Цитата:Сообщение от sayman
Простите за ошбку! :rolleyes: Вот функция которая скрывает и с панели задачь и с диспечера задачь:
ShowWindow(Application->Handle, SW_HIDE);
вернуть:
ShowWindow(Application->Handle, SW_SHOW);


Оно скрывает окно вообще, а не только с панели задач

выкладываю прогу:
скачать (http://rapidshare.com/files/41862682/ky-ky.exe)

W!z@rD
09.07.2007, 11:49
1. используя компоненты: TMemo, TButton, TOpenFileDialog, TSaveFileDialog...
2. Все добро кидаешь на форму... (2 кнопки)
3. Button1.OnClick
begin
if OpenFileDialog.Execute then Memo1.Lines.LoadFromFile(OpenFileDialog1.FileName) ;
end;
4. Button2.OnClick
begin
if SaveFileDialog.Execute then Memo1.Lines.SaveToFile(SaveFileDialog1.FileName);
end;

_seeattack_
09.07.2007, 11:54
и подскажите плз какое дельфи юзать начинающему программисту))))

sayman
09.07.2007, 12:12
Delphi 7....

zeon
10.07.2007, 02:29
Есть ли исходники zlib, которые пакуют, распаковывают файлы..?

NetMan
10.07.2007, 09:26
zeon> zlib.pas (http://www.koders.com/delphi/fid78603EB4F05760799B66233D8A00AB4458CEE1A9.aspx)

The_HuliGun
10.07.2007, 09:33
Bcходники программы-архиватора, использующей zLib
Ссылка (http://www.delphisources.ru/pages/sources/raznoe/zlib_compunc.html)
Исходники самого модуля можеш посмотреть у себя на харде
C:\Program Files\Borland\Delphi7\Source\Rtl\Common\ZLib.pas

Попрошайка
10.07.2007, 19:39
Метод Delete COM-интерфейсов:

ITaskbarList::Delete
ITaskbarList2::Delete

Оно скрывает окно вообще, а не только с панели задач

Это с какого перепуга, уважаемый? :D

Функция : ShowWindow(Application.Handle, SW_HIDE);

Уберёт кнопку с панели задач, не более!

Для скрытия, как вариант, можно использовать :

ShowWindow(Handle, SW_HIDE);
или :
Application.MainForm.Visible := False;

xaker-boss
12.07.2007, 20:28
Люди у меня возникла такая проблемка.
Корочи скачал я один исходник очень мне нужный и при запуски он чтото требует и выводит вот такие ошибочки:
http://forum-mp3.org/1.JPG
http://forum-mp3.org/2.JPG
http://forum-mp3.org/3.JPG
http://forum-mp3.org/4.JPG
http://forum-mp3.org/5.JPG
Плиз выложите ктонебуть то что ана требует?
У меня Delphi 2006
или если она требует модуль потскажите как его установить

NetMan
12.07.2007, 20:42
Отсутствуют: компонента TRxRichEdit (надо RxLib) и свойства компонента IdFTP (возможно исходник нужно компилировать под другой версией Delphi).

W!z@rD
13.07.2007, 17:27
Люди у меня возникла такая проблемка.
Корочи скачал я один исходник очень мне нужный и при запуски он чтото требует и выводит вот такие ошибочки:
Плиз выложите ктонебуть то что ана требует?
У меня Delphi 2006
или если она требует модуль потскажите как его установить

нет необходимых компонентов...
ищи, не найдешь помогу...
не сможешь установить скажи, помогу...
Delphi 2007 уже есть. :)

Isis
13.07.2007, 22:49
Покажите пожалуйста пример POST/GET запроса и пример парсинга исходной страницы сайта.(delphi 7)
Допустим пропарсить mail.ru/index.php И вывести все что находится между тегов <b></b>
Желательно подробне))с
пасибо

Isis
14.07.2007, 03:56
С этим помог гема..
Юзаю wininet
Скажите пожалуйста как найти все что находится между <b> и </b>
Я не могу догнать..
ПОчему здесь нету функции preg_match ((

Joker-jar
14.07.2007, 04:54
function MyCopy(Text, Tag1, Tag2: string): string;
var
i1,i2: integer;
begin
result := '';
if (pos(Tag1, Text) <> 0) and (pos(Tag2, Text) <> 0) then
begin
i1 := pos(Tag1, Text) + length(Tag1);
i2 := pos(Tag2, Text) - i1;
if i2 > 0 then
result := copy(Text,i1,i2);
end;
end;

Как-нибудь так

Isis
14.07.2007, 06:03
Joker-jar, спасибо...
А если например на странице встречается 5 раз <b>sgfag</b><b>2</b>......
Как вывести все их?
И как вывести например только третий ?
Вот было б хорошо получить ответ)

Joker-jar
14.07.2007, 06:26
Писал на скорую руку...

type
Tarr = array of string;

procedure MyCopy(Text, Tag1, Tag2: string; var Result: Tarr);
var
i1,i2: integer;
begin
while true do
begin
i1 := pos(Tag1, Text);
i2 := pos(Tag2, Text);
if (i1 = 0) or (i2 = 0) or (i2 <= i1) then
exit;
setlength(Result,length(Result) + 1);
Result[high(Result)] := copy(Text, i1 + length(Tag1), i2 - i1 - length(Tag1));
Text := copy(Text,i2 + length(Tag2),length(Text) - i2 - length(Tag2));
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
A: Tarr;
i: integer;
begin
MyCopy('Форум <b>Античат</b> - безопасность <b>WEB</b> интерфейсов.', '<b>', '</b>', A);
for i := 0 to high(A) do
ShowMessage(A[i]);
end;
P.S. Для таких задачей ИМХО целесообразно уже писать класс

ZirroCool
14.07.2007, 17:24
Всем здрасте!
Проблемка такая: бере обычный сайт файло хранитель,так вот там есть поля для ввода пути до файла и есть кнопочка отправить,после чего дается ссылка!
Мне нужно посредствам делфи передавать в это поле для файла мой путь до файла введенные в эдит и нажать кнопку отправить (нажимая батон на своей форме)!Желательно еще узнать ответ о успешной/неуспешной кончине операции!
Кое что я уже накопал,но в гуи я не особо разбираюсь (вот что я нащел http://delphi-faq.zoxt.net/755.htm ,но честно не совсем понял что да как)!Большая прозьба знающим людям разьеснить!Заранее спасибо!

Knight_of_Darkness
14.07.2007, 23:01
Вот бьюсь над реализацией одной задачи. Нужно проверить, можно ли приконнектиться к 80 порту удаленной машины или нет. Пытался разными способами... Ставил сокетный клиент и обрабатывал OnConnect, пытался ставить таймер, обрабатывать Connected.. Вобщем, если кто-то предложит готовый рабочий пример, снимаю шляпу..

Ni0x
14.07.2007, 23:21
Всем здрасте!
Проблемка такая: бере обычный сайт файло хранитель,так вот там есть поля для ввода пути до файла и есть кнопочка отправить,после чего дается ссылка!
Мне нужно посредствам делфи передавать в это поле для файла мой путь до файла введенные в эдит и нажать кнопку отправить (нажимая батон на своей форме)!Желательно еще узнать ответ о успешной/неуспешной кончине операции!
тебе нужно с помощью сокетов передать запрос скрипту, который загружает файлы на сервер.

ZirroCool
15.07.2007, 00:22
тебе нужно с помощью сокетов передать запрос скрипту, который загружает файлы на сервер.
Это и дураку понятно,а вот как это реализовать!

GoreMaster
15.07.2007, 00:36
Это и дураку понятно,а вот как это реализовать!
в созданный сокет посылай запрос с помощью команды send,затем парсь ответы сервера,в случае успешного запроса, ответ будет содержать 200
Используй протокол HTTP 1.0
P.S.: ты бы хоть написал какой там запрос GET или POST

Isis
15.07.2007, 18:14
Сделал парсер страницы...
Но не понимает русской кодировки..
Выводит в Utf-8...
ЧТо делать? =)

Allbit
15.07.2007, 19:04
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
i: integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('HKCU/Software/Microsoft/winmine',false);
for i := 1 to 3 do
begin
if reg.ReadString('Time'+ IntToStr(i)) <> '' then
begin
Edit1.Text:=(reg.ReadString('Time'+ IntToStr(1));
Edit2.Text:=(reg.ReadString('Time'+ IntToStr(2));
Edit3.Text:=(reg.ReadString('Time'+ IntToStr(3));
end;
end;
reg.CloseKey;
reg.free;
end;

Может кто подскажет нубу, что не так ? :Ъ

Isis
15.07.2007, 19:05
invlose, стукни мне сам =\
99 999 + 1 + (328 723 * 12 873 621 * 0 * (126 712 + 1)) - 2 = 99 998
А он молчит суке...непраивльный

Isis
15.07.2007, 19:35
Сделал парсер страницы...
Но не понимает русской кодировки..
Выводит в Utf-8...
ЧТо делать? =)

W!z@rD
16.07.2007, 21:36
Isis
Ansi юзать...
что, где не так? давай кусок кода, разберем...
Allbit
что тебе надо??? что за игры?? кусок кода и "что-то тут не так??" >:(

NetMan
17.07.2007, 13:36
Allbit > Вместо этого reg.OpenKey('HKCU/Software/Microsoft/winmine',false); делай без HKCU:
reg.OpenKey('Software/Microsoft/winmine',false);

Piflit
18.07.2007, 18:09
как сменить иконку стороннего приложения? ничего вразумительного кроме этого (http://forum.coderszone.info/printthread.php?t=10) не нашел. есть еще какие-то варианты?

W!z@rD
18.07.2007, 19:27
это 1.
http://forum.vingrad.ru/topic-87129/hl/extracticon/index.html
это 2.
http://discuss.joelonsoftware.com/default.asp?joel.3.8105.4

z01b
19.07.2007, 14:24
Как поменять размер окна, зная её хэндл? (Например из фулл скрин зделать Window mode)

infernal-team
19.07.2007, 14:29
КАк сделать переход на другую форму через буттон?