51

(32 replies, posted in Russian)

Дмитрий такая ситуация...есть скрипт для перехвата системной ошибки:

procedure Form5_Button4_OnClick (Sender: string; var Cancel: boolean);
var
   LIST : TStringList;
    URL : String;
begin
    try
      URL:='https://www.avito.ru/rossiya/sobaki/rotveyler?p=1';
      LIST := TStringList.Create;
      LIST.Add(HTTPGet(URL,True)); 
    except
    // проверка при подключении...
        if ExceptionMessage <> 'HTTP/1.1 404 Not Found' then  ShowMessage(' НЕТ ИНТЕРНЕТА!!!');
    end;
    Form1.Memo1.Text:= (LIST.Text); 
    LIST.Free;
    Form5.Button3.Click;  //продолжаем действие
end;

И это РАБОТАЕТ НА УРА!!!
ВОПРОС:   ПОМОГИТЕ ВСТАВИТЬ ДЛЯ ПЕРЕХВАТА СИСТЕМНОЙ ОШИБКИ СЮДА:

 procedure Form1_Button30_OnClick (Sender: string; var Cancel: boolean);
var
    URL: string;
  sHTML: string;
begin
           Form1.Edit11.Text:= Form1.Memo2.Lines[0];

           Web.Navigate(Form1.Edit11.Text);

         while Web.ReadyState <> 4 do Application.ProcessMessages;
   if    Web.ClickElement('span', 'Показать номер')  then //ShowMessage('нашли номер телефона');

          Sleep(3000);
          Application.ProcessMessages;
begin
          while Web.ReadyState <> 4 do Application.ProcessMessages;

          Sleep(4000);
          Application.ProcessMessages;

          sHTML := Web.GetHTMLBody;
          sHTML:=Trim(sHTML);
 
            Form1.Memo1.Lines.Add (sHTML);
          Form1.Button31.Click ;   //продолжаем действие
end; end;

Зарание БЛАГОДАРЕН ВАМ!!!

52

(12 replies, posted in Russian)

ВАУ...."много ли человеку надо для полного счастья"...
Дмитрий СПАСИБО...СПАСИБО...СПАСИБО...!!!!!!!!!!!!!

53

(12 replies, posted in Russian)

Дмитрий БОЛЬШУЩЕЕ ВАМ СПАСИБОЧКИ!!!
Это уже выход из моего тупика!!!
И всё таки возможно сделать...было так:

привет
всем
привет

клик куда нибудь...итог:

привет
привет

Заранее извеняюсь за назойливость!!!

54

(12 replies, posted in Russian)

DriveSoft wrote:

Т.е. еще нужно искать дубликаты по двум столбцам? Тогда к сожалению задача не очень простая, не смогу помочь в этом.
Просто что то вставить в фильтр грида и решить задачу не получиться, нужен какой то сложный SQL запрос.

ОК!!!
тогда попробуем совсем просто...без всяких SQL-запросов:
Вопрос:
что надо вставить в фильтр TableGrid1, что бы увидеть ДУБЛИКАТЫ первой колонки???

55

(12 replies, posted in Russian)

DriveSoft wrote:

К сожалению для такой задачи всплывают ньюансы, поэтому опишите подробней с примерами.
Как именно их показать? По одному? Тогда что должно быть в соседних колонках?
Если не по одному, тогда достаточно просто сортировки, чтобы увидеть дубликаты.

Дмитрий...ессли я Вас правильно понял

Если не по одному, тогда достаточно просто сортировки, чтобы увидеть дубликаты

т.е. в фильтр грида надо, что то вставить???
тогда ВОПРОС:
что надо вставить в  фильтр грида, что бы увидеть:
В первой,во второй и третьей колонки ДУБЛИКАТЫ???

56

(12 replies, posted in Russian)

DriveSoft wrote:

К сожалению для такой задачи всплывают ньюансы, поэтому опишите подробней с примерами.
Как именно их показать? По одному? Тогда что должно быть в соседних колонках?
Если не по одному, тогда достаточно просто сортировки, чтобы увидеть дубликаты.

ОК!!! интерес такой...
имеим запись в гриде например:
-------------------------------------
всем               |  сок          |   1                                                       
хорошего      |  лимон    |   2                                                                                                                                 
настроения   |  персик   |   3                                                     
именно           |  лимон    |   4                                                                             
всем                 |  груша    |   5 
----------------------------------------
Клик CheckBox1-показать дубликаты в первой колонке...
CheckBox2:=False
CheckBox3:=False    результат:
-------------------------------------
всем          |  сок            |   1                                                                                                                                   
всем          |  груша       |   5 
----------------------------------------
CheckBox1:=True  (дуболь в первой остались)
Клик CheckBox2:=True -показать дубликаты во второй колонке...
CheckBox3:=False  (да же еслибы было True, на результат бы НЕ повлиял
т.к. в третьей нет дубликата) результат:
-------------------------------------
всем                |  сок         |   1
всем               |  груша    |   5                                                     
хорошего      |  лимон    |   2                                                                                                                                                                                     
именно          |  лимон    |   4                                                                             
  ----------------------------------------
CheckBox1:=False (//не участвует в поиске дублика)
Клик CheckBox2:=True
CheckBox3:=False         результат:
-------------------------------------                                                       
хорошего      |  лимон    |   2                                                                                                                                                                                     
именно          |  лимон    |   4                                                                             
----------------------------------------
CheckBox1:=False...
CheckBox2:=False
Клик CheckBox3:=True  результат:
-------------------------------------
ВСЕ ПОЛЯ ПУСТЫЕ

57

(12 replies, posted in Russian)

DriveSoft wrote:

Приветствую.
Что вы подразумеваете под дубликатом относительно колонки? Обычно когда говорят о дубликатах, подразумевают записи, а не колонки. И в каком виде нужно показать дубликат?

Я подразумевал к примеру дубликаты в первой колнки показать используя  CheckBox...
и так по всем к примеру трёх колонках...

И в каком виде нужно показать дубликат?

Результат дубликаты в первой колонки и плюс то, что относится к ней во второй и третьей колонки...
чек для второй колонки все дубликаты, что есть во второй колонки, а так же то, что принадлежит этой
строчки в первой и третьей колонки...

58

(12 replies, posted in Russian)

Здравствуйте Дмитрий!!!
У Вас нету проект-примера или SQL-запроса аль скриптика на выше стояший постик???

59

(10 replies, posted in Russian)

Здорого работает на УРА...СПИСИБО!!!

60

(12 replies, posted in Russian)

Здравствуйте Дмитрий!!!
На форуме много примеров, для избежания попадания их перед  <<сохранить>>!!!
И всё же... У Вас хороший пример для ПОИСКА <<SQL запрос по всем полям используя CheckBox>>

SELECT
lastname
,firstname
,strftime('%d.%m.%Y', dateofbirth)
,phone
,id

FROM
employees

WHERE

(CASE WHEN {chbLastName}=1 THEN lastname LIKE '%{edSearch}%' ELSE 1=0 END) OR
(CASE WHEN {chbFirstName}=1 THEN firstname LIKE '%{edSearch}%' ELSE 1=0 END) OR
(CASE WHEN {chbPhone}=1 THEN phone LIKE '%{edSearch}%' ELSE 1=0 END)

Вы можете показать  скрипт или SQL запрос для просмотра в  TableGrid
дубликатов по полям используя CheckBox-ы...???
т.е. клик по CheckBox1 показывает дубликаты в первой колонки TableGrid
клик по CheckBox2 показывает дубликаты во второй колонки TableGrid
клик по CheckBox3 показывает дубликаты в третьей колонки TableGrid

61

(10 replies, posted in Russian)

Дмитрий....... ЭТО РАБОТАЕТ...УРА!!!...СПАСИБО!!!
В процессе решил попробовать сделать тоже самое, только запись сделать в "ТАБЛИЦУ"...

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
 S : String;
begin
    for i := trunc(Form1.Edit2.Value) to trunc(Form1.Edit3.Value) do
         Form1.Memo1.Lines.Add(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);

         S:=(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);

         SQLExecute ('INSERT INTO AAA (aaa) VALUES ("'+ S +'");');
         Form1.TableGrid1.dbUpdate;
end;

Проблема в том, что вся запись попадает в одно поле.............
Помогите подкорректировать скрипт, чтоб как в  Form1.Memo1
новая строчка в переменой = новая строчка в таблице????

62

(10 replies, posted in Russian)

Друзья не кому не попадался пример постом выше???

63

(10 replies, posted in Russian)

Доброго времени суток Дмитрий и Форумчане!!!
Столкнулся с такой проблем-кой:
Есть HTML код...это для меня странички для дальнейшего GET-запроса например:
2gis.ru/krasnodar/page/2/tab/firms?queryState=F10
Скромное желание я вношу в Edit1 первую часть:

2gis.ru/krasnodar/page/


в Edit2 указываю с какой страницы: к примеру Form1.Edit2.Text:=' 2';
в Edit3 указываю до какой страницы мне надо спарсить:  к примеру Form1.Edit3.Text:=' 216';
в Edit4 вставляю вторую часть:

/tab/firms?queryState=F10

Клик по Button1.....получаю в MEMO1 результат 215 сылок для GET-запроса :
2gis.ru/krasnodar/page/2/tab/firms?queryState=F10
2gis.ru/krasnodar/page/3/tab/firms?queryState=F10
2gis.ru/krasnodar/page/4/tab/firms?queryState=F10
2gis.ru/krasnodar/page/5/tab/firms?queryState=F10
-----------------------------------------------------------------------------
2gis.ru/krasnodar/page/216/tab/firms?queryState=F10
Помогите пожалуйста с реализацией скрипта????

Ок!!! Все равно от души ОГРОМНОЕ СПАСИБО!!!

Здорово, а как прихватить с собой ещё и "$autoinc".... прихватить???
Чтоб тоже переворачивался...это возможно???

DriveSoft wrote:

Приветствую.
Вы можете сортировать записи в гриде просто кликнув по названию столбца, повторное нажатие столбца вызовет обратную сортировку.

Здравствуйте Дмитрий!!!
Дело в том, что у меня при парсинге идёт автоматическая запись  в таблицу...
Исходя из этого мне надо зафиксировать  записи в гриде при их добавлннии в таблицу в вверхней
части грида для лучшего их видения, а после парсинга вернуть всё обратно???
P./S. Вот и хотелось иметь два битона для фиксации...., а если ещё и "$autoinc"....

1   привет 1
2   привет 2
3   привет 3
4   привет 4
5   привет 5
6   привет 6

клик на битон

6   привет 6
5   привет 5
4   привет 4
3   привет 3
2   привет 2
1   привет 1

Вот было бы здорово!!!....?????

Всем доброго времени суток!!!
Обычно все проект-примеры от Дмитрия и Форумчан складываю в сундук...а ту-точки засада!!!
-------------------------------------------------------------------------------------------------------------------------------------
Есть Форма,Грид и два Бетона!!!
В гриде очень-при-очень много записей!!!

привет 1
привет 2
привет 3
привет 4
привет 5
привет 6

что бы не таскать "ScrolBars"  жмём на битон1...получаем нижнее записи на вверх:

привет 6
привет 5
привет 4
привет 3
привет 2
привет 1


жмём на битон2... возращаем записи на прежнее место!!!
Друзья может есть у кого такой проект или сылочка на него, аль "скриптик"????????
Заранее Благодарю!!!

68

(11 replies, posted in Russian)

Это просто здорово!!! СПАСИБО!!!

69

(14 replies, posted in FAQ)

Огромное СПАСИБО!!!

70

(35 replies, posted in Russian)

DriveSoft wrote:

RZ-007
как должен выглядеть результат?

например только время :  00:05:23

71

(35 replies, posted in Russian)

Ух ты!!!   GetTickCount -это здорово!!!...Спасибочки!!!
Дмитрий помогите произвести разницу:

Form1.Label15.Caption :=(SQLExecute('SELECT MAX(dates) FROM GIS'))- (SQLExecute('SELECT MIN(dates) FROM GIS'));

72

(14 replies, posted in FAQ)

Дмитрий прошу прощения...немножко на путал...
kjhkgjhuy....http:// привет 1<...kjhkgjhuy....http:// привет 2>...kjhkgjhuy
kjhkgjhuy....http:// привет 3>...kjhkgjhuy....http:// привет 4<...kjhkgjhuy

RegExp := TRegExp.Create('http://(.*?)<???????');

Спасибочки !!!

74

(11 replies, posted in Russian)

DriveSoft wrote:

Дубликаты всегда располагаются на соседних строчках? Или могут быть и так ?

Дубликаты могут располагаться в любой очерёдности....

Дмитрий...как выровнять шрифт по центру ширины колонки МЫ ЗНАЕМ!!!
А как по центру высоты ячейки в Много-строчном TableGrid...???

procedure Form1_GridEmployees_OnColumnResize (Sender: string; ACol: Integer);
begin
    Form1_GridEmployees_OnChange ('');
end;

procedure Form1_GridEmployees_OnChange (Sender: string);
var
    i, c: integer;
begin

    Form1.GridEmployees.Options := Form1.GridEmployees.Options or goRowResizing;

    c := Form1.GridEmployees.Columns.Count - 1;
    for i := 0 to c do
    begin
        Form1.GridEmployees.Columns[i].VerticalAlignment := taAlignTop;
        Form1.GridEmployees.Columns[i].WrapKind := wkWordWrap;
    end;

    c := Form1.GridEmployees.RowCount - 1;
    for i := 0 to c do Form1.GridEmployees.BestFitRow(i);

    Form1.GridEmployees.Columns[0].Alignment := taCenter;
    Form1.GridEmployees.Columns[1].Alignment := taCenter;
    Form1.GridEmployees.Columns[2].Alignment := taCenter;

end;

рисунок прилагается...