Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: delover
Дата сообщения: 29.01.2008 15:51
vassal76

Цитата:
sNumbers := #$10


Код:
var
i: Integer;
c: Char;
s: string;
begin
s := #$10 + 'bla-bla-bla';
s := #$10'bla-bla-bla'; // где +?
s := #$10 + #10#$10; //длинна 3?
i:=16; //это в десятичной системе 16
i:=$16; //в десятичной 22
i:=10; //...
i:=$10; //это в шеснадцатиричной системе 10 а в десятичной 16
c:=#16; //это символ с кодом 16
c:=Char(i); //это будет символ с номером i значит номер 16.
c:=#$10; //это будет символ с десятичным номером шеснадцать
s := #$10;
c:=s[1]; //это будет то же самое
i:=Byte(s[1]); //это 16
Inc(i, 4); //это увеличит i
Inc(Byte(c), 4); //это увеличит код символа с
Inc(Byte(s[1]), 4); //это увеличит s[1]
Dec(i, 4); //это уменьшит
Автор: vassal76
Дата сообщения: 30.01.2008 11:12
delover
Огромное спасибо, сегодня попробую. Я предполагал что придется какую-нибудь процедуру лепить, но не знал как.

Добавлено:
greenpc
Ура! Работает! Уже проверил, вариант после // или.
Спасибо.
Автор: Chuvakstepan
Дата сообщения: 30.01.2008 17:43
Подскажите пожалуйста как реализовать следущее:
1) При перетаскивании файла на EXE программы, файл загружался бы в RichEdit
2) если программа открыта, то надо при перетаскивании файла на сам RichEdit открыть его там же
Автор: Jokerjar79
Дата сообщения: 30.01.2008 18:00
Chuvakstepan, в DRKB есть пример реализации (и, вроде, не один). Да и вообще хорошая вещь, много интересного для себя там найдешь
Автор: Chuvakstepan
Дата сообщения: 30.01.2008 18:41
Jokerjar79
Можно пример отдельно пожалуйста?
А то 30 Мб буду долго качать...
Автор: Frodo_Torbins
Дата сообщения: 30.01.2008 20:00
Вот пример из DRKB (всетаки не поленитесь ее скачать, ОЧЕНЬ полезная штука):
Автор: Nomadic

Код: TForm1 = class(TForm)
...
private
{ Private declarations }
procedure WMDropFiles(var M: TWMDropFiles); message WM_DROPFILES;
...
end;

var
Form1: TForm1;

implementation

uses
StrUtils, ShellAPI, ComObj, ShlObj, ActiveX;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
DragAcceptFiles(Handle, True);
...
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
...
DragAcceptFiles(Handle, False);
...
end;

procedure TForm1.WMDropFiles(var M: TWMDropFiles);
var
hDrop: Cardinal;
n: Integer;
s: string;
begin
hDrop := M.Drop;
n := DragQueryFile(hDrop, 0, nil, 0);
SetLength(s, n);
DragQueryFile(hDrop, 0, PChar(s), n + 1);
DragFinish(hDrop);
M.Result := 0;
FileOpen(s);
end;

procedure TForm1.FileOpen(FileName: string);
begin
if CompareText(ExtractFileExt(FileName), '.lnk') = 0 then
FileName := ResolveShortcut(Application.Handle, FileName);
DocName := ExtractFileName(FileName);
Caption := Application.Title + ' - ' + DocName;
...
end;

function ResolveShortcut(Wnd: HWND; ShortcutPath: string): string;
var
obj: IUnknown;
isl: IShellLink;
ipf: IPersistFile;
pfd: TWin32FindDataA;
begin
Result := '';
obj := CreateComObject(CLSID_ShellLink);
isl := obj as IShellLink;
ipf := obj as IPersistFile;
ipf.Load(PWChar(WideString(ShortcutPath)), STGM_READ);
with isl do
begin
Resolve(Wnd, SLR_ANY_MATCH);
SetLength(Result, MAX_PATH);
GetPath(PChar(Result), Length(Result), pfd, SLGP_UNCPRIORITY);
Result := PChar(Result);
end;
end;
Автор: Maks150988
Дата сообщения: 31.01.2008 00:34
Подскажите как в resourcestring нормально прописать знаки \n ? Они указывают на переход на следующую строку. В редакторе ресурсов делается Текст\nТекст и тексты на 2 строчках. А тут если прописать \n, то получается \\n... И поэтому строки лепятся в одну. И кстати подскажите где найти инфу о кодах. То есть всем известные #13#10 - переход на строку. А подскажите другие.
Автор: Chuvakstepan
Дата сообщения: 31.01.2008 06:11
Frodo_Torbins спасибо!

