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

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

Автор: GreatOne
Дата сообщения: 04.05.2007 11:46
Как определить что страница не загрузилась в TWebBrowser?
Автор: RomanTim
Дата сообщения: 04.05.2007 13:17
MOO123
1. Смотри функцию SelectDirectory
2. Можно через StringList - загружаешь, меняешь, сохраняешь
Автор: afiget
Дата сообщения: 04.05.2007 13:22
GreatOne
Проверяешь, произошло ли событие DocumentComplete спустя заданное время.
Автор: GreatOne
Дата сообщения: 04.05.2007 14:02
afiget

Не, эт не подходит. А спец-событий у браузера разве нет?
Автор: MOO123
Дата сообщения: 04.05.2007 15:10
RomanTim
пасиб конечно за SelectDirectory. А есть типа того, но по красивше?
И второе чтот не подходит, нужно чтоб заменял определенную строчку в файле например 10тую. Если знаешь то поподробней.

и еще создаю

Dir: string;
begin
Dir:= 'C:\'
А как сделать сделать так, чтобы директория была на определенную папку, которая находится в одной папке с программой. Но так что бы не указывать точный путь?
Автор: Grande
Дата сообщения: 04.05.2007 17:44
GreatOne

Цитата:
А каким компонентом кроме idSMTP можно отправлять емайлы?


Email Sender Express
VKMAPI
ISC
and more...
Автор: RomanTim
Дата сообщения: 04.05.2007 21:50
MOO123
SelectDirectory есть 2 штуки - одна использует системный диалог, вторая делфячий, какая будет вызываться определяется набором параметров, подробнее можно в хелпе почитать.

Чем тебя не устраивает StringList не понимаю:
sl := TStringListList.Create;
sl.LoadFromFile('111.txt');
sl[9] := 'Мой новый текст для 10-й строки';
sl.SaveToFile('111.txt');
sl.Free;

По поводу пути - в общем случае текущая папка может не совпадать с папкой, из которой запускается программа, поэтому относительные пути использовать не совсем правильно, можно сделать так:
Dir := ExtractFilePath(ParamStr(0)) + 'Subdir';
Автор: onyxhall
Дата сообщения: 05.05.2007 03:35
makbeth
Tantos
Vitus_Bering

Спасибо!
Автор: scharhan
Дата сообщения: 05.05.2007 11:46
RomanTim
Ты знаешь, то что ты сказал, непомогло! Хотя спасибо, на проблему ты указал мне правильно, но сообщение выдается, может делфи гляканутая.(например не могу найти для нее компонент, чтобы прогу в трей свернуть, типа CoolTrei)

Добавлено:
Я написал программу и теперь хочу чтобы она постоянно висела в трее (типа UserGate или антивируса). Вообщем чтобы она постоянно работала.
Какими компонентами можно воспользоваться и где их взять?

У меня Borland Delphi 7.

Спасибо.
Автор: MOO123
Дата сообщения: 05.05.2007 20:00
RomanTim
пасибо за стринг, вышло все таки. Но проблема осталась. Короче что бы вошли в курс дела.


procedure TForm1.Button1Click(Sender: TObject);

begin

sl := TStringList.Create;
sl.LoadFromFile('111.txt');
sl[1] := ''+Edit2.Text+'\'+Edit1.Text+'';
sl.SaveToFile('111.txt');
sl.Free;
end;

const
SELDIRHELP = 1000;
procedure TForm1.Button2Click(Sender: TObject);
var
Dir: string;
begin
Dir := ExtractFilePath(ParamStr(0)) + '1';
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
Edit2.Text := Dir;
end;

Где edit2 это выбор директории. Но при выборе директории, всё действо переходит в эту папку, а в ней 111.txt нету. Как сделать так чтобы записывался только путь, НО не все действо переходило туда.
Автор: SERGE_BLIZNUK
Дата сообщения: 05.05.2007 20:44
MOO123

Цитата:
Но при выборе директории, всё действо переходит в эту папку, а в ней 111.txt нету

насколько я понял, так 111.txt лежит рядом с вашим exe-шником?
Тогда проше всего открывать файл '111.txt' по полному пути -
декларируйте
TxtPathName : string;
на FormCreate
TxtPathName := ExtractFilePath(ParamStr(0)) + '111.txt';
на TForm1.Button1Click:
sl.LoadFromFile(TxtPathName);

p.s. кстати, у вас нет проверок вообще (ни что файл 111.txt cуществует, ни то - что он не пустой...)
Автор: RomanTim
Дата сообщения: 05.05.2007 22:50
scharhan

Цитата:
Я написал программу и теперь хочу чтобы она постоянно висела в трее (типа UserGate или антивируса). Вообщем чтобы она постоянно работала.
Какими компонентами можно воспользоваться и где их взять?

CoolTrayIcon - http://subsimple.com/delphi.asp
Автор: Tantos
Дата сообщения: 07.05.2007 04:58
scharhan
А чем не устраивает стандартный TTrayIcon (закладка Samples)?
Автор: GreatOne
Дата сообщения: 07.05.2007 09:56
При выполнении команды "IdHTTP1.Get('http://mail.ru/');" появляется ошибка "Socket error #10060 Connection timed out" - раньше ее не было, походу нужно увеличить время соединения, но я не нашел эту команду. Подскажите плиз где ее найти!!!!!
Автор: afiget
Дата сообщения: 07.05.2007 11:55
GreatOne
idhttp.ReadTimeout:= 30000;
Автор: GreatOne
Дата сообщения: 07.05.2007 12:04
2afiget

Спасибо

Добавлено:
Народ!! Подскажите плиз по какому порту работает TWebBrowser?
Автор: ArtemiyUO
Дата сообщения: 07.05.2007 14:31
GreatOne
80
как и интернет эксплорер, оболочкой для которого он и является.
Автор: scharhan
Дата сообщения: 07.05.2007 14:54
Tantos
TTrayIcon - у меня нет. А CoolTrayIcon не пашет!!!
Автор: RomanTim
Дата сообщения: 07.05.2007 16:43
scharhan
Какая делфи? в 2006 не в Samples, а в Additional
Автор: scharhan
Дата сообщения: 07.05.2007 22:32
Подскажите, как програмно открыть/закрыть дисковод (слюбой буквой и не только cd-rom, но cd-rw & dvd)
Автор: Tantos
Дата сообщения: 08.05.2007 02:51

Цитата:


Код:
uses MMSystem;

mciSendString("Set CDAudio Door Open Wait",nil, 0, nil);// - Открыть
mciSendString("Set CDAudio Door Closed Wait",nil, 0, nil);// - Закрыть

Автор: andead
Дата сообщения: 08.05.2007 03:00
цитата из одной статьи о Delphi 2007

Цитата:
Архитектура DBX4 разработана легендарным Стивом Шоннеси, и призвана положить конец разнообразию методов доступа к базам данным. Теперь все драйверы для СУБД будут основываться на единой архитектуре, как для Delphi Win32, так и для .NET, и, в будущем, C++ Builder. Через концепцию шлюзов или мостов (bridge) они поддерживают ADO .NET 2.0, старые BDP и DBExpress.

вопрос - если писать программу с DBX4, то на голую систему нужно будет устанавливать какие-нибудь драйвера для работы этой программы, как было с BDE? или всё будет в exe-шнике?
Автор: SNike111
Дата сообщения: 08.05.2007 10:35
Не сталкивался ли кто с задачей установки приложений COM+ программным путем или же может какой из инсталляторов умеет это делать. Здача в том чтобы при установке ПО автоматизировать этот процесс, а не идти в оснастку служб компонентов, может кто подскажет?
Автор: Aleks007
Дата сообщения: 08.05.2007 12:23
Помогите: пришлось столкнуться с типом данных запись(причём вложенным) выдаёт ошибку при компиляции. Раньше с ним сталкивался только на Турбо Паскале. В Делфи, видимо, по такому же принципу не работает:

[more]
var
TClientRequestHandle :record
Sign: Integer;
Len: Integer;
ClientID: Integer;
RequestNum: Integer;
DT: TDateTime;
end;

TReqCommand: record
RequestID: Integer;
RequestCode: Integer;
CurRep: Cardinal;
TimeInt: LongInt;
IDObj: Integer;
end;

TClientRequest: record
CRH: TClientRequestHandle; //в этом месте выдаёт ошибку "[Error] Client1Form.pas(51): Constant or type identifier expected"
ReqID: array[0..10] of TReqCommand; // здесь такая же батва(ошибка), что и строчкой выше
CRC: Integer;
end;
[/more]

Как нужно правильно описать структуру данных? Подскажите, кто сталкивался
Автор: abv
Дата сообщения: 08.05.2007 12:37
Aleks007
Все прекрасно работает. Типы нужно объявлять в разделе types а не var
[more]
type
TClientRequestHandle=record
Sign: Integer;
Len: Integer;
ClientID: Integer;
RequestNum: Integer;
DT: TDateTime;
end;

TReqCommand=record
RequestID: Integer;
RequestCode: Integer;
CurRep: Cardinal;
TimeInt: LongInt;
IDObj: Integer;
end;

var
TClientRequest: record
CRH: TClientRequestHandle;
ReqID: array[0..10] of TReqCommand;
CRC: Integer;
end;
[/more]
Автор: SNike111
Дата сообщения: 08.05.2007 12:38
На сколько мне помнится Record - это тип данных. А типы соответственно нужно описывать не в секции Var
Автор: scharhan
Дата сообщения: 08.05.2007 13:43
Tantos
спасибо, я понял, я тоже уже так сделал

Добавлено:
А кто-то может подсказать, как сделать чтобы exeшник весил по меньше, а то в проге нет ничё, а она весит 500 КВ!!!!
Автор: GreatOne
Дата сообщения: 08.05.2007 15:21
2scharhan
Поробуй на WinApi написать будет 30кб весить

Люди подскажите плиз как сделать так, чтобы оператор CASE мог работать со строками!!
Типа так:
var str: string;
begin
CASE str of
'string1': COMMAND1
'string2': COMMAND2
end;
end;
Автор: RomanTim
Дата сообщения: 08.05.2007 16:12
GreatOne

Цитата:
Люди подскажите плиз как сделать так, чтобы оператор CASE мог работать со строками!!

Никак - стандарт языка такого не предусматривает
Автор: Arvur
Дата сообщения: 08.05.2007 16:45
scharhan
Смотри сюда http://kolmck.net
Хорошая штука, но у меня уже много лет не доходят руки ее плотно покрутить.
Кстати, сейчас и 10 метровые программы считаются нормой - стоит только посмотреть на тот же DevExpress

GreatOne
На самом деле можно - есть обходной вариант. Но производительность при этом пострадает.
Создаем массив строк, находим подходящий элемент массива, а case делаем по его индексу.

RomanTim
Не позволяет... Но иногда очень надо

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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