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

» Вопросы по Delphi 2

Автор: greenpc
Дата сообщения: 20.11.2006 06:56
Jokerjar
var PIInfo : PInternetProxyInfo;
...
New (PIInfo) ;
PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY ; // Изменение настроек ПРОКСИ
PIInfo^.lpszProxy := PChar('some.proxy:someport'); // указать прокси напр.
195.43.67.33:8080
PIInfo^.lpszProxyBypass := PChar(''); // Список адресов, доступ к которым возможен минуя Proxy сервер
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
....
Dispose (PIInfo) ;
Автор: Jokerjar
Дата сообщения: 20.11.2006 09:41
greenpc, я это пробовал. Но что-то не меняет он айпишник...
Автор: greenpc
Дата сообщения: 20.11.2006 10:15
Jokerjar
комент. "Код срабатывает только при первой загрузке, далее менять не хочет...
Делается дополнительное окно, куда и вставляется браузер. При необходимости использовать новую проксю делается на новое окно:=TForm2.create(self).
Вот, пожалуй и всё...
"

Автор: dvg06
Дата сообщения: 20.11.2006 15:42
Ребят, помогите а?
Как сделать так, чтобы данные при записи в экспорте\импорте в эксель не перемешивались, а допустим шли так
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
|текст 1|текст 2|текст 3|текст 4|картинка|
, где тест 1 - текст 4 и картинка = отображаются в определенной области (для каждого своя), зависят друг от друга и выбор списка идет по текст 1
Автор: RostY
Дата сообщения: 20.11.2006 15:56
dvg06 ты сам понял че написал ? )).
Автор: Vitus_Bering
Дата сообщения: 20.11.2006 18:22
Как отформатировать текст типа 3,6 в 3,60р., короче текст с цифрами в денежный формат.
Автор: OdesitVadim
Дата сообщения: 20.11.2006 18:34
Vitus_Bering
наиболее просто - функция format

Код:
format('%6.2f р.',[d]);
Автор: Vitus_Bering
Дата сообщения: 20.11.2006 19:52
OdesitVadim
Спасибо.
Автор: xy
Дата сообщения: 20.11.2006 21:49
Подскажите плиз где почитать:
Нужно в определенные моменты приложения запускать поток который будет тусовать данные
Хочется, чтобы поток показывал формочку поверхвсех окон в уголке экрана и на нем статус своего выполнения, потом всё чистил из памяти

Собственно вопрос в работе формочки в параллельном потоке - как это всё грамотно организовать, красиво и не так чтоб пушкой по воробьям :-?

вот про это еслди кто знает - подскажите плиз где почитать
Автор: RomanTim
Дата сообщения: 20.11.2006 22:10
xy
Где почитать не скажу - не помню, чтобы где-нибудь видел, но наверняка могу сказать, что если ты сделаешь поток и в нем TForm.Create, то работать не будет - VCL так не умеет.

Когда у меня появилась необходимость в чем-то подобном, сделал так:
1. создал библиотеку, из которой экспортируются функции: ShowWindow и HideWindow (у тебя будет еще что-то типа SetStatus), в первой создавал окно, во втрой делал ему Free
2. В приложении создал поток, в котором делал [more=так]
procedure ShowWindow; external 'mydll.dll';
procedure HideWindow; external 'mydll.dll';
procedure TMyThread.Execute;
var
msg: TMsg;
begin
try
// для того, чтобы у потока создалась очередь сообщений
PeekMessage(msg, 0, WM_USER, WM_USER, PM_NOREMOVE);

ShowWindow;

while GetMessage(msg, 0, 0, 0) do
try
TranslateMessage(Msg);
DispatchMessage(Msg);
except end;

HideWindow;
except end;
end;[/more]
Чтобы завершить поток надо ему послать WM_QUIT через PostThreadMessage
Автор: EZH
Дата сообщения: 20.11.2006 22:17
xy
GUI-поток у тебя должен быть один, твоего основного приложения. Он и должен отображать то окошко. А делать он должен это по синхронизированному вызову метода(ов) этого GUI-потока от создаваемого фонового потока, тусующего данные.

Вобщем, в постановке твоей задачи нет ничего необычного.
http://ad.cctpu.edu.ru/SSP/Prof/Glava29/Index6.html
Автор: VadimLou
Дата сообщения: 21.11.2006 06:40
Jokerjar

Цитата:
где там прокси? Подскажи а?


EwbTools.pas
procedure SetProxy(UserAgent, ProxyServer: string);

dvg06

Цитата:
Ребят, помогите а

это ... в клинику ... там всех вылечат
или к телепату с такими вопросами ...
Автор: Widoms
Дата сообщения: 21.11.2006 10:13
Ребята помогите.
Есть задача, наглядно вывести значения по направлению ветра с прибора.

Посмотрите как такое можно реализовать.
_http://img224.imageshack.us/my.php?image=cropimagerx6.jpg
Автор: Z MeZe
Дата сообщения: 21.11.2006 10:53
Widoms