Подскажите, почему не работает следущее:
Lines.LoadFromFile(LASTFILE.Caption)

в LASTFILE.Caption прописан полный путь к файлу

Автор: RostY
Дата сообщения: 31.01.2008 08:44
возможно, в полном пути есть пробелы. Тады надобно его в кавычки.
А еще лучше б знать как именно "не работает"
Автор: vidic777
Дата сообщения: 31.01.2008 09:40
А по моей проблеме (перевод проекта из BCB5 в RS2007) так и не найдется ответа ? Очень нужно ! Или подскажите где можно почитать про переход от одной среды к другой ?

Заранее спасибо.
Автор: Czechoslovak
Дата сообщения: 31.01.2008 09:44
Maks150988

Я думаю это тебе поможет http://aimatrix.nm.ru/computer/MyHandiworks4.htm
Автор: Chuvakstepan
Дата сообщения: 31.01.2008 11:00
RostY

Вот такая вот ошибка, при пробовании открыть файл
Автор: Czechoslovak
Дата сообщения: 31.01.2008 12:42
так что это за имя файла ...&C:\...
Автор: delover
Дата сообщения: 31.01.2008 13:04
Chuvakstepan
Имя файла не должно содержать ":"
C:\Документы\Мейкер\Delphi\RightPad\&C:\Документы\Скрипты\Corona\Splash Corona.xml

Возможно в скрипте есть ошибка типа:
filename:=format('%s&%s', [extractfilepath(f1), f2]);
а надо так:
filename:=format('%s'&'%s', [extractfilepath(f1), extractfilename(f2)]);

Автор: Frodo_Torbins
Дата сообщения: 31.01.2008 13:13
Maks150988
#13 - это один ASCII символ с кодом 13 (в шестнадцатеричной системе 0D). Подробнее тут: http://ru.wikipedia.org/wiki/ASCII
Автор: Chuvakstepan
Дата сообщения: 31.01.2008 13:25
Czechoslovak
delover
в LASTFILE.Caption прописан полный путь к файлу (он правилен)

Lines.LoadFromFile(LASTFILE.Caption)

Откуда взялся путь к EXE приложения вначале?
Автор: Jokerjar79
Дата сообщения: 31.01.2008 14:27
Поставь брэйкпоинт и посмотри по шагам
Автор: Maks150988
Дата сообщения: 01.02.2008 00:33
подскажите пожалуйста почему не выводится информация о размере файла. код такой:


Код:
function Format(fmt: string; params: array of const): string;
var
pdw1, pdw2 : PDWORD;
i : integer;
pc : PCHAR;
begin
pdw1 := nil;
if length(params) > 0 then
GetMem(pdw1, length(params) * sizeof(Pointer));
pdw2 := pdw1;
for i := 0 to high(params) do
begin
pdw2^ := DWORD(PDWORD(@params[i])^);
inc(pdw2);
end;
GetMem(pc, 1024 - 1);
try
ZeroMemory(pc, 1024 - 1);
SetString(Result, pc, wvsprintf(pc, PCHAR(fmt), PCHAR(pdw1)));
except
Result := '';
end;
if (pdw1 <> nil) then
FreeMem(pdw1);
if (pc <> nil) then
FreeMem(pc);
end;

function FmtFileSize(Size: Integer): string;
begin
if Size >= $F4240 then
Result := Format('%.2f', [Size / $F4240]) + ' Mb'
else
if Size < 1000 then
Result := IntToStr(Size) + ' bytes'
else
Result := Format('%.2f', [Size / 1000]);
end;
Автор: Jokerjar79
Дата сообщения: 01.02.2008 02:42
Ну видимо неправильно работает твоя функция format. Почему не пользуешься той, что в SysUtils?
Автор: Mandor Sawall
Дата сообщения: 01.02.2008 08:51
Maks150988
Ну, сначала скажем, что у wsprintf нет типа 'f'. Поетому и отображается как символ. Потом - у wsprintf вообще нет какой-то float - real, double, extended. И наконец - вы все аргументи насильствено делаете DWORD, несмотря на том, что снаружи подаете double.
И вообще, все ето обнаруживается через обычной debug.

