Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Delphi phpmyadmin

здравствуйте у меня такая проблема из delphi подключаюсь к серверу phpmyadmin всё нормально работает.
но если больше минуты бездействия нажимаю обновить или добавить что то сразу пишет:

[MYSQLI][ODBC 5,3(w) Driver][mysqld-5.7.16-log]lost connection to MYSQL server during query.

Через минуту Бездействие.
Ответ: YuryK,
Сообщение от YuryK
Так с серверу или phpmyadmin? веб-браузера нет никакого?
ну имею ввиду на сервере к phpmyadminu,
браузер есть конечно но я хочу подключиться из delphi.
когда с браузера подключаюсь всё нормально.

Grossmeister,
Сообщение от Grossmeister
my.ini
где найти ?

Добавлено через 23 часа 10 минут
здесь проблема по моему delphi или в самом driver OBDC , потому что из браузера нормально работает
heeellppppp
помогите очень нужна
Вопрос: Браузер на Delphi 7, добавление сайта в закладки

Дорогие друзья прошу помочь глупому! Как в моем браузере Delphi реализовать добавление сайта в закладки! Прошу помочь, очень нужно ! Надеюсь на вас!
Ответ: Делаешь кнопочку "добавить в закладки". В обработчик пишешь код сохранения.

Пример,

Код Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses
   IniFiles; // Подключаем модуль с описанием ini
 
procedure TForm1.Button1Click(Sender: TObject);
 var
   ini: TIniFile;
 begin
   // Создаем INI - объект и открываем/создаем файл  
  ini := TIniFile.Create('c:\bookmarks.ini');
   try
     // Записываем строки в файл
    ini.WriteString('Закладки', 'URL', 'http://www.cyberforum.ru/');
    ini.WriteString('Закладки', 'Название', 'Киберфорум'); 
   finally
     ini.Free; // Уничтожаем объект ini
   end;
 end;
Вопрос: Создание веб-браузера - Delphi

Здравствуйте, помогите пожалуйста. Мне нужно создать веб-браузер который имеет кнопки вперед, назад, сохранить, открыть ну и так далее... это я сделала. Проблема в том, что мне нужно сделать так, что бы кнопки "вперед", "назад" были круглыми, недоступными если список URL-адрес исчерпан.
Ответ:
Сообщение от oLYA1991
Мне нужно создать веб-браузер который имеет кнопки вперед, назад, сохранить, открыть ну и так далее... это я сделала.
Хм. Покажи что сделала, если не боишься что мы своруем твоё НоуХау.
Вопрос: Как в Delphi 7 tchromium открывать все blank ссылки в основном браузере?

Люди добрые, спасите, помогите

Перелопатил весь интернет, ничего толком не нашел... я совсем начинающий, прошу простить, если мой вопрос Вам покажется глупым.

Общая картина: есть приложение которое грузит html страницы с сервера, нужно чтобы при нажатии на ссылки с target="blank" в этих страницах, открывалось не в новом окне, а в основном браузере.. что-то типа: ShellExecute( Handle, 'open', 'сюда получать данные с blank ссылки', nil, nil, SW_NORMAL );

Добавлено через 2 часа 14 минут
Неужели и тут никто не поможет?
Ответ:
Delphi
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
26
27
28
29
30
31
32
33
34
35
...
 
{$R *.dfm}
 
Uses
      ActiveX, ShellApi;
 
