Autor Beitrag
Flash106
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 14:44 
Hallo...

ich habe eine eigene Editkomponente erstellt und sie von TEdit abgeleitet... aber es funktioniert kein Ereigniss... wieso nicht? Sowas wie OnClick oder OnChange.. :( hier mal der source der komponente:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type
  TmyCustomEdit = class(TEdit)
  private
    edEdit: TEdit;

...

  public
    constructor Create(AOwner: TComponent); override;
  published
    property OnClick;
...


is dochok so oder?? ich will das OnClick oder OnChange ja nicht mal abwandeln.. es soll einfach nur drinn sein.. Wenn ich das Edit anklicke soll was passieren...

*seufz*.. hilfe... :(

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mo 27.12.2004 um 14:26
Spatz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

WIN 2k
D7E
BeitragVerfasst: Mo 27.12.04 15:19 
wenn du es in deiner komponente nicht verändern willst, musst du es nicht als property deklarieren (ist ja schon in der superklasse getan). ansonsten musst du ein onclick- procedure dem property zuweisen und an einer stelle inherited onClick(Sender); aufrufen, dann wird das jew. komponentenspezifische onClick- Event aufgerufen.
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 15:27 
was soll ich?? sorry hab ich nich ganz verstanden... gehts noch ein bisschen genauer?? sorry :( .. wenn ichs gar nich reinschreibe in die kompo so wie ichs mir auch dachte da es ja schlieslich schon vorhanden is passiert aber auch nix :( ..

bianca
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 15:43 
ausblenden Delphi-Quelltext
1:
2:
3:
  TmyCustomEdit = class(TEdit)
  private
    edEdit: TEdit;


also das mit dem Edit IM edit macht doch wirklich keinen Sinn Bianca ???
was Spatz meinte ist dass du das Ereignis Onlick nicht nochmal definieren musst, da es bereits bei TEdit definiert ist. du kannst es also weglassen
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 15:46 
ja aber wenn ich es rausnehme die Property OnClick also richtig weg passiert ja auch nichts!! :( wieso den nich?? :(
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 15:53 
also: wenn deine Komponente fertig ist, ziehst du die auf dein Formular, dann kannst du unter den Ereignissen deines Editfeldes bei OnClick eine Prozedur dazuschreiben. dann sollte es funktionieren.

damit du die kompo aber auf die form ziehen kannst brauchst du ne REGISTER prozedur - hast du das ?
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 16:00 
*seufz* .. also passt auf.. die komponenten ist fertig sie ist auf dem formular und funktioniert prima!!! alles bestens.. aber keine ereignist.. kein onklick kein nix.. ich kann es zwar auswählen kann auch reinschreiben was er bei onklick machen soll aber es passiert NIX! :( .. vielleicht kann mir jemand mal nen kleine kurzen source schreiben vielleicht habe ich was übersehen oder falsch gemacht oder schick hier mal kurz den ganzen source:

ausblenden volle Höhe Quelltext
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:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
unit myCustomEdit;

interface

uses
  Windows, SysUtils, Controls, StdCtrls, Classes, Graphics,
  Messages, mySQLConnection;


type
  TmyCustomEdit = class(TEdit)
  private
    edEdit: TEdit;
    FTable : string;
    FField : string;
    FEvent : TNotifyEvent;
    procedure ResizeMyBaseEdit;
    procedure SetText(s: String);
    function GetText: String;
    procedure SetTableName(vTable: String);
    function GetTableName: String;
    procedure SetFieldName(vField: String);
    function GetFieldName: String;
  protected
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Text: String read GetText write SetText;
    property Tabelle: String read GetTableName write SetTableName;
    property Feld: String read GetFieldName write SetFieldName;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TmyCustomEdit]);
end;

constructor TmyCustomEdit.Create(AOwner: TComponent);
begin
  inherited;

  Width := 200;

  edEdit := TEdit.Create(Self);
  edEdit.Parent := Self;
  edEdit.OnClick := OnClick;

  ResizeMyBaseEdit;
end;

procedure TMyCustomEdit.ResizeMyBaseEdit;
begin
  Height := edEdit.Height;
  edEdit.Width := Width
end;

function TMyCustomEdit.GetText: String;
begin
  Result := edEdit.Text;
end;

procedure TMyCustomEdit.SetText(s: String);
begin
  edEdit.Text := s;
end;

function TMyCustomEdit.GetTableName: String;
begin
  Result := FTable
end;

procedure TMyCustomEdit.SetTableName(vTable: String);
begin
  FTable := vTable;
end;

function TMyCustomEdit.GetFieldName: String;
begin
  Result := FField
end;

procedure TMyCustomEdit.SetFieldName(vField: String);
begin
  FField := vField;
end;


end.


bianca
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 27.12.04 16:03 
Wie retnyg bereits sagte macht das Edit im Edit keinen Sinn.
Du leitest ja eine Klasse von TEdit ab (besser wäre TCustomEdit) und in dieser erzeugst Du dann eine Instanz von TEdit. Wenn Du dann auf dieser Instanz rumklickst ist es klar, daß kein OnClick ausgeloest wird, da Du eben nicht auf deiner Komponente sondern auf einem Unterobjekt dieser bist.

Also schmeiß das edEdit: TEdit; komplett raus.

Bis neulich ...
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 16:12 
ja ok gut danke.. aber wie erstelle ich dad edit dannusw.. also wie spreche ich es an.. hier z.b.:

ausblenden Quelltext
1:
2:
  edEdit := TEdit.Create(Self);  
  edEdit.Parent := Self;


der kennt doch das edit dann nich mehr :(

ich stell mich echt zu blöd an sorry
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 27.12.04 16:23 
Flash106 hat folgendes geschrieben:
der kennt doch das edit dann nich mehr :(

Korrekt. Denn er ist ja selber ein edit. Wozu dann noch ein Edit im Edit.

Bis neulich ...
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 16:24 
ausblenden volle Höhe Delphi-Quelltext
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:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
unit myCustomEdit;

interface

uses
  Windows, SysUtils, Controls, StdCtrls, Classes, Graphics,
  Messages;


type
  TmyCustomEdit = class(TEdit)
  private
    FTable : string;
    FField : string;
    FEvent : TNotifyEvent;
    procedure ResizeMyBaseEdit;
{    procedure SetText(s: String);
    function GetText: String; }

    procedure SetTableName(vTable: String);
    function GetTableName: String;
    procedure SetFieldName(vField: String);
    function GetFieldName: String;
  protected
  public
    constructor Create(AOwner: TComponent); override;
  published
//    property Text: String read GetText write SetText;
    property Tabelle: String read GetTableName write SetTableName;
    property Feld: String read GetFieldName write SetFieldName;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TmyCustomEdit]);
end;

constructor TmyCustomEdit.Create(AOwner: TComponent);
begin
  inherited;

  Width := 200;

  // ResizeMyBaseEdit;
end;

procedure TMyCustomEdit.ResizeMyBaseEdit;
begin
{  Height := edEdit.Height;
  edEdit.Width := Width }

end;

{function TMyCustomEdit.GetText: String;
begin
  Result := Text;
end;

procedure TMyCustomEdit.SetText(s: String);
begin
  Text := s;
end; }


function TMyCustomEdit.GetTableName: String;
begin
  Result := FTable
end;

procedure TMyCustomEdit.SetTableName(vTable: String);
begin
  FTable := vTable;
end;

function TMyCustomEdit.GetFieldName: String;
begin
  Result := FField
end;

procedure TMyCustomEdit.SetFieldName(vField: String);
begin
  FField := vField;
end;


end.

gruss retnyg
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 16:29 
die pfade weiblicher gedanken sind oft verschlungen und dem aussenstehenden unverständlich... :nut: :twisted:
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 27.12.04 16:44 
ahhh sorry.. :oops: ja bin ich blöde... is ja logisch brauch ja jetz den ganzen scheise nich mehr.. DANKE!!!!.. *hüpf* ... :P
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 16:45 
8)