Добавлено:
Еще на первой странице поиска в Google нашел вот ето:
http://www.delphisources.ru/pages/faq/base/wvsprintf.html
Автор: Maks150988
Дата сообщения: 01.02.2008 10:18
Jokerjar79
Да мне нужен небольшой размер программы. Поэтому критично. Нашел на просторах интернет эту функцию.

Mandor Sawall
Хм... Не разобрался как использовать ту функцию под мою задачу. Я не знаю...
Автор: ms2015
Дата сообщения: 01.02.2008 10:31
подскажите пожалуйста как в CodeGear включить опцию групповой разработки? раньше была наработка у борланда что-то вроде StarTeam.... Но сколько не копался в инсталяшке архитект версии CodeGear Rad 2007 Architect не нашел
Автор: GenXXX2
Дата сообщения: 01.02.2008 10:58
народ подскажите где можно скачать последнию версию DELPHI ???
Автор: ms2015
Дата сообщения: 01.02.2008 11:14


Цитата:
народ подскажите где можно скачать последнию версию DELPHI ???

CodeGear RAD Studio 2007
http://forum.ru-board.com/topic.cgi?forum=35&topic=38537#1
Автор: aqwapaq
Дата сообщения: 02.02.2008 14:39
Вот код странички для которой надо организовать отправку сначала первого SUBMIT("Connect") а потом второго SUBMIT("Disconnect") через определенный промежуток времени или после получения ALERT'а от первого SUBMIT'а.


Код:
<html>
<body bgcolor="#bababa">
<form name="st_poe" action="http://192.168.1.1/st_poe.cgi" method="post">
<INPUT type="submit" name="dial_st_poe" value="Connect">
<INPUT type="submit" name="hang_up_st_poe" value="Disconnect">
</form>
</body>
</html>
Автор: vladk1973
Дата сообщения: 04.02.2008 01:55
aqwapaq

Цитата:
Вот код странички для которой надо организовать отправку сначала первого SUBMIT("Connect") а потом второго SUBMIT("Disconnect") через определенный промежуток времени или после получения ALERT'а от первого SUBMIT'а.

Перечитал два раза. Что для чего надо, так и не понял.
Автор: Mandor Sawall
Дата сообщения: 04.02.2008 09:53
Maks150988
По моему, вы изобретаете колесо... Почему не посмотрите на http://kolmck.net/ - может, вам нужно точно то? В конце концов, можете просто посмотреть как там сделали похожые функции (например Num2Bytes).
Автор: Erazer
Дата сообщения: 04.02.2008 11:22
когда ненужно было 100 раз встречал исходники кейлоггеров, а счас немогу найти... поделитесь плз
Автор: waik
Дата сообщения: 04.02.2008 13:12
ms2015

Цитата:
подскажите пожалуйста как в CodeGear включить опцию групповой разработки? раньше была наработка у борланда что-то вроде StarTeam.... Но сколько не копался в инсталяшке архитект версии CodeGear Rad 2007 Architect не нашел


А наверное и нету такого... Думаю что теперь осталось два пути для пользования StarTeam - либо всё делать через клиента (экстернал так сказать - настроить в тулс вызов, плюс в командной строке передавать какие-нито пути текущего проекта или что он там принимает) или искать сторонний эксперт универсальный вроде атланта.

Темка о StarTeam _ttp://forum.ru-board.com/topic.cgi?forum=35&topic=2396&start=300

Ещё вариант выбрать другую CVS. Одно из готовых почти решений:

_ttp://tortoisesvn.net/ TortoiseSVN
_ttp://delphiaddinfortortoisesvn.tigris.org/ Из названия понятно что это искомый эксперт
_ttp://delphi.wikia.com/wiki/Adding_TortoiseSVN_to_the_Tools_menu Другое решение интеграции в меню (его кстати можно использовать шире - не только для Tortoise - главное принцып действия)

Буду благодарен за предложение других вариантом. Тема, как говорится, не раскрыта. Почему CodeGear убрал из поставки этот плагин не понятно.
Автор: xy
Дата сообщения: 04.02.2008 17:10
waik
я использую jedi vcs http://jedivcs.sourceforge.net/
не очень стабильный, но зато полностью самоинтегрируемый с делфи cvs ;)

забавно что в комплекте с JCL напротив, идёт Tortoise, но переходить лень если никто не опишет реально ли оно лучше ;)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.