Procedure TForm1.Chromium1BeforePopup(Sender: TObject; Const browser: ICefBrowser; Const frame: ICefFrame; Const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; Var popupFeatures: TCefPopupFeatures; Var windowInfo: TCefWindowInfo; Var client: ICefClient; Var settings: TCefBrowserSettings; Var noJavascriptAccess: Boolean; Out Result: Boolean);
Var ExecInfo: TShellExecuteInfo; URLString: String;
Begin
Result:=True;
CoInitializeEx(Nil, COINIT_APARTMENTTHREADED Or COINIT_DISABLE_OLE1DDE);
Try
      FillChar(ExecInfo, SizeOf(ExecInfo), 0);
      ExecInfo.cbSize:=SizeOf(ExecInfo);
      ExecInfo.Wnd:=Handle;
      ExecInfo.lpVerb:=PChar('');
      URLString:=targetUrl;
      ExecInfo.lpFile:=PChar(URLString);
      ExecInfo.lpParameters:=PChar('');
      ExecInfo.lpDirectory:=PChar('');
      ExecInfo.nShow:=SW_SHOW;
      ExecInfo.fMask:=SEE_MASK_FLAG_DDEWAIT Or SEE_MASK_FLAG_NO_UI;
      {$IFDEF UNICODE}
      ExecInfo.fMask:=ExecInfo.fMask Or SEE_MASK_UNICODE;
      {$ENDIF}
      {$WARN SYMBOL_PLATFORM OFF}
      Win32Check(ShellExecuteEx(@ExecInfo));
      {$WARN SYMBOL_PLATFORM ON}
Finally
      CoUninitialize();
      End;
End;
 
...
Если у вас не слишком старая версия Делфи: заменить "SEE_MASK_FLAG_DDEWAIT" на "SEE_MASK_NOASYNC".
Если у вас версия TChromium не такая (скорее всего старее чем) у меня: заменить "targetUrl" на "url".
Вопрос: Delphi удаляет символы amp; в post запросе

Вот что посылаю:
authp=nonce.tt.time.new_audio_default&psig=dh0veIh-em6lba1FEhb74ejBGxs&
Вот что посылается:
authp=nonce.tt.time.new_audio_default&psig=dh0veIh-em6lba1FEhb74ejBGxs&

Куда пропадают символы amp; че за дела такие?
Как отправить запрос в нужном мне виде?

Добавлено через 1 час 19 минут
Я перепутал, все наоборот, это браузер удаляет эти символы, так что никаких проблем
Ответ: & - такое называется "HTML-код". Браузер его преобразует в один символ.
& - это "Амперсанд", то есть "&".
Вопрос: Delphi Chromium получить текст страницы

Как получить внутренний текст страницы?

В браузере это вот так
Delphi
1
Memo1.Lines.Text := WebBrowser1.OleObject.document.body.innerText;
А как в хромиуме?

Добавлено через 12 часов 23 минуты
Никто не знает?
Ответ: grigandal1580, текст со страницы можно получить почти также:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure StringVisitor(const str: ustring);
begin // получаем текст
 Form1.m1.Text := str;
end;
 
procedure TForm1.c1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer);
var CefStringVisitor:ICefStringVisitor;
begin
 // -------- СОЗДАЕМ ОБЪЕКТ ДЛЯ ПОЛУЧЕНИЯ ТЕКСТА ---------
 CefStringVisitor := TCefFastStringVisitor.Create(StringVisitor);
 if frame.IsMain then
 frame.GetText(CefStringVisitor);
end;
Вопрос: Http сервер Delphi

Короче дамы и господа, проблема такого характера: Я сгенирировал html код через Delphi, подключил базу данных. Мне нужно сделать так что бы, при нажатии на ссылку "Студенты", открывалась таблица студенты с базы данных. и при нажатии на ссылку "Оценки", открывалась таблица Оценки. А я это реализовал через форму. помоги пожалуйста! мне это уже завтра нужно сдать! вот код:
Код Delphi
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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer,
  IdCustomHTTPServer, IdHTTPServer;
 
type
  TForm1 = class(TForm)
    HTTPServer: TIdHTTPServer;
    Memo1: TMemo;
    Edit1: TEdit;
    ADOConnection1: TADOConnection;
    ATStudents: TADOTable;
    ATSession: TADOTable;
    ATSessionid: TAutoIncField;
    ATSessionkod_studenta: TIntegerField;
    ATSessionkod_predmeta: TIntegerField;
    ATSessionocenka: TWideStringField;
    ATSessionsemestr: TWideStringField;
    ATStudentskod_studenta: TAutoIncField;
    ATStudentsfamiliya: TWideStringField;
    ATStudentsimea: TWideStringField;
    ATStudentsotcestvo: TWideStringField;
    ATStudentsgruppa: TWideStringField;
    ATStudentsdata_rojdeniya: TDateTimeField;
    ATStudentsstipendiya: TBooleanField;
    procedure HTTPServerCommandGet(AThread: TIdPeerThread;
      ARequestInfo: TIdHTTPRequestInfo;
      AResponseInfo: TIdHTTPResponseInfo);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  a:string;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.HTTPServerCommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  // a:=a+('Метод ' + ARequestInfo.Command);