Цитата:
Посмотрите как такое можно реализовать.
_http://img224.imageshack.us/my.php?image=cropimagerx6.jpg

Если речь идет о том, как именно нарисовать такой "направленияветрамометр" - тогда есть готовые компоненты, к примеру: _http://www.lohninger.com/sdlindex.html (это то, что сразу всплыло в голове. Реализаций подобных ProgressBar-ов и прочего достаточно много и халявного).
Автор: STEEL
Дата сообщения: 21.11.2006 16:25
Как передать имя генератора? Запрос должен выглядеть след образом.

select gen_id(GEN_ATTRACTION_ID,1) from RDB$DATABASE

Когда я передаю имя генератора GEN_ATTRACTION_ID, он принемает вид 'GEN_ATTRACTION_ID', а это не правильно, как избавится от ковычек?


Код:
function TfrmSklad.GenID(GeneratorName: String): Integer;
begin
with da.Query do begin
Close;
SQL.Clear;
SQL.Add('select gen_id(:GenName,1) from RDB$DATABASE');
ParamByName('GenName').AsString := GeneratorName;
ExecQuery;
Result := Fields[0].AsInteger;
end;
end;
Автор: vshersh
Дата сообщения: 21.11.2006 16:31
STEEL
Напиши через Format:

Код:
function TfrmSklad.GenID(GeneratorName: String): Integer;
begin
with da.Query do begin
Close;
SQL.Clear;
SQL.Add(Format('select gen_id(%S,1) from RDB$DATABASE', [GeneratorName]));
ExecQuery;
Result := Fields[0].AsInteger;
end;
end;
Автор: Yogi Bear
Дата сообщения: 22.11.2006 12:18
Может кто-нибудь подскажет как записать на форме определенный интеграл? Хотелось бы как в MathType или MathCAD. Вообще как такое программировать? Изучаю Delphi, поэтому может быть вопрос элементарен.
Автор: OrlangurStep
Дата сообщения: 22.11.2006 20:06
Так:
Ставишь на форму какой нибудь label и пишешь
label1.text := FloatToStr ( rezultat );
Конкретные параметры функции не помню (отвечают за формат вывода) посмотри в справке
Автор: lolman
Дата сообщения: 23.11.2006 17:52
Люди!! Помогите пожалуйста бедному студенту!!=))) Надо разбить заданную последовательность чисел на два непересекающихся подмножества, в которых разности между суммами чисел, делящихся без остатка на число k, и остальных наиболее близка друг к другу.
хельп..))
Автор: bodomus
Дата сообщения: 24.11.2006 12:14
To Xy
Не заморачивайся с потоками. То что ты хочешь вывести окно из потока тяжело, да и не надо в твоем случае. Лучше пользуйся сообщениями Windows. Работать гарантированно будет, из потока шлешь сообщения в главную форму, а она в свою очередь отображает окно. Ну и т.д.
Автор: yuish
Дата сообщения: 24.11.2006 12:20
вопрос. мне надо что бы созданое программой окно по форм.креате - не сворачиволось а оставалось на экране. если сворачивается главная форма.
я пробовал - создать окно 1*1 прозрачное. запускается первым. из его - запустить основную форму автоматом - уже из нее делаешь другие. тогда при свертывании основной - те остаются. но основная тогда сворачивается нормально в панель задач
Автор: JohnC
Дата сообщения: 24.11.2006 16:54
Подскажите, как можно программно запустить "Подключение по локальной сети"?
Автор: jsnjack
Дата сообщения: 26.11.2006 16:10
есть компонент TChart.
1. как сделатть на нем толковый зум?(а точнее, когда обводишь прямоугольником влево, чтобы он не уменьшал сразу до исходного значения?)
2. при наведении мыша на точку показывались координаты
Автор: Andysoft3C
Дата сообщения: 27.11.2006 07:13
Привет всем.
Подскажите как перевести такой код из Си в Delphi
const unsigned long CRC24tab[256] =
{
0x00000000, 0x00864CFB, 0x008AD50D, 0x000C99F6, 0x0093E6E1, 0x0015AA1A, 0x001933EC, 0x009F7F17, 0x00A18139, 0x0027CDC2, 0x002B5434, 0x00AD18CF, 0x003267D8, 0x00B42B23, 0x00B8B2D5, 0x003EFE2E,
...
};


Добавлено:
И вот такой код Си->Delphi если не затруднит
const unsigned short CMatrix[8] = {0xd4, 0xa9, 0x53, 0xa6, 0x4d, 0x9a, 0x35, 0x6a};

// корректирующая таблица для кода [16,8]

