ik heb dus voor dit topic een voorbeeld programma gemaakt..
simpel: 2 forms op elk form een status bar met 1 panel en 1 knopje(incl. hint).
source:
form1
Form2:
Nu is dus het probleem dat alle hint in het 2e form word weergegeven, en als ik een timer zet dat na 1 seconden op form1 de onhint zet, word daar alle hints weer gegeven.
Eigenlijk natuurlijk wel logisch, want je vangt alle hints op van de gehele application. en gezien dat forms zelf geen onhint hebben, zie ik even niet in hoe ik het zou kunnen oplossen. Het zou natuurlijk kunnen zijn dat ik iets over het hoofd zie, maar dat lijkt me gek. In iedergeval, als iemand een oplossing zou weten.. zou het natuurlijk erg fijn zijn
simpel: 2 forms op elk form een status bar met 1 panel en 1 knopje(incl. hint).
source:
form1
Delphi:
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
| unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) StatusBar1: TStatusBar; Button1: TButton; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } procedure ToonHint(Sender: Tobject); public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure Tform1.ToonHint(Sender: Tobject); begin StatusBar1.Panels[0].Text := GetLongHint(Application.Hint); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnHint := toonhint; end; procedure TForm1.Button1Click(Sender: TObject); begin form2.showmodal; end; end. |
Form2:
Delphi:
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
| unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm2 = class(TForm) StatusBar1: TStatusBar; Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } procedure ToonHint(Sender: Tobject); public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure Tform2.ToonHint(Sender: Tobject); begin StatusBar1.Panels[0].Text := GetLongHint(Application.Hint); end; procedure TForm2.FormCreate(Sender: TObject); begin Application.OnHint := toonhint; end; end. |
Nu is dus het probleem dat alle hint in het 2e form word weergegeven, en als ik een timer zet dat na 1 seconden op form1 de onhint zet, word daar alle hints weer gegeven.
Eigenlijk natuurlijk wel logisch, want je vangt alle hints op van de gehele application. en gezien dat forms zelf geen onhint hebben, zie ik even niet in hoe ik het zou kunnen oplossen. Het zou natuurlijk kunnen zijn dat ik iets over het hoofd zie, maar dat lijkt me gek. In iedergeval, als iemand een oplossing zou weten.. zou het natuurlijk erg fijn zijn