Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Подскажите бесплатный хостинг с cron-tab

Ищу хостинг с подержкой cron и открытыми внешними соединениями... Нужно для реализации curl-запросов.
ho.ua - не подходит, внешние запросы запрещены... ;( Увы... Есть у кого какие-нибудь данные про другие подобные хостинги? ayala - есть ли там все? открыты ли внешние соединения? Кто-то пробовал?
Ответ:
бесплатные нормальные хостинги
таких не бывает. У тебя в любом случае будут какие-то ограничения - либо cURL не работает, либо база максимум на гигабайт, либо реклама на сайте, либо какие-то счетчики или их поддомен.домен.com.

Если ты идейный неплательщик, но хочешь отхватить ништяков, то попробуй клауд платформы. Например съедает временные емейлы и дает тебе бесплатный хостинг на две недели с неплохой мощностью. Гугловый клауд дает тебе два месяца бесплатного тестового периода, или 300 долларов на счет, которые ты можешь потратить на хостинг услуги, но наверно там сложно будет сделать аккаунт второй раз. Можно зарегаться на heroku, но там надо шарить в технологиях, и бесплатный аккаунт будет спать 8 часов в сутки.

Если ты просто нищий, то советую тебе купить хостинг ipipe.ru, самый дешевый стоит 1.5 долара в месяц, но там мощностей почти нет, но для сайта визитки самое то.
Вопрос: DBGrid и TAB

День добрый!
Подскажите, плиз, как мне добиться того, чтобы при нажатии TAB в DBGrid выбиралась следующая ячейка, а по достижению последней ячейки вибиралась первая ячейка и следующая строка.
Вот как я пытаюсь решить эту проблему
if Key = 9 then
  begin
    i := DBGrid.SelectedIndex;
    rowNum := DataForm.SQLDS.DataSet.RecNo;
    rNum := rowNum;
    tRow := TotalRows in Grid;
    if (i = 16) AND (rowNum < tRow)  then
    begin
      DBGrid.SelectedIndex := 1;
      DBGrid.Perform(WM_KEYDOWN,VK_DOWN,0);
    end;
    DBGrid.Perform(WM_KEYDOWN,VK_RIGHT,0);
    if rowNum < tRow then
       DBGrid.Perform(WM_KEYDOWN,VK_UP,0);

Все работает, кроме первой строки. Если TAB начинается с первой строки, то сразу выбирается вторая строка, чтобы я не делал.
Заранее спасибо...
Ответ: Ого... Еще и торгуется.
Вопрос: Tab control цветные вкладки

Доброго времени суток. В общем недавно начал изучать WTL и столкнулся с проблемой при работе с CTabCtrl. Мне нужно сделать так, чтобы текст 3х вкладок был разных цветов и жирности текста. Перепробовал стандартные методы контрола не нашел ничего подходящего кроме метода SetFont который устанавливает шрифт у всех вкладок сразу. Не могли бы вы подсказать каким образом такое можно сделать?  :sample 
Ответ:
Посмотри в сторону Custom Draw. По-моему, Tab Control его поддерживает.
Вопрос: Клавиша Tab

Здравствуйте , подскажите как изменить действия , выполняемые по нажатию на клавишу Таb. По умолчанию оне переводит фокус по компонентам формы , но мне к этому действию надо добавить чтоб менялся цвет у кнопок , когда они в фокусе
Ответ: Пробовала так, с другими клавишами получается , а с Tab никак
Вопрос: Tab Control на WPF, переключение между вкладками по нажатию кнопки

Здравствуйте форумчане, есть вопрос связанный с Tab Control на WPF. Задача стоит следующая есть Tab Control с 5 вкладками. На каждой вкладке 4 кнопки для перехода на другие вкладки. Нужно программно сделать переход между вкладками по нажатию этих кнопок. Проблема в том что я не знаю как это сделать на WPF, на WinForm знаю.
C#
1
 tabControl1.SelectedTab = tabControl1.TabPages[1];
Прошу подскажите как это сделать? Желательно пример кода, по типу что я привел для WinForm только на WPF.
И да стандартное переключение Tab Control использоваться не будет, только кнопки.
Заранее спасибо за помощь.
Ответ: Да, это имя вкладки
Вопрос: Tab разделитель

Подскажите пожалуйста, как разделить текст по Tab
перевод строки определяю так - $contents = str_replace("\n","<br>",$fil1);

А такую строку как разбить по Tab( заменить):
39 CHASING MAVERICKS (Покорители волн) Фрагмент фильма f3e52a12-0f4d-4e5c-9c3c-46a8daf06dea
Ответ: Спасибо!
Вопрос: Имитация Tab control, или как закрывать диалоговые окна, открыв новый

Добрый день.

Имеется диалоговое окно с 2 кнопками: "first", "second". Они выполняют роль Tab Control.
Нажимаем "first" - попадаем в первую "вкладку", при этом закрывается вторая, "second" - во вторую, при этом закрывается первая.

Переход между диалогами работает. Но у меня не закрывается старый диалог.

Вот так я перехожу на вторую "вкладку", т.е. по сути открываю новый диалог и закрываю старый. Но старый не закрывается. EndDialog() успешен. Подскажите, как закрыть?

PS. Если меняю местами DialogBox() и EndDialog() - то все работает как ожидается, но происходит мерцание при переходе. Это недопустимо. Нужно сначала открывать новый диалог, а потом закрывать прежний.

Спасибо.

    case IDC_1_SECOND:
                DialogBox(hGlob, (char *)IDD_SECOND, 0, SecondProc);
                
                if (EndDialog(hWndGlob, 0) == 0)
                {
                    MessageBox(HWND_DESKTOP, "EndDialog() failure", 0, 0);
                }      
     
                break;


Полный исходник.

    #include <Windows.h>
    #include "resource.h"
     
    BOOL CALLBACK SecondProc(HWND hWnd, UINT uMsg,  WPARAM wParam, LPARAM lParam);
    BOOL CALLBACK FirstProc(HWND hWnd, UINT uMsg,  WPARAM wParam, LPARAM lParam);
     
    HINSTANCE hGlob;
    HWND hWndGlob;
     
    VOID MakeFullScreenDialog(HWND hWnd)
    {
        WINDOWPLACEMENT wpc;
        GetWindowPlacement(hWnd,&wpc);
        SetWindowLong(hWnd,GWL_STYLE,WS_POPUP);
        SetWindowLong(hWnd,GWL_EXSTYLE,WS_EX_TOPMOST);
        ShowWindow(hWnd,SW_SHOWMAXIMIZED);
    }
     
     
    BOOL CALLBACK FirstProc(HWND hWnd, UINT uMsg,  WPARAM wParam, LPARAM lParam)
    {
        hWndGlob = hWnd;
        switch (uMsg)
        {
        case WM_CLOSE:
            EndDialog(hWnd, 0);
            break;
        case WM_INITDIALOG:
            //MakeFullScreenDialog(hWnd);
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
            case IDC_1_SECOND:
                DialogBox(hGlob, (char *)IDD_SECOND, 0, SecondProc);
                
                if (EndDialog(hWndGlob, 0) == 0)
                {
                    MessageBox(HWND_DESKTOP, "EndDialog() failure", 0, 0);
                }      
     
                break;
            case IDC_1_FIRST:
                MessageBox(HWND_DESKTOP, "screen 1, button 1", "", 0);
                break;
            };
        };
        return 0;
    }
     
    BOOL CALLBACK SecondProc(HWND hWnd, UINT uMsg,  WPARAM wParam, LPARAM lParam)
    {
        hWndGlob = hWnd;
        switch (uMsg)
        {
        case WM_CLOSE:
            EndDialog(hWnd, 0);
            break;
        case WM_INITDIALOG:
            //MakeFullScreenDialog(hWnd);
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
            case IDC_2_SECOND:
                MessageBox(HWND_DESKTOP, "screen 2, button 2", "", 0);
                break;
            case IDC_2_FIRST:
                
                DialogBox(hGlob, (char *)IDD_FIRST, 0, FirstProc);
                
                if (EndDialog(hWndGlob, 0) == 0)
                {
                    MessageBox(HWND_DESKTOP, "EndDialog() failure", 0, 0);
                }
                break;
            };
        };
        return 0;
    }
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShow)
    {
        hGlob = hInstance;
        DialogBox(hGlob, (char *)IDD_FIRST, 0, FirstProc);
        return 0;
    }
