Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Вниз

Приведение типов   Найти похожие ветки 

 
Vlad1   (2003-05-01 18:39) [0]

У меня была такая задача: надо было отследить нахождение мыши над ComboBox. Как известно, у ComboBox"а нет события OnMouseMove. Мне пришла в голову мысль: а нельзя ли ему программно это событие добавить? Попробовал такой вариант:
</Tlistbox(ComboBox1).OnMouseMove:=Form1.OnMouseMove;
CODE>
Неожиданно сработало! Стал экспериментировать с другими компонентами. У LabeledEdit1"a нет свойства FocusControl (и у LabeledEdit1.EditLabel такого подсвойства тоже нет). Попробовал Tlabel(LabeledEdit1.EditLabel).FocusControl
Тоже сработало.
Вот пример работающей программы:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
Label1: TLabel;
ListBox1: TListBox;
Button2: TButton;
Edit1: TEdit;
Button3: TButton;
Button4: TButton;
Panel1: TPanel;
LabeledEdit1: TLabeledEdit;
procedure FormCreate(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
procedure ComboMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ComboMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Caption:="Combobox";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//Tlistbox(ComboBox1).OnMouseMove:=OnMouseMove;
TButton(ComboBox1).OnMouseMove:=OnMouseMove;
Tlabel(LabeledEdit1.EditLabel).FocusControl:=button3;//
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if sender is TComboBox then Caption:="Combobox"
else
Caption:="Form1"
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TLabel(Button1).caption:="кнопка";

end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (sender is Tlabel)and(key="1") then caption:="label";
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
TEdit(Combobox1).Text:="Ну-ну";
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Tlabel(Form1).Caption:="любопытно";
Tform(label1).Caption:="м-да-а";
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
TMemo(edit1).Clear;
end;

end.

Вопрос: а как такое может работать?


 
Vlad1   (2003-05-01 18:44) [1]

Поправочка:
а вот этот кусок, естественно, не работает:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (sender is Tlabel)and(key="1") then caption:="label";
end;
(забыл стерерть!).


 
Vlad1   (2003-05-01 18:52) [2]

Добавление:
что касается procedure TForm1.ComboMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Caption:="Combobox";
end;
то это тоже нестёртый остаток от эспериментов (сначала в OnCreate было Tlistbox(ComboBox1).OnMouseMove:=ComboMouseMove;)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-46584
inc-viz
2003-04-22 08:59
2003.05.15
пытаюсь получить список таблиц *.mdb файла


1-46801
exo
2003-05-02 12:47
2003.05.15
как дописать в конец файла с помощью TFileStream


1-46741
Mir
2003-05-05 05:38
2003.05.15
Отображение в тестовом окне отформатированного текста


3-46566
Behemoth
2003-04-25 09:03
2003.05.15
Репликация БД.


9-46556
Jedi Knight
2002-11-11 15:01
2003.05.15
Wolfenstein Source





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский