AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TStrings Erzeugen bevor die Form initialisiert wird?
Thema durchsuchen
Ansicht
Themen-Optionen

TStrings Erzeugen bevor die Form initialisiert wird?

Ein Thema von Gregg · begonnen am 16. Mär 2005 · letzter Beitrag vom 16. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#1

TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:06
Hallo,
schreibe grad nen Mediaplayer und versuche mit paramstr den jeweiligen Filename in eine Textdatei auf den Computer tempörär zu speichern. Allerdings funktioniert TMemo.Create nicht und die Zuweisung der Variable temp als TStrings endet auch in einem access violation error. Mit assign(temp,extractfiledrive(paramstr(0)+'\Mediapl ayer_System'temp.dat') kann ich keine Absätze reinschreiben, welche ich allerdings bräuchte, um sie der listbox1 meines player zuzuführen.

Hilfe ?!?
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#2

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:14
Warum nutzt du nicht das onCreate der Form?

MfG Pr0g
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#3

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:25
mach ich doch:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
type
    Einstellungen = record
     Lautstaerke : integer;
     Skin : string[1]; {Buttons}
     playlistnamen : boolean; {Vollst. Namen anzeigen?}
     Color : Tcolor; {Hintergrund}
     Color_ue : Tcolor; {Ueberschriftenfarbe}
     Color_sch : Tcolor; {Schriftfarbe}
     Font_ue : TFont; {Schriftart(Ueberschriften)}
     Font : TFont; {Schriftart(Normalschriften)}
    end;

var i,j:integer;
    groesse:longint;
    Sem: THandle;
    strin:string;
    Mutex: THandle;
    Was:Einstellungen;
    f:file of byte;
    temp:file of char;

label 99;

begin
  MediaplayerMsg := RegisterWindowMessage('Mediaplayer');
  Mutex := CreateMutex(nil, False, 'Mediaplayer');
  if GetLastError = ERROR_ALREADY_EXISTS then
   begin
    SendMessage(HWND_BROADCAST, MediaplayerMsg, 0, 0);
    if paramcount=0 then halt;
   end;
  if Mutex <> 0 then
    ReleaseMutex(Mutex);

  id1 := GlobalAddAtom('Hotkey1');
  RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F1);
  id2 := GlobalAddAtom('Hotkey2');
  RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F2);
  id3 := GlobalAddAtom('Hotkey3');
  RegisterHotKey(Handle, id3, MOD_CONTROL, VK_F3);
  id4 := GlobalAddAtom('Hotkey4');
  RegisterHotKey(Handle, id4, MOD_CONTROL, VK_F4);
  id5:=GlobalAddAtom('Hotkey5');
  RegisterHotkey(Handle, id5, MOD_Control, VK_Prior);
  id6:=GlobalAddAtom('Hotkey6');
  RegisterHotkey(Handle, id6, MOD_CONTROL, VK_Next);

if not fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\mediaplayer.ini') then
 begin
 CreateDir('\Mediaplayer_System');
 CreateDir(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs');
 skin_c_p.picture.SaveToFile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\play.bmp');
 skin_c_pa.picture.SaveToFile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\pause.bmp');
 skin_c_s.picture.SaveToFile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\stop.bmp');
 skin_c_b.picture.SaveToFile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\back.bmp');
 skin_c_n.picture.SaveToFile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\next.bmp');
 end
 else begin
 Einstellungen_laden(trackbar2,playlistnamen,classic,modern,Form1,
 label1,label3,label4,label5,label6,label7,label8, title,artist,comment,
 year,album,genre,memo1,listbox1,gauge1,Statictext1,Statictext2);
  AssignFile(f, extractfiledrive(paramstr(0))+'\Mediaplayer_System\mediaplayer.ini');
  Reset(f);
  BlockRead(f,Was,FileSize(f));
  CloseFile(f);
 if was.skin='then
  begin
   playbutton.glyph.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\play.bmp');
   pausebutton.glyph.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\pause.bmp');
   stopbutton.glyph.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\stop.bmp');
   back.glyph.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\back.bmp');
   nextbutton.glyph.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\glyphs\next.bmp');
  end;
 end;


 for i:=0 to MaxID3Genre do genre.items.add(ID3Genre[i]);
  i:=0;
  assignfile(temp,(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat'));
    if not fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat') then
    rewrite(temp) else append(temp);

  99:
  strin:='';
 if (paramcount>0) then
  begin
   while not fileexists(strin) do begin
   i:=i+1;
    strin:=strin+paramstr(i);
    end;
    strin:=strin+#13#10;
    for j:=1 to length(strin)-1 do write(temp,strin[j]);
    if i<paramcount then goto 99;
    closefile(temp);
    delete(strin,length(strin)-1,2);
    listbox1.items.clear;
    listbox1.items.add(extractfilename(strin));
    maxlied:=1;
    mediaplayer1.close;
    Label1.caption:=strin;
   FillID3TagInformation(strin, Title,Artist,Album,Year,Comment, Genre);
   mediaplayer1.filename:=strin;
   mediaplayer1.open;
   SetMPVolume(mediaplayer1,trackbar2.position);
   gesamtzeitsek:=(mediaplayer1.length div 1000);
   gesamtzeitmin:=0;
   trackbar1.max:=mediaplayer1.length;
   gauge1.maxvalue:=mediaplayer1.length;
   while (gesamtzeitsek>=60) do
    begin
     gesamtzeitsek:=gesamtzeitsek-60;
     gesamtzeitmin:=gesamtzeitmin+1;
    end;
   if gesamtzeitsek<10 then gesamtzeit.caption:=inttostr(gesamtzeitmin)+':0'+inttostr(gesamtzeitsek)
   else gesamtzeit.caption:=inttostr(gesamtzeitmin)+':'+inttostr(gesamtzeitsek);
   mediaplayer1.play;
  end;
end;
Und was auch ganz toll ist: bei dem Code sieht die temp.dat dann ungefähr so aus, wie auf dem Bild im anhang...


Ich versteh des einfach nich..
Miniaturansicht angehängter Grafiken
temp.dat_920.jpg  
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:29
Du könntest doch eine StringList zum bearbeiten/speichern der Datei nutzen. Was genau ist denn das Problem? Du sagts, dass du keine Absätze in die die Datei bekommst, was meinst du damit? Zeilenumbrüche scheinen ja drin zu sein.
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#5

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:31
Ja das Problem hab ich durch nen Hexeditor lösen können (wusste den internen Code für Absätzee nich aber schau dir mal das Bild an (1 post vorher im anhang)

Das Problem liegt darin, dass ich anscheinend keine delphiinternen Objecte im OnCreate benutzen kann, ohne ein access Violation zu provozieren..
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#6

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:34
Da die Datei als Text gespeichert werden soll kannst du doch eigentlich auch "textfile" statt "file of char" nehmen. Ich würde dir aber trotzdem zu einer Stringliste raten, da es leichter geht.
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#7

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:37
Mit einer TStrings Komponente erzeugt er mir grad nen Abstract Error..
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#8

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:40
Wie sieht denn dein Code aus mit dem Fehler?
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#9

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:44
Delphi-Quellcode:
var test : TStrings;

begin
//....
test:=TStrings.Create;
test.add(strin);
test.savetofile('.....\temp.dat');

aber ok
mit deinem tipp mit dem textfile geht alles (war noch pascal gewöhnt; da isses ja text; deshalb dacht ich das gibts nich mehr)

Vielen Dank

Wenn du willst kannste nen ja mal testn:

Meine Hp mit Download
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: TStrings Erzeugen bevor die Form initialisiert wird?

  Alt 16. Mär 2005, 22:48
Zitat von Gregg:
Delphi-Quellcode:
var test : TStrings;

begin
//....
test:=TStrings.Create;
test.add(strin);
test.savetofile('.....\temp.dat');

aber ok
mit deinem tipp mit dem textfile geht alles (war noch pascal gewöhnt; da isses ja text; deshalb dacht ich das gibts nich mehr)

Vielen Dank

Wenn du willst kannste nen ja mal testn:

Meine Hp mit Download
Is klar Du solltest auch nicht "TStrings" sondern "TStringList" verwenden, da die Methoden der TStrings Klasse abstract sind.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz