Как определить что страница не загрузилась в TWebBrowser?
» Вопросы по Delphi (все версии) - часть 3
MOO123
1. Смотри функцию SelectDirectory
2. Можно через StringList - загружаешь, меняешь, сохраняешь
1. Смотри функцию SelectDirectory
2. Можно через StringList - загружаешь, меняешь, сохраняешь
GreatOne
Проверяешь, произошло ли событие DocumentComplete спустя заданное время.
Проверяешь, произошло ли событие DocumentComplete спустя заданное время.
afiget
Не, эт не подходит. А спец-событий у браузера разве нет?
Не, эт не подходит. А спец-событий у браузера разве нет?
RomanTim
пасиб конечно за SelectDirectory. А есть типа того, но по красивше?
И второе чтот не подходит, нужно чтоб заменял определенную строчку в файле например 10тую. Если знаешь то поподробней.
и еще создаю
Dir: string;
begin
Dir:= 'C:\'
А как сделать сделать так, чтобы директория была на определенную папку, которая находится в одной папке с программой. Но так что бы не указывать точный путь?
пасиб конечно за SelectDirectory. А есть типа того, но по красивше?
И второе чтот не подходит, нужно чтоб заменял определенную строчку в файле например 10тую. Если знаешь то поподробней.
и еще создаю
Dir: string;
begin
Dir:= 'C:\'
А как сделать сделать так, чтобы директория была на определенную папку, которая находится в одной папке с программой. Но так что бы не указывать точный путь?
GreatOne
Цитата:
Email Sender Express
VKMAPI
ISC
and more...
Цитата:
А каким компонентом кроме idSMTP можно отправлять емайлы?
Email Sender Express
VKMAPI
ISC
and more...
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';
SelectDirectory есть 2 штуки - одна использует системный диалог, вторая делфячий, какая будет вызываться определяется набором параметров, подробнее можно в хелпе почитать.
Чем тебя не устраивает StringList не понимаю:
sl := TStringListList.Create;
sl.LoadFromFile('111.txt');
sl[9] := 'Мой новый текст для 10-й строки';
sl.SaveToFile('111.txt');
sl.Free;
По поводу пути - в общем случае текущая папка может не совпадать с папкой, из которой запускается программа, поэтому относительные пути использовать не совсем правильно, можно сделать так:
Dir := ExtractFilePath(ParamStr(0)) + 'Subdir';
makbeth
Tantos
Vitus_Bering
Спасибо!
Tantos
Vitus_Bering
Спасибо!
RomanTim
Ты знаешь, то что ты сказал, непомогло! Хотя спасибо, на проблему ты указал мне правильно, но сообщение выдается, может делфи гляканутая.(например не могу найти для нее компонент, чтобы прогу в трей свернуть, типа CoolTrei)
Добавлено:
Я написал программу и теперь хочу чтобы она постоянно висела в трее (типа UserGate или антивируса). Вообщем чтобы она постоянно работала.
Какими компонентами можно воспользоваться и где их взять?
У меня Borland Delphi 7.
Спасибо.
Ты знаешь, то что ты сказал, непомогло! Хотя спасибо, на проблему ты указал мне правильно, но сообщение выдается, может делфи гляканутая.(например не могу найти для нее компонент, чтобы прогу в трей свернуть, типа CoolTrei)
Добавлено:
Я написал программу и теперь хочу чтобы она постоянно висела в трее (типа UserGate или антивируса). Вообщем чтобы она постоянно работала.
Какими компонентами можно воспользоваться и где их взять?
У меня Borland Delphi 7.
Спасибо.
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 нету. Как сделать так чтобы записывался только путь, НО не все действо переходило туда.
пасибо за стринг, вышло все таки. Но проблема осталась. Короче что бы вошли в курс дела.
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 нету. Как сделать так чтобы записывался только путь, НО не все действо переходило туда.
MOO123
Цитата:
насколько я понял, так 111.txt лежит рядом с вашим exe-шником?
Тогда проше всего открывать файл '111.txt' по полному пути -
декларируйте
TxtPathName : string;
на FormCreate
TxtPathName := ExtractFilePath(ParamStr(0)) + '111.txt';
на TForm1.Button1Click:
sl.LoadFromFile(TxtPathName);
p.s. кстати, у вас нет проверок вообще (ни что файл 111.txt cуществует, ни то - что он не пустой...)
Цитата:
Но при выборе директории, всё действо переходит в эту папку, а в ней 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уществует, ни то - что он не пустой...)
scharhan
Цитата:
CoolTrayIcon - http://subsimple.com/delphi.asp
Цитата:
Я написал программу и теперь хочу чтобы она постоянно висела в трее (типа UserGate или антивируса). Вообщем чтобы она постоянно работала.
Какими компонентами можно воспользоваться и где их взять?
CoolTrayIcon - http://subsimple.com/delphi.asp
scharhan
А чем не устраивает стандартный TTrayIcon (закладка Samples)?
А чем не устраивает стандартный TTrayIcon (закладка Samples)?
При выполнении команды "IdHTTP1.Get('http://mail.ru/');" появляется ошибка "Socket error #10060 Connection timed out" - раньше ее не было, походу нужно увеличить время соединения, но я не нашел эту команду. Подскажите плиз где ее найти!!!!!
GreatOne
idhttp.ReadTimeout:= 30000;
idhttp.ReadTimeout:= 30000;
2afiget
Спасибо
Добавлено:
Народ!! Подскажите плиз по какому порту работает TWebBrowser?
Спасибо
Добавлено:
Народ!! Подскажите плиз по какому порту работает TWebBrowser?
GreatOne
80
как и интернет эксплорер, оболочкой для которого он и является.
80
как и интернет эксплорер, оболочкой для которого он и является.
Tantos
TTrayIcon - у меня нет. А CoolTrayIcon не пашет!!!
TTrayIcon - у меня нет. А CoolTrayIcon не пашет!!!
scharhan
Какая делфи? в 2006 не в Samples, а в Additional
Какая делфи? в 2006 не в Samples, а в Additional
Подскажите, как програмно открыть/закрыть дисковод (слюбой буквой и не только cd-rom, но cd-rw & dvd)
Цитата:
Код:
uses MMSystem;
mciSendString("Set CDAudio Door Open Wait",nil, 0, nil);// - Открыть
mciSendString("Set CDAudio Door Closed Wait",nil, 0, nil);// - Закрыть
цитата из одной статьи о Delphi 2007
Цитата:
вопрос - если писать программу с DBX4, то на голую систему нужно будет устанавливать какие-нибудь драйвера для работы этой программы, как было с BDE? или всё будет в exe-шнике?
Цитата:
Архитектура DBX4 разработана легендарным Стивом Шоннеси, и призвана положить конец разнообразию методов доступа к базам данным. Теперь все драйверы для СУБД будут основываться на единой архитектуре, как для Delphi Win32, так и для .NET, и, в будущем, C++ Builder. Через концепцию шлюзов или мостов (bridge) они поддерживают ADO .NET 2.0, старые BDP и DBExpress.
вопрос - если писать программу с DBX4, то на голую систему нужно будет устанавливать какие-нибудь драйвера для работы этой программы, как было с BDE? или всё будет в exe-шнике?
Не сталкивался ли кто с задачей установки приложений COM+ программным путем или же может какой из инсталляторов умеет это делать. Здача в том чтобы при установке ПО автоматизировать этот процесс, а не идти в оснастку служб компонентов, может кто подскажет?
Помогите: пришлось столкнуться с типом данных запись(причём вложенным) выдаёт ошибку при компиляции. Раньше с ним сталкивался только на Турбо Паскале. В Делфи, видимо, по такому же принципу не работает:
[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]
Как нужно правильно описать структуру данных? Подскажите, кто сталкивался
[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]
Как нужно правильно описать структуру данных? Подскажите, кто сталкивался
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]
Все прекрасно работает. Типы нужно объявлять в разделе 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]
На сколько мне помнится Record - это тип данных. А типы соответственно нужно описывать не в секции Var
Tantos
спасибо, я понял, я тоже уже так сделал
Добавлено:
А кто-то может подсказать, как сделать чтобы exeшник весил по меньше, а то в проге нет ничё, а она весит 500 КВ!!!!
спасибо, я понял, я тоже уже так сделал
Добавлено:
А кто-то может подсказать, как сделать чтобы exeшник весил по меньше, а то в проге нет ничё, а она весит 500 КВ!!!!
2scharhan
Поробуй на WinApi написать будет 30кб весить
Люди подскажите плиз как сделать так, чтобы оператор CASE мог работать со строками!!
Типа так:
var str: string;
begin
CASE str of
'string1': COMMAND1
'string2': COMMAND2
end;
end;
Поробуй на WinApi написать будет 30кб весить
Люди подскажите плиз как сделать так, чтобы оператор CASE мог работать со строками!!
Типа так:
var str: string;
begin
CASE str of
'string1': COMMAND1
'string2': COMMAND2
end;
end;
GreatOne
Цитата:
Никак - стандарт языка такого не предусматривает
Цитата:
Люди подскажите плиз как сделать так, чтобы оператор CASE мог работать со строками!!
Никак - стандарт языка такого не предусматривает
scharhan
Смотри сюда http://kolmck.net
Хорошая штука, но у меня уже много лет не доходят руки ее плотно покрутить.
Кстати, сейчас и 10 метровые программы считаются нормой - стоит только посмотреть на тот же DevExpress
GreatOne
На самом деле можно - есть обходной вариант. Но производительность при этом пострадает.
Создаем массив строк, находим подходящий элемент массива, а case делаем по его индексу.
RomanTim
Не позволяет... Но иногда очень надо
Смотри сюда http://kolmck.net
Хорошая штука, но у меня уже много лет не доходят руки ее плотно покрутить.
Кстати, сейчас и 10 метровые программы считаются нормой - стоит только посмотреть на тот же DevExpress
GreatOne
На самом деле можно - есть обходной вариант. Но производительность при этом пострадает.
Создаем массив строк, находим подходящий элемент массива, а case делаем по его индексу.
RomanTim
Не позволяет... Но иногда очень надо
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: 1С: Конвертация данных 2.0
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.