Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 09.07.03 20:03 
Hallo,

ich wollte ein einges ereignis auslösen aber wie mache ich das? ich habe mir für fmod ein sound klasse gebastelt und nun möchte ich wenn eine neue musik geladen wird soll das ereignis onNewMusik ausgelöst werden wie mache ich das ?

(bitte mit beispien antworten, danke)

Moderiert von user profile iconTino: Titel geändert & Topic verschoben.

_________________
MFG
Michael Springwald, "kann kein englisch...."
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mi 09.07.03 21:38 
ausblenden Delphi-Quelltext
1:
2:
3:
FOnNewMusik: TNotifyEvent;

if Assigned(FOnNewMusik) then FOnNewMusik(Self);


Wenn ich mich aber recht entsinne rufst du NewMusik in einem Thread auf. Das Ereignis solltest du deswegen mit dem Hauptthread synchronisieren -> Synchronize

_________________
Ist Zeit wirklich Geld?
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 09.07.03 21:42 
ne um das thema geht es jetzt nicht mehr, ich wollte mir zwei ereignis erstellen die ich dann in der sokubahn unit verwenden könnten, damit ich den threht auf pause schalten kann.

ps:
wo ist eingetlich das f oder das t da ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mi 09.07.03 21:47 
Beide gehören groß geschrieben.
Das T ist bei Borland wie das C bei Microsoft.

VC++:
ausblenden Quelltext
1:
class CTest {};					


Delphi:
ausblenden Delphi-Quelltext
1:
TTest = class;					


Es steht für Type und wird auch bei records benutzt.


Das F steht für Field und sollte laut Object Pascal Style Guide der Prefix für alle Felder in einer Klasse sein. Die Eigenschaften (property) habe dann keinen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
TTest = class
private
  FMyField: Integer;
public
  property MyField: Integer read FMyField write FMyField;
end;

_________________
Ist Zeit wirklich Geld?
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mi 09.07.03 22:03 
Hallo mimi,

hab Dir mal auf die Schnelle eine kleine Komponente geschrieben. Diese habe ich von TEdit abgeleitet und hierfür ein Ereignis namens OnPressEnter geschrieben. Dieses wird ausgelöst, wenn Du in diesem Edit die Enter-Taste drückst:

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:
unit MyEdit;

interface

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

type
  TMyEdit = class(TEdit)
  private
    { Private-Deklarationen }
    FOnPressEnter: TNotifyEvent; // Variable von TNotify-Event instanziieren
  protected
    { Protected-Deklarationen }
      // hier ermitteln wir, ob Enter gedrückt wurde
    procedure KeyPress(var Key: Char); override;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
      // für den Objekt-Inspektor
    property OnPressEnter: TNotifyEvent read FOnPressEnter write FOnPressEnter;
  end;

procedure Register;

implementation

constructor TMyEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  //*

end;

destructor TMyEdit.Destroy;
begin

  //*
  inherited Destroy;
end;

procedure TMyEdit.KeyPress(var Key: Char);
begin
  inherited;
  if assigned(FOnPressEnter) then
    if Key = #13 then
    begin
      Key := #0;
      FOnPressEnter(Self);
    end;
  Invalidate;
end;

procedure Register;
begin
  RegisterComponents('MyComponents', [TMyEdit]);
end;

end.

// ---------------------------------------------------------------

  // wenn du die Kompo benutzst:
procedure TForm1.MyEdit1PressEnter(Sender: TObject);
begin
  caption := 'hello world';
end;


Habe es auch getestet. Es funktioniert. Hoffe das hilft Dir weiter.

MFG

- Ernesto -

// Edit: Falls du Probleme hast dein Topic zu ändern, es muss heissen: Eigenes Ereignis in eigener Klasse. Hey, nicht böse sein, war nur Spass :wink: Aber Keldorn hat nicht Unrecht. Wenigsten der Topic sollte korrekt sein, damit andere auch das Thema finden.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 09.07.03 22:31 
@ErnestoChe
danke das du dir die mühe gemacht hast, werde ich mir morgen anschauen und testen, eingentlich wollte ich keine komponente machen, sondern nur eine einfache klasse, die auch nirgendswo abgeleitet wird oder so.....

@AndyB
achso, wusste ich garnicht ich schreibe bei record immer das t davor aber den grund weiß ich garnicht.....

_________________
MFG
Michael Springwald, "kann kein englisch...."
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mi 09.07.03 22:40 
Hi mimi,

mimi hat folgendes geschrieben:
eingentlich wollte ich keine komponente machen, sondern nur eine einfache klasse, die auch nirgendswo abgeleitet wird oder so....


Das macht nichts. Das Prinzip ist das gleiche. Dann machst du die property einfach aus published raus und nimmst es unter public auf.

MFG

- Ernesto -
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 09.07.03 23:10 
Danke! werde ich morgen mal testen.

_________________
MFG
Michael Springwald, "kann kein englisch...."