//a:=a+('Имя запрашиваемого документа: ' + ARequestInfo.Document);
a:='<Html>';
a:=a+('<head>');
a:=a+('<title> Успеваемость студентов </Title>');
a:=a+('</Head>');
a:=a+('<Body>');
a:=a+('<form action = "" method = "GET">');
 a:=a+('</Body>');
 
a:=a+('<P>  Успеваемость студентов</P> ');
a:=a+('<select name="uspevaemosti" </select>');
a:=a+('<option value="ocenki"> Оценки  </option>');
a:=a+('<option value="students"> Студенты </option>');
a:=a+('<table border=2>');
a:=a+(' </select>');
 
a:=a+('<input type ="submit" value="Отправить" ');
a:=a+('</Form>');
 If ARequestInfo.UnparsedParams ='uspevaemosti=students'then
 begin
  a:=a+('<table border=2>');
AtStudents.First;
While not ATStudents.Eof do
begin
a:=a+('<tr>');
a:=a+('<td>'+AtStudents.FieldByName('familiya').AsString
+'</td><td>'+AtStudents.FieldByName('imea').ASString
+'</td><td>'+AtStudents.FieldByName('data_rojdeniya').AsString
+'</td><td>'+AtStudents.fieldByName('stipendiya').AsString+'</td>');
a:=a+('</tr>');
ATStudents.Next;
end;
a:=a+('</table>');
end;
If ARequestInfo.UnparsedParams ='uspevaemosti=ocenki'then
begin
a:=a+('<table border=2>');
end;
AtSession.First;
While not ATSession.Eof do
begin
a:=a+('<tr>');
a:=a+('<td>'+AtSession.FieldByName('kod_studenta').AsString
+'</td><td>'+AtSession.FieldByName('kod_predmeta').ASString
+'</td><td>'+AtSession.FieldByName('ocenka').AsString
+'</td><td>'+AtSession.fieldByName('semestr').AsString+'</td>');
a:=a+('</tr>');
AtSession.Next;
end;
a:=a+('</table>');
 AResponseInfo.ContentText:=a;
  Memo1.Lines.Add(ARequestInfo.UnparsedParams);
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
AtStudents.Open;
AtSession.Open;
end;
 
end.
А вот еще форма:
Ответ: что за ссылка, кто и куда ее вводит?
сервер - он только отвечать на HTTP-запросы умеет
ссылки он не открывает

вот, например, в браузере набрать http://localhost:80
сервер и ответит
при условии что он на порт 80 посажен
Вопрос: Создание в Delphi 2010 xml файла нужного формата

Ребят, столкнулся с такой проблемой - как создать в Delphi 2010 xml файл, чтобы был один корневой тег, в котором есть несколько переменных? Значения переменных будут браться из БД на SQL.

Нужно, чтобы xml файл выглядел таким образом:

<?xml version="1.0" encoding="utf-16"?>
<AssignmentQR text00_Вид="Документ" text01_Начальник="Начальник отдела ИТ" text02_фио="Иванов А.В." />

Именно такой формат нужен, чтобы созданные xml файлы открывались через другую программу и обрабатывались там.

Пробую сделать через AddChild, но оно создает много тегов, а нужно, чтобы все было в одном.

procedure TForm1.Button1Click(Sender: TObject);
var
Xml: IXMLDocument;
begin
// создаем
Xml := TXMLDocument.Create (nil);
Xml.Active := true;
// создаем
with Xml do
begin
// создаем корневой узел
with AddChild ('AssignmentQR') do
begin
// дочерние элементы
ChildValues ['text02_фио'] := '=" Иванов А.В."';
ChildValues ['text01_Начальник'] := '="Начальник отдела ИТ"';
ChildValues ['text00_Вид'] := '="Документ"';
end; // with
end; // with: создаем
Xml.SaveToFile ('D:\44.xml');
end;

