На главную Наши проекты:
Журнал   ·   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_
  
> Ламерский вопрос.
    Здравствуйте.

    Такая фишка :
    есть 2 edit'a - edit1 и edit2.

    Обработчик OnExit первого edit'a

    procedure TForm1.Edit1Exit(Sender: TObject);
    begin
        showmessage('xxxx');
    end;

    при передачи фокуса из первого во второй edit
    получается эффект залипания левой клавиши мыши.

    Как это исправить?


      Два вопроса:
      1. А как фокус передаеться?
      2. Засвети исходник.
        1. Щелкаешь мышкой на первый Edit, потом на второй.
        2. Весь исходник и состоит из обработчика OnExit,
        больше ни чего нет.
          Попробуй
          ShowMessage('xxxxx');
          SelectNext(Edit2,True,true);
          Я проверил все работает в применении
          к твоему примеру.
            Не понятно как ShowMessage() может привести к залипанию ЛКМ.
              Я попробовал, причина не понятна, курсор над Edit2 в форме стрелки и при движении без нажатия на ЛКМ выделяет текст
                2 Андрей: а как вызываешь событие OnExit? Наверняка щелчком по Edit2.
                  2 Serega_f1 : событие OnExit вызываю щелчком ЛКМ по Edit2

                  2 Pasha_64 : SelectNext(edit2,true,true) передает фокус
                  следующему WinControl'y по Tab Order'y после Edit2.
                  Мне нужно, чтобы фокус оставался на Edit2.
                    Edit2.SetFocus ?
                      так чего тебе надо-то ???
                      Цитата
                      курсор над Edit2 в форме стрелки и при движении без нажатия на ЛКМ выделяет текст

                      как без нажатия, если ты щелкаешь по Edit2:
                      Цитата
                      событие OnExit вызываю щелчком ЛКМ по Edit2

                      ну переходи в Edit2 табом, что я могу предложить?
                        2 Serega_f1 :
                        Поясняю - при передачи фокуса с Edit1 на Edit2 (щелчком мыши по Edit2)
                        появляется сообщение. При закрытии сообщения и появляется
                        этот долбанный эффект залипвшей ЛКМ.

                        Про совет Tab'ом переходить, спасибо  конечно,
                        но я для юзеров пишу, а они знаешь любят мышкой пользоваться.

                        2 Song : SetFocus не помогает.
                          Надо кода. Что-то ещё есть, что ты не показываешь.
                            2 Song:

                            Привожу код

                            unit1.pas

                            ExpandedWrap disabled
                              <br><br>unit Unit1;<br>interface<br>uses<br>  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br>  Dialogs, StdCtrls;<br>type<br>  TForm1 = class(TForm)<br>    Edit1: TEdit;<br>    Edit2: TEdit;<br>    procedure Edit1Exit(Sender: TObject);<br>  private<br>    { Private declarations }<br>  public<br>    { Public declarations }<br>  end;<br>var<br>  Form1: TForm1;<br>implementation<br>{$R *.dfm}<br>procedure TForm1.Edit1Exit(Sender: TObject);<br>begin<br>     showmessage('xxxxx');<br>end;<br>end.<br><br>


                            unit1.dfm

                            ExpandedWrap disabled
                              <br><br>object Form1: TForm1<br>  Left = 192<br>  Top = 114<br>  Width = 696<br>  Height = 480<br>  Caption = 'Form1'<br>  Color = clBtnFace<br>  Font.Charset = DEFAULT_CHARSET<br>  Font.Color = clWindowText<br>  Font.Height = -11<br>  Font.Name = 'MS Sans Serif'<br>  Font.Style = []<br>  OldCreateOrder = False<br>  PixelsPerInch = 96<br>  TextHeight = 13<br>  object Edit1: TEdit<br>    Left = 176<br>    Top = 64<br>    Width = 121<br>    Height = 21<br>    TabOrder = 0<br>    Text = 'Edit1'<br>    OnExit = Edit1Exit<br>  end<br>  object Edit2: TEdit<br>    Left = 176<br>    Top = 104<br>    Width = 121<br>    Height = 21<br>    TabOrder = 1<br>    Text = 'Edit2'<br>  end<br>end<br><br>
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0334 ]   [ 15 queries used ]   [ Generated: 17.05.24, 12:17 GMT ]