На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (9) « Первая ... 4 5 [6] 7 8 ... Последняя » все  ( Перейти к последнему сообщению )  
> Delphi Russian Knowledge Base 2.3 , Новая версия от 30 января 2005 года
    Цитата Ozzя @
    Виталий, компонент MiTeC System Information Component
    теперь по адресу

    http://www.mitec.cz/Downloads/MSIC.zip

    Тогда его вообще нужно убрать, потому что он тут без исходников, а в ДРКБ написано Source: Included. А ссылки в FAQ на коммерческие компоненты можно расценивать только как рекламу.
      Вот ещё дублирующиеся темы: "Как преобразовать указатель на метод в указатель на функцию?" и "Method pointers --> function pointers"

      З.Ы. Я там подправил один из своих предыдущих постов - нашёл ещё одну дублирующуюся тему (по поводу приоритета приложения)...
        Предлогаю немного дополнить статью "Как показывать встроенный редактор ComboBox в ячейке StringGrid".

        1. Дело в том, что в оригинальной статье при выделении какой-либо ячейки в StrinGrid-е, в ComboBox ничего не передается. Это немного не верный способ, т.к. сам ComboBox не переходит на позицию (ItemIndex) того текста который находится в StgingGrid-е, а встает в позицию ноль и если ничего не изменить в ComboBox, а просто выйти из ячейки, то значение в StringGrid-е изменится на значение текста присвоенному нулевой позиции (ItemIndex) ComboBox-а. С этим многие наверное сталкивались и исправить это довольно легко. Поэтому предлогаю просто внести в статью еще одну функцию, которая не просто передает значение из StringGrid-а в ComboBox, а ставит ComboBox в необходимю позицию.

        2. Поработав с такими вставками я пришел к выводу, что "помещать выбранный элемент из ComboBox-а в Grid" стоит не в событии ComboBox1Change, а в событии ComboBox1CloseUp. Это более верно, т.к. Windows не будет путать где происходит прокрутка и где сейчас стоит фокус!

        3. Есть еще одна проблема со вставками компонентов в StringGrid, который проявляется не на всех компьютерах. Если конкретно то это пропадание объетов вставки при пользовании скрула в StringGrid-е. Что бы не повторятся вот ссылка на вопрос --> Исчезает ComboBox из StringGrid-а . Видимо мало народу с ней сталкивалось. И все же проблему эту решить оказалось проще некуда... Оказывается, если прокрутить роликом над StringGrid-ом, то он принимает StayOnTop, а все компоненты, соответственно, оказываются под ним. Следовательно, надо сделать StringGrid-у SendToBack.

        Оригинальная статья:
        ExpandedWrap disabled
          procedure TForm1.FormCreate(Sender: TObject);
          begin
           {Высоту у combobox не получится установить, поэтому мы будем}
           {подгонять размер у грида под размер combobox!}
            StringGrid1.DefaultRowHeight := ComboBox1.Height;
           {Скрываем combobox}
            ComboBox1.Visible := False;
          end;
           
          procedure TForm1.ComboBox1Change(Sender: TObject);
          begin
           {Получаем выбранный элемент из ComboBox и помещаем его в грид}
            StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
            ComboBox1.Visible := False;
            StringGrid1.SetFocus;
          end;
           
          procedure TForm1.ComboBox1Exit(Sender: TObject);
          begin
           {Получаем выбранный элемент из ComboBox и помещаем его в грид}
            StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
            ComboBox1.Visible := False;
            StringGrid1.SetFocus;
          end;
           
          procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col,
           Row: Integer;  var CanSelect: Boolean);
          var
            R: TRect;
          begin
            if ((Col = 3) AND
                (Row <> 0)) then begin
             {Размер и расположение combobox подгоняем под ячейку}
              R := StringGrid1.CellRect(Col, Row);
              R.Left := R.Left + StringGrid1.Left;
              R.Right := R.Right + StringGrid1.Left;
              R.Top := R.Top + StringGrid1.Top;
              R.Bottom := R.Bottom + StringGrid1.Top;
              ComboBox1.Left := R.Left + 1;
              ComboBox1.Top := R.Top + 1;
              ComboBox1.Width := (R.Right + 1) - R.Left;
              ComboBox1.Height := (R.Bottom + 1) - R.Top;
             {Показываем combobox}
              ComboBox1.Visible := True;
              ComboBox1.SetFocus;
            end;
            CanSelect := True;
          end;


        Дополненая статья:
        ExpandedWrap disabled
          procedure TForm1.FormCreate(Sender: TObject);
          begin
           {Высоту у combobox не получится установить, поэтому мы будем}
           {подгонять размер у грида под размер combobox!}
            StringGrid1.DefaultRowHeight := ComboBox1.Height;
           {Скрываем combobox}
            ComboBox1.Visible := False;
          end;
           
          procedure TForm1.ComboBox1CloseUp(Sender: TObject);
          begin
           {Получаем выбранный элемент из ComboBox и помещаем его в грид}
            StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
            ComboBox1.Visible := False;
            StringGrid1.SetFocus;
          end;
           
          procedure TForm1.ComboBox1Exit(Sender: TObject);
          begin
           {Получаем выбранный элемент из ComboBox и помещаем его в грид}
            StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
            ComboBox1.Visible := False;
            StringGrid1.SetFocus;
          end;
           
          procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col,
           Row: Integer;  var CanSelect: Boolean);
          var
            R: TRect;
          begin
            SGWriteRead.SendToBack;  
            if ((Col = 3) AND
                (Row <> 0)) then begin
             {Размер и расположение combobox подгоняем под ячейку}
              R := StringGrid1.CellRect(Col, Row);
              R.Left := R.Left + StringGrid1.Left;
              R.Right := R.Right + StringGrid1.Left;
              R.Top := R.Top + StringGrid1.Top;
              R.Bottom := R.Bottom + StringGrid1.Top;
              ComboBox1.Left := R.Left + 1;
              ComboBox1.Top := R.Top + 1;
              ComboBox1.Width := (R.Right + 1) - R.Left;
              ComboBox1.Height := (R.Bottom + 1) - R.Top;
              //Определяем индекс
              ComboBox1.ItemIndex := ComboBoxNumIndex(StringGrid1.Cells[3, ARow], ComboBox1.Items.Text);
              //Показываем СomboBox
              ComboBox1.Visible := True;
              ComboBox1.SetFocus;
            end;
            CanSelect := True;
          end;
           
          // Ставим ComboBox в позицию текста который отбражен в StringGrid-е
          Function ComboBoxNumIndex(TextGrid, TextCombo : String): Integer;
          var
           NumIndex: Integer;
          begin
             NumIndex := 0;
             while Pos(#13#10, TextCombo) <> 0 do
             begin
                if Copy(TextCombo, 0, Pos(#13#10, TextCombo)-1) = TextGrid then break
                else
                begin
                   NumIndex := NumIndex + 1;
                   TextCombo := Copy(TextCombo, Pos(#13#10, TextCombo)+2, Length(TextCombo));
                end;
             end;
             ComboBoxNumIndex := NumIndex;
          end;
        Сообщение отредактировано: Gugle -
          хелп плиз, тока не бейте зонтиком я чиго-то ненашел аналогичных топов

          у меня при открытии chm файла всплывает окно "Delphi Russian Knowledge Base from Vit"
          слева отображается содержание, а справа в окне

          "Действие отменено
          Internet Explorer не удается подключиться к запрошенной веб-странице. Возможно, страница временно недоступна."

          при попытке открыть любой из разделов:

          "Невозможно отобразить страницу
          Эта страница сейчас недоступна. Возможно, это вызвано техническими проблемами на веб-узле, или требуется изменение параметров обозревателя."


          никто не сталкивался с такой проблемой ?
            CiD, такое бывает, когда например в браузере (Internet Explorer) стоит кодировка OEM, например.
              Посмотри здесь: Глюк с CHM
                посмотрел, тока мне это не помогло:
                переименовал файл в c:\folder\file.chm - ошибка та же
                при открытии "с помощью..." IE выдает сообщение "Открыть файл предупреждение безопасности. издатель неизвестен", на диалоге 2 кнопки открыть и отмена, нажимаю открыть - ошибка та же, по отмене соответственно отваливается, но если внизу снять галочку "всегда спрашивать при открытии файлов этого типа" и нажать открыть - все нормально открывается.

                ЗЫ если после переименовать файл - проблема возвращается.
                  TRichEdit -> Установка каретки в RichEdit
                  ---------------
                  Узнать положение курсора в RichEdit не составляет труда (richedit.getcaret). А вот как установить каретку в нужное место ?.
                  ExpandedWrap disabled
                    [CODE=pas]Procedure setline(WhichEdit:TRichedit;Linepos,charpos:integer);
                    Begin
                     with WhichEdit do  
                       begin  
                         selstart:=perform(EM_LineIndex,Linenum,0)+charpos;  
                         perform(EM_ScrollCaret,0,0);  
                       end;  
                    end;


                  Комментарии:
                  Если Вам не нужно, чтобы происходил скроллинг к позиции каретки, то EM_ScrollCaret можно убрать. RichEdit должен иметь фокус, иначе em_ScrollCaret не сработает.

                  ---------------

                  У меня не работает :( (извените если не в тему, просто проблема может возникнуть не только у меня. Может ещё есть какие-либо условия? Если есть, то надо дополнить)

                  Перевод курсора на определённую строку
                  Сообщение отредактировано: MamontDel -
                    А не завести (или переименовать) ли тему в "Delphi Russian Knowledge Base BugTrack" ?
                    Или же просто уточнить в описании темы "BugTrack"
                    Сообщение отредактировано: Romtek -
                      Цитата Romtek @
                      А не завести (или переименовать) ли тему в "Delphi Russian Knowledge Base BugTrack" ?
                      Или же просто уточнить в описании темы "BugTrack"



                      Против, мне легче если всё будет в одном месте сконцентрировано
                        Vit, как там по поводу новой версии? А то уже больше года - и ни одного обновления... :unsure:
                          Народ, отсюда http://www.drkb.ru/ вобще хоть кто-то что-то может скачать?
                          Второй день пытаюсь и на все попытки закачки пишет
                          Notice: Use of undefined constant QUERY_STRING - assumed 'QUERY_STRING' in /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php on line 24

                          Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php:24) in /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php on line 52
                            _Vetal_
                            http://www.delphist.com/drkb23.chm
                              Не удается скачать drkb с его родного сайта.

                              Вылетает ошибка

                              Notice: Use of undefined constant QUERY_STRING - assumed 'QUERY_STRING' in /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php on line 24

                              Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php:24) in /home/httpd/vhosts/drkb.ru/httpdocs/clicks_counter.php on line 52
                                aelita, читай предыдущие сообшения!!
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0477 ]   [ 15 queries used ]   [ Generated: 3.06.24, 19:18 GMT ]