ребят, вопрос есть, как программно из делфи можно перевернуть Десктоп? только варианты с копирование изображения Стола не предлагать.. хочется чтобы он оставался активным... и чтобы работало на любых картах...(желательно код)) )
поищи информацию по этой апишке Code: function ChangeDisplaySettingsEx(lpszDeviceName: PChar; var lpDevMode: TDeviceMode; wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint; stdcall;
Через ADOConnection-ADOQuery-DataSource-DBGrid делал работу с таблицей БД в Access. Потом поменял БД на Sybase Anywhere и при каждом изменении начала вылетать ошибка "Ошибка неизвестного типа". Как исправить?
доброго времени суток, возникал проблемка, надо отключить клавиши Winkey на клаве.. кнопку пуск мышкой заблокировал, но она открывается чрез нажатия винкея.. формы нет, приложение консольное и скрытое... кто что посоветует?
Привет! Пишу на Delphi 7 довольно мало времени... Кто может дать такой пример. На форме есть 2 компонента TSpinEdit и TEdit. TSpinEdit будет иметь Value от 1 до 10. Как сделать чтобы при значении Value, рандомно генерировались числа в форме TSpinEdit...но главное чтобы если при значении к примеру 1 - генерировались числа именно в диапазоне от 0 до 9...а допустим при значении 6...была генерация в диапазоне от 000000 до 999999 ? Вот код который делает всё что надо только кроме заданного диапазона... Тесть random(99) будет колебаться и от 0 до 9, что мне и не надо... Уже кучу времени убил и так и не смог сделать сам
SkyLine32 Code: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; s: string; begin if SpinEdit1.Value < 1 then Exit; Randomize; for i := 1 to SpinEdit1.Value do s := s + '9'; Edit1.Text := IntToStr(Random(StrToInt(s))); end;
Nullsleep, спасибо за решение, но всё равно если поставить Value 3 к примеру то примерно раз из 5 проскакивает двузначные числа.
Randomize; z:=1; for i := 1 to SpinEdit1.Value do begin s := s + '9'; z:=z*10; end; z:=z div 10; Edit1.Text := IntToStr(Random(StrToInt(s)-z)+z);
Для velikijmerlin: попробуй поискать информацию про "глобальные хуки". Вроде как нажатие клавиш отлавливает. По принципу Кейлогера.
Здравствуйте, есть вопрос про указатель ввода. Необходимо, чтобы, например, при событии onChange в TEdit указатель устанавливался на самый последний символ. От этого нужно, чтоб при Edit1.SetFocus; но при СэтФокус, естественно, он становится вначало... Можно ли такое вообще организовать?
Для slesh: вот спасибо, только сделал не на onChange, а на onKeyPress. Просто делаю, фильтр символов. Нужны только числа, ну и с минусом проблемы начались. Вот, и мне показалось, что так будет намного легче... +++
Нужно сделать примерно так: (Код на руском языке) То что между --- надо делать пока в мемо есть строчки...
фильтрация тут простая: Code: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9','-',#8]) then key := #0; end; #8 - это код бекспейса. Это для того чтобы можно было бы стереть символ. Ну и можно еще добавить туда символ точки или зяпятой чтобы можно былобы вводить еще и дробные числа
Еще были ошибки в коде - не в том месте закрывались хендлы. Проводим простой следственный эксперимент. Берем PHP файл через который будем грузить чтонить PHP: <form action="?act=upload" method="POST" enctype="multipart/form-data"> <input type="text" name="info"> <input type="file" name="myfile"> <input type="submit" value="UPLOAD"> </form> <? if ($_GET['act'] == 'upload') { $name = $_FILES['myfile']['name']; $myfile=$_FILES['myfile']['tmp_name']; if (!file_exists($myfile)) { echo '<h3>Error</h3>'; } else { Copy($myfile, $name); echo "<h3>OK</h3><br>{$_POST['info']}"; } } ?> Через снифер получаем данные: Теперь на основании этих данных очень просто построить запрос. Code: procedure TForm1.Button1Click(Sender: TObject); var hOpenHandle, hConnectHandle, hResourceHandle: Pointer; boundary:string; header, data:string; begin hOpenHandle := InternetOpen(nil, 0, nil, nil, 0); if hOpenHandle <> nil then begin hConnectHandle := InternetConnect(hOpenHandle, '127.0.0.1', 80, nil, nil, 3, 0, 0); if hConnectHandle <> nil then begin hResourceHandle := HttpOpenRequest(hConnectHandle, 'POST', '/1.php?act=upload', nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0); if hResourceHandle <> nil then begin boundary := inttostr(random(65355))+inttostr(random(65355))+inttostr(random(65355)); header := 'Content-Type: multipart/form-data; boundary='+boundary; data := '--'+boundary+#13#10+ 'Content-Disposition: form-data; name="info"'#13#10#13#10+edit1.Text+#13#10+ '--'+boundary+#13#10+ 'Content-Disposition: form-data; name="myfile"; filename="test.txt"'#13#10+ 'Content-Type: text/plain'#13#10#13#10+memo1.Text+#13#10+ '--'+boundary+'--'; HttpSendRequest(hResourceHandle, @header[1], length(header), @data[1], length(data)); InternetCloseHandle(hResourceHandle); end; InternetCloseHandle(hConnectHandle); end; InternetCloseHandle(hOpenHandle); end; end;
P.S. вот у тебя функция HttpSendRequest(hResourceHandle,header,47,szData,l strlen(szData)); 47 - это длинна хидера которую ты вбил ручками, а нужно вычеслять её, потому как хидер может быть разной длинный у тебя. Еслибы заюзал снифер для просмотра того, что шлёт твой код, то сразу бы увидел это бажное место.