Autor Beitrag
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.07.08 21:56 
Moin! :D
ich habe ein Problem.Und zwar mit zwei klassen. Beispiel:
ich erstelle zwei klassen und in der einen procedure der zweiten klasse rufe ich die andere auf.
aber jetzt gibs ne zugriffsverletzung.
Was muss ich machen? :roll:
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 11.07.08 21:58 
Nicht so viel Informationen, das kann doch keiner durchlesen! Diese riesen Mengen an Quellcode schon gar nicht! :shock:


...


Meine Glaskugel sagt mir, dass Du vorher noch irgendwo eine Instanz einer Klasse erzeugen musst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Jerk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 251

Vista Ultimate, Ubuntu
Turbo Delphi 2006
BeitragVerfasst: Fr 11.07.08 22:22 
Vorher initialisieren?
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.07.08 23:15 
Zitat:
Meine Glaskugel sagt mir, dass Du vorher noch irgendwo eine Instanz einer Klasse erzeugen musst.
Dann frage bitte deine göaskugel wie das geht. :wink:
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 11.07.08 23:21 
Wie wäre es, wenn Du erst einmal mehr Informationen lieferst, damit man weiß, ob das überhaupt der Fehler ist? Ich mach mir doch jetzt nicht die Mühe, um hinterher veilleicht festzustellen, dass das gar nicht der Fehler ist.

Dass Du nach meinem überdeutlichen Hinweis keine Informationen nachlieferst, ist schon ziemlich unverschämt! :evil:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 10:20 
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:
  type
    TAudioFile = class
    private
        fInterpret: String;
        fTitel    : String;
        fPfad     : String;
        fDauer    : Integer;

        procedure GetMp3Info;
        procedure GetWmaInfo;
        procedure SetUnknown;

        function GetPlaylistTitel: String;

    public
        property Interpret: String read fInterpret write fInterpret;
        property Titel    : String read fTitel     write fTitel;
        property Pfad     : String read fPfad;
        property Dauer    : Integer read fDauer write fDauer;
        property PlaylistTitel: String read GetPlaylistTitel;

        constructor Create;
        destructor Destroy; override;

        procedure GetAudioInfo(filename: String);
        procedure Assign(aAudioFile: TAudioFile);
    end;
TMeMPPlayer = class
private
 fMainStream: DWord;
fMainVolume: single;
fMainAudioFile: TAudioFile;
function MeMP_CreateStream(aFilename: String): DWord;
procedure SetVolume(Value: single);
function GetTime: Double;
function GetProgress: Double;
procedure SetProgress(Value: Double);
function GetBassStatus: DWord;
public
property Volume: single read fMainVolume write SetVolume;
property Time: Double read GetTime;
property Progress: Double read GetProgress write SetProgress;
property BassStatus: DWord read GetBassStatus;
constructor Create;
procedure SetPosition(Value: Longword);
destructor Destroy; override;
procedure InitBassEngine(HND: HWND);
procedure Play(aAudioFile: TAudioFile);
procedure Pause;
procedure Stop;
procedure Resume;
procedure StopAndFree;
end;
implementation

procedure TMeMPPlayer.Play(aAudioFile: TAudioFile);
begin
if aAudioFile <> NIL then
begin
fMainAudioFile.Assign(aAudioFile);
StopAndFree;
fMainstream := MeMP_CreateStream(fMainAudioFile.Pfad);
BASS_ChannelSetAttribute(fMainStream, BASS_ATTRIB_VOL, fMainVolume);
BASS_ChannelPlay(fMainStream , True);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin

globalaudiofile:= TAUDIOfile.create;
MEMPPLAYER:=TMEMPpLAYER.create;
  MeMPPlayer.InitBassEngine(Handle);
MeMPPlayer.Volume := 1;
end;


Also hier ist der gewünschte quelltext.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 10:24 
Ach und entschuldigung. :cry: :cry: :cry:
Der fehler kenne ich ja schon wie gesagt sobald ich in der einen procedure der klasse memp
die klasse taudiofile aufrufe kommt eine zugriffsverletzung. :cry: :cry: :cry:
Ach der quelltext kommt euch bestimmt bekannt vor.ist aus gausis tut. :wink:
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 12.07.08 11:18 
Ich habe jetzt noch nicht verstanden, wo da jetzt die Zugriffsverletzung kommt. :gruebel:

_________________
We are, we were and will not be.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 11:19 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
case MeMPPlayer.BassStatus of
BASS_ACTIVE_STOPPED:
begin
MeMPPlayer.Play(GlobalAudioFile);//Genau hier
//LblTitel.Caption := GlobalAudioFile.PlaylistTitel;
end;
BASS_ACTIVE_PLAYING: MeMPPlayer.Pause;
BASS_ACTIVE_PAUSED : MeMPPlayer.Resume;
end;
end;
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Sa 12.07.08 11:29 
Existiert den eine Instanz von TAudioFile?

_________________
Markus Kinzler.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 11:32 
Was ist eine instanz?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 12.07.08 11:34 
Darf ich Dich mal aus diesem Thread zitieren ;-)
user profile iconj.klugmann hat folgendes geschrieben:
Dann würde ich erstmal mit einem einführungs buch anfangen.


www.christian-stelzm...tierteprogrammierung

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 11:39 
Ach :autsch: :autsch: :autsch: !Ich habs mit den begriffen nicht so. :oops:
Habs kapiert.ja ich habe eine Instanz angelegt. 8)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 12.07.08 12:05 
Häng mal das ganze Projekt an. Da ist bestimmt irgendwo eine globale Variable lokal (dieses GlobalAudioFile ist im Tutorial nur temporär, das kommt später weg - nur so zur Verteidigung :angel:), oder wird irgendwo freigegeben, sodass der Zeiger zwar <> Nil, aber nicht mehr gültig ist... :nixweiss:

_________________
We are, we were and will not be.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 12:33 
OK hier ist er.

Moderiert von user profile iconChristian S.: 500 Zeilen sind wohl als Anhang besser ...
Einloggen, um Attachments anzusehen!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 12.07.08 12:42 
Bitte sag nicht, dass dein Code wirklich so ausieht. Das ist ja grausam - ich hoffe mal, dass das durch das Copy&Paste hier gekommen ist. :eyes:

Das einzige, was mir so auffällt, ist das ganze NewInstance-Gedöns. Lass das mal weg, und erzeuge die Objekte so, wie im Tutorial gezeigt.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 12:48 
das war ein versuch nachdem ich an diesem fehler verzweifelt bin.-
was jetzt?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 12.07.08 12:51 
Ich weiß auch nicht, was du da so machst. Ich habe in meinem ganzen Leben noch nie NewInstance benötigt - kannte das bisher nicht einmal. Und so, wie der Code formatiert ist, und mit den Bezeichnern, guck ich da nicht weiter durch. Das ganze Projekt (also pas, dpr, dfm, etc) könnte ich mal durchgucken, wo der Compiler/Debugger meckert.

Ein paar OOP-Grundlagen wären aber sicherlich nicht verkehrt. ;-)

_________________
We are, we were and will not be.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.07.08 12:59 
ausblenden Delphi-Quelltext
1:
If funzt=true then Juhuuuu! ;					

Juhuuuuuuuuuu! :D :D :D :D :D :lol:
es funktioniert!Ich muss mir unbedingt angewöhnen meinen code sauber zu schreiben.
ich hab vergessen eine Instanz zu erzeugen:
mempplayer.fMainAudioFile:= TAudioFile.Create; :idea:
bin selber drauf gekommen.da sieht man mal das man lieber seinen code mal ordentlich durchgucken sollte. 8)
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Sa 12.07.08 13:04 
user profile iconj.klugmann hat folgendes geschrieben:
bin selber drauf gekommen.

Ach ja?

user profile iconChristian S. hat folgendes geschrieben:
Meine Glaskugel sagt mir, dass Du vorher noch irgendwo eine Instanz einer Klasse erzeugen musst.


user profile iconmkinzler hat folgendes geschrieben:
Existiert den eine Instanz von TAudioFile?


user profile iconGausi hat folgendes geschrieben:
Das einzige, was mir so auffällt, ist das ganze NewInstance-Gedöns. Lass das mal weg, und erzeuge die Objekte so, wie im Tutorial gezeigt.


Nachdem Du 3 Mal dezent darauf hingewiesen worden bist, bist Du "alleine" drauf gekommen?! Glückwunsch! :lol: :wink:

Naja, Hauptsache es funktioniert. :D :wink:

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]