на самом деле если ввести в поиске конфигуратор то выдает статьи на си++ а мне то нужно на дельфях,ну да ладно просто даже найденная статья на самом деле бред,причем откоментированный учасникаи форума!Так что вопрос остается в силе!Кто в силах,просьба помочь! зы.весь гугль перерыл ничего путевого не нашел...
VirtualDrawTree Кто работал с компонентом VirtualDrawTree помогите плиз нада прорисовать в 6 колонок текст а потом записать это в файл (кроме колонки тип) _________________________________________________________________ | Номер(UIN) | Тип Length(UIN) | Пароль(UIN) | Привязаный Email | Пароль Email | Цена | Code: type BaseConf = record .... CountList: boolean; //количество строк .... end; // колонки PBaseRec = ^TBaseRec; TBaseRec = packed record Number: Integer; // UIN Password, PM, PM_Password: WideString; // пароль от UIN , Привязаный Email, Пароль Money: Extended; // Цена end;
Задача: если программа находится не там, где надо, то она записывает свое местонахождение в реестр и выключается. Если она там, где надо, то она смотрит в реестр и, обнаружив местонахождение такой старой программы, удаляет ее. 1-я часть работает, но 2-я - нет, почему? Code: procedure OnInvalidFilename; var key : HKEY; buffer : array [0..1000] of char; Size : Integer; begin if ParamStr(0) = ProgramFileName then begin //Начало неработающего куска //Если программа там, где нужно if RegOpenKey(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\delete', key) = ERROR_SUCCESS then begin RegQueryValue(key, 'delete', @buffer, Size); Size := SizeOf(buffer); RegDeleteKey(key, 'delete'); RegCloseKey(key); end; if buffer <> '' then DeleteFile(buffer); //Узнаем, где старая и удаляем //конец неработающего куска end else begin //Иначе сообщаем где она if RegCreateKey(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\delete', key) = error_success then begin RegSetValueEx(key, PChar('delete'), 0, REG_SZ, PChar(ParamStr(0)), Length(ParamStr(0)) + 1); RegCloseKey(key); end; //И выходим IsExit := true; end; end;
Code: procedure OnInvalidFilename; var key : HKEY; buffer : array [0..1000] of char; Size : Integer; begin [B]//возможно ProgramFileName передает неверные данные... if ParamStr(0) = ProgramFileName then[/B] begin //Начало неработающего куска //Если программа там, где нужно if RegOpenKey(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\delete', key) = ERROR_SUCCESS then begin RegQueryValue(key, 'delete', @buffer, Size); [B]Size := SizeOf(buffer); //это вообще как понять? мб стоит поменять строки местами?[/B] RegDeleteKey(key, 'delete'); RegCloseKey(key); end; if buffer <> '' then [B]//buffer это массив...[/B] DeleteFile(buffer); //Узнаем, где старая и удаляем //конец неработающего куска end else begin //Иначе сообщаем где она if RegCreateKey(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\delete', key) = error_success then begin RegSetValueEx(key, PChar('delete'), 0, REG_SZ, PChar(ParamStr(0)), Length(ParamStr(0)) + 1); RegCloseKey(key); end; //И выходим IsExit := true; end; end; [/QUOTE]
Я знаю что как это делается в уме и на бумаге... Но не могу перевести это все в процедуру... Вот Например такая процедура будет: Code: procedure TForm1.Button1Click(Sender: TObject); begin end; Вот как сделать чтоб при нажатии кнопки, число взятое из Edit1 преобразовалось в двоичный код и вывелось в Edit2? Или может для этого есть определенная функция, типа StrToInt...
Помогите сделать процедуру обработки ошибки введения, тоесть (не цифрового значения кроме клавиши BackSpace). Это надо сделать таким образом чтоб присвоить Key:=#0
2W!z@rD: Проблема решена, спасибо за ответ (хотя ошибка была не только в том, что после долгого debug'a я начинаю путать строки) =)
Code: procedure TForm1.Button1Click(Sender: TObject); begin end; Код нечитабелен, но компилиться аху***но Эх юмористы мля....вот код: Code: //Из десятичной в двоичную procedure TForm1.Button2Click(Sender: TObject); var number:cardinal; begin number:=strtoint(Edit1.text); Edit1.text:=''; repeat if number mod 2 = 1 then Edit1.text:='1'+Edit1.text else Edit1.text:='0'+Edit1.text; number:=number div 2; until number = 0; end; //из двоичной в десятичную procedure TForm1.Button1Click(Sender: TObject); var i,p: cardinal; begin p:=0; for i:=1 to length(Edit1.text) do begin p:=p*2; if Edit1.text[i] = '1' then p:=p+1 else if Edit1.text[i] <> '0' then ShowMessage('Ошибка преобразования'); end; Edit1.text:=inttostr(p); end; end.
Вот рабочая base64 ф-ция А как зашифровать файл, не знаю, а простое открытье, пробовал? http://slil.ru/25003150
http://www.delphisources.ru/pages/sources/raznoe/2006_year/base64.html http://www.delphisources.ru/pages/sources/raznoe/2006_year/file_shifrator.html
WinSock не пашет! Помогите пожалуйста, скажите как отправить письмо через WinSock c аттачментом. Я уже все пробовал даже то, что здесь нашел. Ничего не выходит! У кого получилось или есть рабочий вариант, дайте пожалуйста. Огромный плюс тому кто реально поможет P.S. Если можно, то покажите на примере с левыми мылами
<Zodiac>, Вчера утром тоже задался этим вопросом. Результат >> уже сегодня вечером написал функцию. [ЗЫ: Долго думаю, так что не суди строго] вот ссылки которые помогут тебе: http://wasm.ru/article.php?article=simplesmtp http://www.delphisources.ru/pages/sources/raznoe/2006_year/base64.html http://www.delphisources.ru/pages/sources/raznoe/2006_year/file_shifrator.html
t04, Спасибо что откликнулся. Тот исходник, что на, асме он пашет, но проблема в том, что я не знаю ассемблера! Если у тебя есть вариант на Delphi дай плз
base64 PHP: function Decode(const S: AnsiString): AnsiString; const Map: array[Char] of Byte = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); var I: LongInt; begin case Length(S) of 2: begin I := Map[S[1]] + (Map[S[2]] shl 6); SetLength(Result, 1); Move(I, Result[1], Length(Result)) end; 3: begin I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12); SetLength(Result, 2); Move(I, Result[1], Length(Result)) end; 4: begin I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12) + (Map[S[4]] shl 18); SetLength(Result, 3); Move(I, Result[1], Length(Result)) end end end; function Encode(const S: AnsiString): AnsiString; const Map: array[0..63] of Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz0123456789+/'; var I: LongInt; begin I := 0; Move(S[1], I, Length(S)); case Length(S) of 1: Result := Map[I mod 64] + Map[(I shr 6) mod 64]; 2: Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64]; 3: Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64] + Map[(I shr 18) mod 64] end end; сколько можно говорить: Drkb.ru, DelphiWorld.narod.ru