Пробую сделать через Add, возникает проблема длины строки, нужная строка больше 255 символов (textN много). Файл получается, но через браузер не отрывается.

procedure TForm1.Button1Click(Sender: TObject);
var
Xml: TStringList;
begin
// создаем объект
Xml := TStringList. Create;
// формируем документ
Xml. Add ('<?xml version="1.0" encoding="UTF-16"?>');
Xml. Add ('< AssignmentQR text00_Вид="Документ" text01_Начальник="Начальник отдела ИТ" text02_фио="Иванов А.В."/>');
// записываем
Xml. SaveToFile ('D:\333333.xml');
// освобождаем память
FreeAndNil (Xml);
end;

Помогите, кто чем может.
Ответ: добавляешь дочерний, и к нему дописываешь АТРИБУТЫ
Delphi
1
2
3
4
5
6
7
8
9
var a,b,c : IXMLNode;
...
 
  a:=Form1.XMLDocument1.AddChild('root');
  b:=a.AddChild('CU');
  b.SetAttributeNS('date','',dd);
  c:=b.AddChild('CU'+IntToStr(j));
  c.SetAttributeNS('shop','',c1mag(v.Магазин.Наименование));
  c.SetAttributeNS('CU','',v.СервисныйИнженер.Наименование);
Вопрос: HTML форма и таблица Delphi

Доброго времени суток!
Скажите пожалуйста можно ли html-форму связать с таблицей delphi, чтобы данные с формы шли в эту самую таблицу.
Вот что на данный момент имеется:
Форма html:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
div class="cover">
    <h1 class="contact">Введите данные для записи на прием</h1>
        <input type="text" name="name" required placeholder="Ваше имя">
        <br>
        <input type="text" name="surname" required placeholder="Ваша фамилия">
        <br>
        <input type="text" name="middlename" required placeholder="Ваше отчество">
        <br>
        <input type="text" name="policynumber" required placeholder="Ваш номер полиса">
        <br>
        <input type="text" name="snils" required placeholder="Ваш снилс">
        <br>
<select name="doc">
    <option value="0">Выберите врача</option>
        </select>
        <br>
        <br>
        <input type="date" name="dateofbirth" required placeholder="Дата рождения">
        <br><br>
    <input id="submit" type="submit" value="Отправить данные"><br/>
    </form>
</div>
Delphi
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
26
27
28
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, DBTables, ExtCtrls, DBCtrls;
 
type
  TForm1 = class(TForm)
    TablePatients: TTable;
    DataSourcePatient: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
end.
Ответ: все равно делфи никакого отношения к вашему html не будет иметь
на делфи можно написать программу, которая может работать с БД,
и с ней же (БД) можно работать через браузер. но для этого нужно писать программу для веб-сервера например на PHP.
Можно написать веб-сервер и на делфи, но судя по всему, ваших текущих знаний для этого будет сильно недостаточно
Вопрос: WebBrowser Delphi

Захожу на сайт, используя TWebbrowser. Авторизацию прохожу используя
Код Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i:integer;  html_tag: Variant;
begin
  html_tag:= WB.OleObject.Document.forms.item(0).elements;
  for i:=0 to (html_tag.Length-1) do
  begin
    if html_tag.item(i).name = 'user_id' then html_tag.item(i).value:= L_val.Caption;
    if html_tag.item(i).name = 'password' then html_tag.item(i).value:= L_pass.Caption;
    if html_tag.item(i).value = 'Вход' then  html_tag.item(i).click;
  end;
end;
С этим все хорошо, но когда нажимаю на ссылку, которая раскрывает список каталогов, открывается окно эксплорера и опять просят пройти авторизацию. Как с этим бороться?
Ответ: Получилось, эксплорер не открывается...но после открытия ссылки, открывается новая форма...на ней 2 кнопки Сохранить и Закрыть...когда нажимаю Закрыть, окно браузера закрывается, а созданная программой форма остается висеть...как быть? могу приложить скрин

Добавлено через 54 минуты
Все еще актуально...у webbrowser есть события OnQuit, OnExit...но они почему то не отрабатываются...или это не то...как мне закрыть форму, после закрытия броузера?(