Перешел на Delphi XE. Возникла проблема с UrlEncode. Раньше использовал такую функцию: PHP: function Convert(s: string): string; var i,j: Integer; const rus='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя'; web='%C0%C1%C2%C3%C4%C5%A8%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DC%DB%DA%DD%DE%DF%E0%E1%E2%E3%E4%E5%B8%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FC%FB%FA%FD%FE%FF'; begin for j := 1 to Length(s) do if (pos(s[j],rus)>0) then begin result:=result+copy(web,3*(pos(s[j],rus)-1)+1,3); end else result:=result+s[j]; end; По идее при вводной строке = 'Тест' , я должен получить : %d0%a2%d0%b5%d1%81%d1%82, а получаю : '%D2%E5%F1%F2'. Наверное проблема в том, что щас строки Unicode стали. Как это решить?
Если меня память не подводит то в ХЕ индя сама конвертирует строку как нужно. А еще можно Pos на AnsiPos заменить
Я использую синапс. Ни один способ не помог. Результат все тот же. :\ P.S Парни, очень срочно нужно...Видел функцию UnicodeToUtf8..то блин так и не понял, как ей пользоваться
Попробуй дополнительно заменить rus= на rus: AnsiString = и web= на web: AnsiString =. Также нужно записывать строку запроса самостоятельно (для POST) в Stream (в Synapse есть свойство Document, в него и надо самому записывать) и тогда уже отправлять. Здесь свои сообщения можно самому удалять...
Неа..вообще никак.. все тот же результат. А что насчет функции UnicodeToUTF8 думаешь? Никак не пойму, как она работает.
fenixelite, попробуй как-то так, под UrlEncode сам допили =) Code: function BinToHexStr(Bin: Pointer; nSize: Cardinal): String; var i: Cardinal; bt: Byte; const Hex = '0123456789abcdef'; EngNumChar = ['A'..'z','0'..'9']; begin Result:= ''; for i:= 0 to nSize - 1 do begin bt:= PByte(Ptr(Cardinal(Bin) + i))^; if (Char(bt) in EngNumChar) then Result:= Result + Char(bt) else Result:= Result + '%' + Hex[bt shr $4 + 1] + Hex[bt and $0f + 1] end; end; procedure TForm1.Button1Click(Sender: TObject); var s,ws: AnsiString; begin s:= Edit1.Text; ws:= Utf8Encode(s); Edit2.Text:= BinToHexStr(Pointer(ws), Length(ws)); end;
В делфи понимаю плохо ,сделал фейка, но только дизайн. Хочу что б фейк проверял пароли и отправлял на почту,но после валидного акк, писал сообщение " сервер программы перегружен " Кто сможет бесплатно сделать такое ?
procedure TForm1.BitBtn3Click(Sender: TObject); var pas,a,C,del:string; begin pas:='Pascal'; a:='ASM'; C:='C++'; del:='Delphi 7.0'; if Label8.Caption='Разработка' then // за разработка надо написать переменные все только пишу переменную а проверяется имя переменной как сделать что бы проверялась строка в переменной? Form5.Show else begin ShowMessage('Сначала установите среду разработки!') end; end;
Изучаю drag-and-drop Создал Image1, Shape1. Shape1 перемещается по Form1 ногрмально, но по image1 как то криво, я курсор в одном месте отпускаю, а shape1 появляется в лругом месте Может кто знает как исправить .. Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Shape1: TShape; procedure Image1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure Image1DragDrop(Sender, Source: TObject; X, Y: Integer); procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer); procedure FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept :=true; end; procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source.ClassName = 'TShape' then begin TShape(Source).Top:= Y; TShape(Source).Left:= X; end; end; procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source.ClassName = 'TShape' then begin TShape(Source).Top:= Y; TShape(Source).Left:= X; end; end; procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept :=true; end; end.
Исправил Code: procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source.ClassName = 'TShape' then begin TShape(Source).Top:= Y+136; TShape(Source).Left:= X; end; end;
Code: procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source.ClassName = 'TShape' then begin TShape(Source).Top:= Y+136; TShape(Source).Left:= X; end; end; Тут у меня идет просто порверка на TShape, а как узнать, переместили Shape1 или Shape2?
sidapas23, извиняюсь конечно, но на твой вопрос никто, скорее всего, ответа не даст, научись внятно задавать вопросы!