Помогите упростить исходник пожалуйста. Программка у меня работает, но написано по-нубовски. Можно же что-то из этого переписать на function Code: unit auth; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, ExtCtrls, RXShell, RXClock, ComCtrls; type TForm5 = class(TForm) http1: TIdHTTP; Button1: TButton; Button2: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Timer1: TTimer; RxTrayIcon1: TRxTrayIcon; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure RxTrayIcon1DblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public procedure OnMinimize(Sender: TObject); { Public declarations } end; var Form5: TForm5; implementation {$R *.dfm} // Сворачивание в трей. procedure TForm5.FormCreate(Sender: TObject); begin Application.onMinimize:=OnMinimize; end; procedure TForm5.OnMinimize(Sender: TObject); begin RxTrayIcon1.Show; //Показываем иконку в трее ShowWindow(Application.Handle,SW_HIDE); //Скрываем окно приложения end; procedure TForm5.RxTrayIcon1DblClick(Sender: TObject); begin Application.Restore; //Восстанавливаем окно SetForeGroundWindow(Application.MainForm.Handle); //Активизируем окно RxTrayIcon1.Hide; //Прячем иконку из трея end; // Запуск висения. procedure TForm5.Timer1Timer(Sender: TObject); var params,responseres:tstringlist; begin params:=TStringList.Create; responseres:=TStringList.Create; try responseres.Text:=http1.Post('http://www.dmbchat.ru/refresh.php?say=aoaiaa&addr=Aey',params); if Pos('refresh.php',responseres.Text)>0 then Memo1.Lines.Add('Вы успешно написали фразу.') else Memo1.Lines.Add('Вы не в чате. Перезаходим.'); while Pos('refresh.php',responseres.Text)<=0 do begin Button1.Click; Exit; end; finally params.free; responseres.free; end; end; // Вход в чат. procedure TForm5.Button1Click(Sender: TObject); var params,responseres:tstringlist; Login, Password: string; begin params:=TStringList.Create; responseres:=TStringList.Create; try Login:= Edit1.Text; Password:= Edit2.Text; params.Add('login='+Login); params.Add('password='+Password); responseres.Text:=http1.Post('http://www.dmbchat.ru/login.php',params); if Pos('refresh.php',responseres.Text)>0 then Memo1.Lines.Add('Вы успешно вошли в чат.') else Memo1.Lines.Add('Ошибка! Вы не вошли в чат.'); finally params.free; responseres.free; end; while (Edit1.Text='') or (Edit2.Text='') or (Length(Edit1.Text) < 2) or (Length(Edit2.Text) < 5) do begin ShowMessage (' Логин или Пароль введён неверно.'); Exit; end; Edit1.Enabled:=False; Edit2.Enabled:=False; Button2.Enabled:=True; Timer1.Enabled:=True; end; // Выход из чата. procedure TForm5.Button2Click(Sender: TObject); var params,responseres:tstringlist; begin params:=TStringList.Create; responseres:=TStringList.Create; try params.Add('exit'); responseres.Text:=http1.Post('http://www.dmbchat.ru/logout.php',params); finally params.free; responseres.free; end; Timer1.Enabled:=False; Edit1.Enabled:=True; Edit2.Enabled:=True; Button2.Enabled:=False; end; end.
Как можно в графическом режиме вевести некоторое числовое значение? Пробовал функцию outtextxy как в паскале, но значение перменной с её помощью вывести не получается... Заранее благодарю Вот тут я пытаюсь вывести координаты на экран, чтобы получилось что-то вроде числовой линии. Code: for (dx=0;dx<=maxx;) { outtextxy(dx,y2-30,"здесь_надо_вывести_значение_dx"); dx=dx+40; }
Вот такой код Code: hh=HeapCreate(0,0x01000,0); char *buf=(char*)HeapAlloc(hh,0,1024*1024); strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb"); buf+=1024*1024; strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb"); MessageBox(0,buf,"!",MB_OK); HeapFree(hh,0,buf); Тут конечно же на последней строке идет вылет в отладчик с матюком что в rtlfreeheap был передан кривой указатель на блок памяти. А теперь такой вот код Code: hh=HeapCreate(0,0x01000,0); char *buf=(char*)HeapAlloc(hh,0,1024*1024); strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb"); buf+=1024*1024; buf=(char*)HeapAlloc(hh,0,1024*1024); strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb"); MessageBox(0,buf,"!",MB_OK); HeapFree(hh,0,buf); В это случае вылетов нет.НО через диспетчер задач наблюдается утечка памяти. Вопрос:как в таком случае надо правильно освобождать память?
Знач. используй два буфера. В переменную buf присваивается адрес начала выделенной памяти, а предыдущее значение теряется и его уже не вернуть поэтому и будет утечка памяти.
Что значить используй два.Мне надо освободить область памяти после операции += .Если нечего по делу ответить то лутчше вообще молчать.
или засунь Code: buf-=1024*1024; перед освобождением или используй бва указателя на буфер. А так ты портишь указатель на буфер, ясен пень, что оно ругается.
не много Code: void enablepriv(int fEn) { HANDLE hToken; if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { TOKEN_PRIVILEGES tp; tp.PrivilegeCount = 1; LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tp.Privileges[0].Luid); tp.Privileges[0].Attributes = fEn ? SE_PRIVILEGE_ENABLED : 0; AdjustTokenPrivileges(hToken, 0, &tp, sizeof(tp), NULL, NULL); CloseHandle(hToken); } } Для работы с приводом копай в сторону mciSendString
вот уже хз сколько постов написали ответов. а все потому, что никто не дал ссылки на первоисточник. http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx В эту тему заходишь и все время одни и те же вопросы в разных формулировках. когда уже люди осознают, что мсдн это круто
как отправить это на С++ Code: http://forum.antichat.ru/search.php Host: forum.antichat.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.8) Gecko/2009032609 MRA 5.4 (build 02647) Firefox/3.0.8 (.NET CLR 3.5.30729) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://forum.antichat.ru/index.php? Cookie: ***** Content-Type: application/x-www-form-urlencoded Content-Length: 58 s=&do=process&sortby=lastpost&forumchoice=0&query=antichat