Autor Beitrag
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 13.07.08 14:32 
sry, hab kein Delphi da zum ausprobieren. Es war auch mehr eine Vermutung das es so gehen könnte als eine aussage.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 13.07.08 16:08 
Hmmm... kennt ihr QIP (vllt ist das auch bei ICQ)

wenn man da die einstellungen für die schrift, also schriftart, größe, Farbe Style usw ändert, ändert sich nur die nachricht, nicht aber (Beispiel)
Zitat:
Name (17:31:17 30/05/2008)


also siehts (z.B.)so aus:
Zitat:
Name (17:31:17 30/05/2008)
Nachricht



geht das vllt mit delphi auch irgentwie?

MfG
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 13.07.08 17:11 
Hallo,

zu deinem Vorherigen Problem wie du das RichEdit speichern sollst hab ich jetzt etwas getüftelt und hab nun folgenden, schweren, überaus komplizierten Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Speichern;
var INIFile: TINIFile;
    MyStream: TStringStream;
begin
  INIFile := TINIFile.Create(PathToINI);
  MyStream := TStringStream.Create('');
  RichEdit1.Lines.SaveToStream(MyStream);
  INIFile.WriteString('Richedits','Richedit1',MyStream.DataString);
  INIFile.Free;
  MyStream.Free;
end;


soweit zum speichern. das laden geht dann ganz ähnlich:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Laden;
var INIFile: TINIFile;
    MyStream: TStringStream;
begin
  INIFile := TINIFile.Create(PathToINI);
  MyStream := TStringStream.Create('');
  MyStream.DataString := INIFile.ReadString('Richedits','Richedit1','');
  RichEdit1.Lines.LoadFromStream(MyStream);
  INIFile.Free;
  MyStream.Free;
end;


das war auch schon der ganze zauber. natürlich noch mit exeptionhandlern versehen und so weiter aber das hab ich mal erspart.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.07.08 17:33 
Speicher doch einfach den Inhalt des RichEdits in eine RTF-Datei ab :idea:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
RichEdit1.Lines.SaveToFile('Dateiname');

{...}

RichEdit1.Lines.ReadFromFile('Dateiname');
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 13.07.08 21:56 
es heist loadfromfile und nicht read. ;-)

aber dann könnt er nicht mehrere richedits in eine datei und auch noch andere optionen in eine datei schreiben können. und ich glaub das will er.

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 11:45 
Zitat:
aber dann könnt er nicht mehrere richedits in eine datei und auch noch andere optionen in eine datei schreiben können. und ich glaub das will er.


genau das ist es. elundril hat recht!

mit SaveToFile und LoadFromFile hab ich auch schon gearbeitet, aber jetzt wo ich ne INI hab, würde ich sie gern in die INI schreiben, damit ich (Ich hab MEHRERE RichEdits) nicht ganz so viele Dateien habe.

PS: Ich teste mal elundrils vorschlag!

MfG


Edit: Folgender Fehler:

ausblenden Delphi-Quelltext
1:
MyStream.DataString := Ini.ReadString('Richedits','Richedit1','');//Ini ist bei mir gleich INIFile					

ausblenden Delphi-Quelltext
1:
[Fehler] Unit1.pas(5179): Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden					
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 14.07.08 13:39 
ok, sorry, den laden teil hab ich nie getestet. werd mich gleich an die arbeit machen und eine lösung finden! sorry!

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 13:45 
musst dich nich entschuldigen, ich sags nur, weil ich selbst würde das problem nicht finden

Ansonsten: vielen dank schon mal

MfG
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 14.07.08 13:55 
Am Besten benutzt du die Methode WriteBinaryStream der Ini-Datei:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Speichern;
var INIFile: TINIFile;
    MyStream: TMemoryStream;
begin
  INIFile := TINIFile.Create(PathToINI);
  try
    MyStream := TMemoryStream.Create;
    try
      RichEdit1.Lines.SaveToStream(MyStream);
      INIFile.WriteBinaryStream('Richedits', 'Richedit1', MyStream);
    finally
      MyStream.Free;
    end;
  finally
    INIFile.Free;
  end;
end;

Die markierten Stellen sind die geänderten. Das Laden geht analog dazu.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 14:13 
Danke

Aber wie muss die stelle heißen?

ausblenden Delphi-Quelltext
1:
MyStream := Ini.ReadBinaryStream('Richedits','Richedit1','');					

das ist die umkehrung von
ausblenden Delphi-Quelltext
1:
Ini.WriteBinaryStream('Richedits','Richedit1',MyStream);					