Сообщение отредактировано: barberan -
Ответ:
А зачем все эти костыли с диалогами ????
Вопрос: Отключение Win+Tab и Alt+F4

Всем Доброго времени суток!
Подскажите, как отключить сочетание клавиш Win+Tab и Alt+F4 на форме FormBorderStyle = None

Добавлено через 2 минуты
Пробовал так:
C#
1
2
3
4
5
Private void F_1FormClosed(object sender, FormClosedEventArgs e)
{
            e.Cancel = true;
            base.OnClosing(e);
}
Но при этом подчеркивается Cancel

Добавлено через 59 минут
Что-то ничего не помогает ((
Ответ: Все дело в том что на win 10 при сочетании клавиш win+tab можно легко перейти на другой рабочий стол и затем в диспетчере просто убить программу )
Вопрос: Как сделать программу невидимой в Alt + Tab

Здравствуйте. Подскажите пожалуйста, как сделать программу невидимой в Alt + Tab?
Ответ: VyachNik, Нужно что бы сама панель переключателя работала, но окошко моей программы в ней не отображалось.

Добавлено через 7 минут
Вот, нашел. Может пригодиться кому.

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.FormCreate(Sender: TObject);
var 
 CurStyle: Integer; 
begin 
 CurStyle := GetWindowLong(Handle, GWL_EXSTYLE); 
 CurStyle := (CurStyle or WS_EX_TOOLWINDOW) and (not WS_EX_APPWINDOW); 
 SetWindowLong(Handle, GWL_EXSTYLE, CurStyle); 
end;
Вопрос: Шаблоны проектирования. Подскажите с реализация задачки

Добрый день! На WinForm пишу ограничение прав доступа к элементам в проекте. Вся логика основана на TabPage.
Доступ к вкладе может быть на чтение или полный. Соответственно часть элементов при чтении/полном доступе становятся Enable = false/true . Проблема в том, что доступ к вкладке может изменять дочерний элемент (например при выборе в ComboBox некого айтема, доступ к вкладке может изменится).

Текущая реализация(краткий пример):

C#
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
//Абстрактный класс Элементов
abstract class BaseElement
{
    //Ссылка на вкладку родитель
    protected AccessToTab ParentTab;
    // Контрол элемента
    Control c;
    // Конструктор
    BaseElement(Control control, AccessToTab tab)
    {
            c = control;
            ParentTab = tab;
            tab.ChangingAccessInTab += new AccessToTab.ChangedAccessInTab(Action);
    }
    
    virtual public void Action()
    {
        c.Visible = ParentTab.Access != -1;
    }
}
   // Одна из реализаций "BaseElement"
   class DistinctElement : BaseElement
    {
        //Ссылка на комбо бокс который изменяет доступ к вкладке 
        private ComboBox cbx;
        public Distinct(Control control,AccessToTab tab) : base (control, tab)
        {
            ComboBox cbx = control as ComboBox;
            this.cbx = cbx;
            cbx.SelectedIndexChanged += new EventHandler(Action);
        }
        
        private void Action(object sender, EventArgs e)
        {
            Action();
        }
        public override void Action()
        {
            ParentTab.Access = getAccessFromItem(cbx.Items[cbx.SelectedIndex].ToString());
        }
        // Буду благодарен если подскажите как выполнить эту выборку одним лямбда выражением!
        private int getAccessFromItem(string NameItem)
        {
            for (int i = 0; i < ParentTab.hdbk.Length; i++)
                if (ParentTab.hdbk[i].NamesItem.Contains(NameItem))
                    return ParentTab.hdbk[i].Access;
            return -1;
        }
    }
    
    class AccessToTab
    {
        public delegate void ChangedAccessInTab();
        public event ChangedAccessInTab ChangingAccessInTab;
 
        public HandbookDB[] hdbk { get; private set; }
        public BaseElement[] Elements { get; private set; }
        private int access;
        public int Access { get { return access; } set { if (value != access) { access = value; ChangingAccessInTab(); } } }
        public AccessToTab(TabPage tp, HandbookDB[] hdbk, int access)
        {
            this.tp = tp;
            this.hdbk = hdbk;
            this.access = access;
        }
 
        // Метод формирует массив BaseElement. Вызывается из вне класс, после создания экземпляра AccessToTab
        // Именно этот момент и смущает!
        public void setSubElement()
        {
            ...
        }
 
    }
Как бы вы решили подобную задачу. Буду благодарен просто ссылке "Пойди почитай вот этот"
Постарался выложить как можно меньше кода. Надеюсь общая картина не изменилась.
Ответ: Если очень примитивно нарисовать. То получается такая картинка...