const unsigned char ucSyndromes[256] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0x00, 0x00, 0x00, 0xff, 0x00, 0x10, 0xff, 0x0a,
0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0xff, 0xff,
0x00, 0xff, 0x20, 0xff, 0xff, 0xff, 0x14, 0xff,
0x00, 0x00, 0x00, 0xff, 0x00, 0x40, 0x08, 0x90,
0x00, 0x02, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x40, 0xff, 0x22, 0x40, 0x40, 0xff, 0x40,
0xff, 0x84, 0xff, 0xff, 0x28, 0x40, 0xff, 0xff,
0x00, 0x00, 0x00, 0x04, 0x00, 0x10, 0xff, 0xff,
0x00, 0x10, 0x80, 0xff, 0x10, 0x10, 0x21, 0x10,
0x00, 0x04, 0x04, 0x04, 0x01, 0xff, 0xff, 0x04,
0xff, 0xff, 0xff, 0x04, 0xff, 0x10, 0xff, 0xc0,
0x00, 0xff, 0x80, 0xff, 0xff, 0xff, 0x44, 0xff,
0x80, 0xff, 0x80, 0x80, 0xff, 0x10, 0x80, 0xff,
0xff, 0xff, 0x09, 0x04, 0xff, 0x40, 0xff, 0xff,
0x50, 0xff, 0x80, 0xff, 0xff, 0x03, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x08, 0x05,
0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0x20, 0x48, 0x01, 0xff, 0xff, 0xff,
0x20, 0x11, 0x20, 0x20, 0x42, 0xff, 0x20, 0xff,
0x00, 0x02, 0x08, 0xff, 0x08, 0xff, 0x08, 0x08,
0x02, 0x02, 0xff, 0x02, 0xff, 0x02, 0x08, 0x60,
0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x08, 0xff,
0xff, 0x02, 0x20, 0xff, 0xff, 0xff, 0x81, 0xff,
0x00, 0xff, 0xff, 0x82, 0x01, 0xff, 0xff, 0xff,
0xff, 0x24, 0xff, 0xff, 0x88, 0x10, 0xff, 0xff,
0x01, 0xff, 0xff, 0x04, 0x01, 0x01, 0x01, 0x30,
0xff, 0xff, 0x20, 0xff, 0x01, 0xff, 0xff, 0xff,
0xff, 0x41, 0xff, 0xff, 0x12, 0xff, 0x08, 0xff,
0xff, 0x02, 0x80, 0x18, 0xff, 0xff, 0xff, 0xff,
0xa0, 0xff, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff,
0xff, 0xff, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff
}; // end of ucSyndromes[]

//
// синдромный декодер
// возвращаемое значение:
// - 0x8000, если ошибка обнаружена, но не может быть исправлена
// - декодированный байт - во всех остальных случаях (включая
// ложное декодирование)
//
unsigned short FecDecoder (unsigned short arg)
{
int i;
unsigned short res, sft;

res = 0;
sft = arg;
for (i = 0; i < 8; i++)
{
if (sft & 1)
{
res ^= CMatrix[i];
}
sft >>= 1;
} // end of for(i)
res ^= sft;
res = ucSyndromes[res];

if (res == 0xff)
{
arg = 0x8000;
}
else
{
arg = (arg ^ res) & 0x00ff;
}
return arg;
} // end of FecDecoder()
// end of file
Автор: freedom83
Дата сообщения: 27.11.2006 08:46
Здравствуйте
Дано:

Код:
SELECT Opis.fname,da3.date_ AS d3,da3.val AS v3,da2.date_ AS d2,da2.val AS v2,da1.date_ AS d1,da1.val AS v1,da3.name AdoQu.SQL.Text+'FROM ((data AS da3 INNER JOIN data AS da2 ON da3.name=da2.name) INNER JOIN data AS da1 ON da2.name=da1.name) INNER JOIN Opis ON da1.name=Opis.name WHERE (((da3.date_) Like '''+str1+''') and ((da2.date_) Like '''+str2+''') AND ((da1.date_) Like '''+str3+'''))';
Автор: sunduk4
Дата сообщения: 27.11.2006 09:06
freedom83
зачем вопросы то дублируешь в разных ветках? тема по фастрепорту своя есть.


Цитата:
(((da3.date_) Like '''+str1+''') and ((da2.date_) Like '''+str2+''') AND ((da1.date_) Like '''+str3+'''))';


замени and на or и будет тебе счастье.

либо перефразируй условие - (((da3.date_) Like '''+str1+''') or (ds3.date_ is null))
Автор: freedom83
Дата сообщения: 27.11.2006 09:46
sunduk4
за дулирование сорьки
при or (ds3.date_ is null) выводиться только шапка
при замене and на or получается ерунда какая-то
Автор: sunduk4
Дата сообщения: 27.11.2006 10:05
freedom83
все три даты проверяй на like или null и доп. условием в запросе поставь, что хотя бы одна дата не null.
Автор: freedom83
Дата сообщения: 27.11.2006 10:07
sunduk4
непонял
Автор: sunduk4
Дата сообщения: 27.11.2006 10:16

Цитата:
( (((da3.date_) Like '''+str1+''') or (da3.date_ is null)) and (((da2.date_) Like '''+str2+''') or (da2.date_ is null)) AND (((da1.date_) Like '''+str3+''') or (da1.date_ is null)) ) and ((da3.date is not null) or (da2.date is not null) or (da1.date is not null) )'


Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


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