(imom kommt fehlermeldung:
ausblenden Delphi-Quelltext
1:
[Fehler] Unit1.pas(5178): Inkompatible Typen: 'TStream' und 'String'					
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 14.07.08 14:19 
Dafür sind Ini Dateien nicht gedacht, am besten du überdenkst nochmal dein ganzes Konzept.
Man könnte dir eventuell auch besser helfen wenn du nicht so sparsam mit Informationen wärst.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 14:21 
informationen von/für was?
Fabian E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Mo 14.07.08 14:21 
user profile iconV!P3R hat folgendes geschrieben:
Danke

Aber wie muss die stelle heißen?

ausblenden Delphi-Quelltext
1:
MyStream := Ini.ReadBinaryStream('Richedits','Richedit1','');					

das ist die umkehrung von
ausblenden Delphi-Quelltext
1:
Ini.WriteBinaryStream('Richedits','Richedit1',MyStream);					


(imom kommt fehlermeldung:
ausblenden Delphi-Quelltext
1:
[Fehler] Unit1.pas(5178): Inkompatible Typen: 'TStream' und 'String'					


Der Fehler ist, dass du beim Lesen als Standardwert '' also einen leeren String übergibst, da meckert der Compiler natürlich.
Vielleicht klappt es einfach mit nil.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 14.07.08 14:26 
user profile iconFabian E. hat folgendes geschrieben:
user profile iconV!P3R hat folgendes geschrieben:
Danke

Aber wie muss die stelle heißen?

ausblenden Delphi-Quelltext
1:
MyStream := Ini.ReadBinaryStream('Richedits','Richedit1','');					

das ist die umkehrung von
ausblenden Delphi-Quelltext
1:
Ini.WriteBinaryStream('Richedits','Richedit1',MyStream);					


(imom kommt fehlermeldung:
ausblenden Delphi-Quelltext
1:
[Fehler] Unit1.pas(5178): Inkompatible Typen: 'TStream' und 'String'					


Der Fehler ist, dass du beim Lesen als Standardwert '' also einen leeren String übergibst, da meckert der Compiler natürlich.
Vielleicht klappt es einfach mit nil.

(Sorry für langes Zitat)

Es heißt

ausblenden Delphi-Quelltext
1:
Ini.ReadBinaryStream('Richedits', 'Richedit1', MyStream);					

Streams werden nie irgendwie mit Rückgabewerten verwaltet, sondern immer als Parameter übergeben. Die Prozedur kann dann über das Stream-Objekt in den Stream schreiben.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 14:41 
hmm irgentwas klappt noch nicht ganz. ich poste noch mal alles:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var // das ist wie man sieht das 'var' vor 'implementation'
  Form1: TForm1;
  Ini: TIniFile;
  MyStream:TMemoryStream;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.B_INI_WriteClick(Sender: TObject);
begin
//Ini.Write
//INI Datei anlegen
Ini :=TIniFile.Create(ExtractFilePath(ParamStr(0))+'INI\INI-Datei.ini');
//RE_News ist mein RichEdit
MyStream := TMemoryStream.Create;
RE_News.Lines.SaveToStream(MyStream);
Ini.WriteBinaryStream('Richedits','Richedit1',MyStream);
{...}
//INI.Write beenden
Ini.Free;
MyStream.Free;
end;


und

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.B_INI_ReadClick(Sender: TObject);
begin
//Ini.Read
//INI Datei initialisieren
Ini :=TIniFile.Create(ExtractFilePath(ParamStr(0))+'INI\INI-Datei.ini');
MyStream := TMemoryStream.Create;
Ini.ReadBinaryStream('Richedits', 'Richedit1', MyStream);
RE_News.Lines.LoadFromStream(MyStream);
{...}
Ini.Free;
MyStream.Free;
end;



MfG


Edit:Hmmm
In meiner INIFile steht:
ausblenden Quelltext
1:
2:
[Richedits]
Richedit1=

Obwohl ich was reingeschrieben und anschließend gespeichert hab.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 14.07.08 14:53 
user profile iconV!P3R hat folgendes geschrieben:
informationen von/für was?

Witzbold - Wie gesagt überdenke dein Konzept - 20 Richedits ... da läuft irgendetwas gegen den Baum.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 15:01 
Ja ich erinnere mich an den, der lieber unbekannt bleibt und wie man sagte "ca 800 Editfelder" benutze. zugegeben man kann das was ich mache sicherlich professioneller machen, aber ich habe 20 memos, diese memos sollen eine art merkzettel darstellen, die man an eine "virtuelle" pinnwand heften kann, da ich schon mal ein problem mit ähnlichem hatte (damals wars ein TShape) hab ich einfach 20 einzelne memos gemacht, man sieht an den zeilenangaben der fehler, die delphi gemeldet hat, das das jetzt ziemlich ausartet, aber noch funktioniert alles -> bis auf die probleme dich ich hier reinschreib...

MfG
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Mo 14.07.08 15:41 
Aber ich werds jetzt doch mit SaveToFile machen, in eine word-seite, damit die Fonts gespeichert werden

wenn jemand noch ne idee zum stream hat, ich wäre dankbar.

aber trotzdem: an alle vielen dank!

MfG

Edit: hab grade bemerkt das der Font (auch die Farbe usw) auch im .txt format gespeichert werden.

MfG
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 14.07.08 15:50 
Nichts für ungut aber dir scheinen so gut wie alle Grundkentnisse zu fehlen vieleicht solltest du dir noch einige Tutorials reinziehen die hier im DF zu finden sind. :wink:

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)