AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Styls in ini oder änlich speichern?

Offene Frage von "dUSER.th"
Ein Thema von dUSER.th · begonnen am 20. Jun 2008 · letzter Beitrag vom 20. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
dUSER.th

Registriert seit: 19. Jun 2008
24 Beiträge
 
#1

Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 00:37
Hallo zusammen

ich habe da ein vermutlich kleines Problem wobei ich allerdings im Forum noch keine mögliche Antwort gefunden habe.

im oder auf einem Formular habe ich ein Panel "Panel1"
und möchte zur Laufzeit die Eigenschaften vom besagtem Panel in eine *.Ini oder ähnlicher Datei speichern.

>> Procedure:

procedure TForm1.FontDialog1Apply(Sender: TObject; Wnd: HWND);
begin
{Vorschau}
Panel1.Font.Name:= TFontDialog(Sender).Font.Name;
Panel1.Font.Size:= TFontDialog(Sender).Font.Size;
Panel1.Font.Color:= TFontDialog(Sender).Font.Color;
Panel1.Font.Style:= TFontDialog(Sender).Font.Style;
{Speichern}
Ini:= TIniFile.Create(GetApplicationDirectory + Form1.dPIX +'.css');
try
Ini.WriteString('Panel','Panel1FontName',Panel2.Fo nt.Name);
Ini.WriteInteger('Panel','Panel1FontSize',Panel2.F ont.Size);
Ini.WriteInteger('Panel','Panel1FontColor',Panel2. Font.Color);

//an dieser Stelle komme ich nicht weiter

Ini.____???_____('Panel','Panel1FontStyle',Panel2. Font.Style);

finally
ini.Free;
end;
end;

könnte mir jemand zu diesem Problem eine Unterstützung geben.
vielen Dank im vorraus

Detlef

ps: muss die Frage als offen markiert werden?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 05:39
Herzlich willkommen in der Delphi-PRAXiS, Detlef.

Vielleicht findest du in diesem Thread ein paar Lösungsansätze für dein Problem: Font-Attribute in INI-Datei speichern

Deinen Quellcode kannst du übrigens besser über den Delphi-Button im Beitragseditor kennzeichnen - einfach deinen Code markieren und den Button drücken wäre ein möglicher Weg.

Freundliche Grüße
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#3

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 05:43
Hallo und Herzlich Willkomen,

vielleicht hilft dir das hier weiter:


Ini.Writebool('Panel','Panel1FontColor',panel1.Font.Style=[fsbold]); Falls du die Werte auch wieder auslesen möchtest, kannst du die Eigenschaften wieder mit

panel1.Font.Style:=panel1.Font.Style+[fsbold]; setzen.

MFG
Steffen
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 09:00
Das würde ihm nicht weiterhelfen, wenn du mehr als ein Attribut gesetzt hast. Also eine fette und kursive Schrift würde mit deiner Lösung nicht abgespeichert werden.

Es ist eine Menge, somit ist kein Mitglied dieser Menge exklusiv darin enthalten. Siehe Delphi-Referenz durchsuchenin Operator, Delphi-Referenz durchsuchenInclude und Delphi-Referenz durchsuchenExclude
  Mit Zitat antworten Zitat
dUSER.th

Registriert seit: 19. Jun 2008
24 Beiträge
 
#5

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 10:47
Hallo zusammen,

vielen Dank für die Anregungen. Ich habe mir das Beste aus den Bsp. Rausgepickt
und meine Lösung mal hier eingebracht. Ist möglicherweise nicht die beste aber es
Funktioniert so weit.


procedure TForm1.FontDialog1Apply(Sender: TObject; Wnd: HWND);
begin
Panel2.Font.Name:= TFontDialog(Sender).Font.Name;
Panel2.Font.Size:= TFontDialog(Sender).Font.Size;
Panel2.Font.Color:= TFontDialog(Sender).Font.Color;
Panel2.Font.Style:= TFontDialog(Sender).Font.Style;
Ini:= TIniFile.Create(GetApplicationDirectory + Form1.dPIX +'.css');
try
Ini.WriteString('Panel','Panel2FontName',Panel2.Fo nt.Name);
Ini.WriteInteger('Panel','Panel2FontSize',Panel2.F ont.Size);
Ini.WriteInteger('Panel','Panel2FontColor',Panel2. Font.Color);
if (fsBold in TFontDialog(Sender).Font.Style)
then Ini.WriteBool('Panel','Panel2FontBold',True)
else Ini.WriteBool('Panel','Panel2FontBold',False);
if (fsItalic in TFontDialog(Sender).Font.Style)
then Ini.WriteBool('Panel','Panel2Italic',True)
else Ini.WriteBool('Panel','Panel2Italic',False);

finally
ini.Free;
end;

end;

Ausgelesen aus *.Ini ist ähnlich
...
for i:= 1 to 25 do begin
STE := TComponent(FindComponent('Panel' + IntToStr(i)));
Z := STE.ComponentIndex;
TPanel(Components[Z]).Height:= Ini.ReadInteger('Panel', dTEXT +'Height' ,0);
TPanel(Components[Z]).Width := Ini.ReadInteger('Panel', dTEXT +'Width' ,0);
TPanel(Components[Z]).Top := Ini.ReadInteger('Panel', dTEXT +'Top' ,0);
TPanel(Components[Z]).Color := Ini.ReadInteger('Panel', dTEXT +'Color' ,0);
TPanel(Components[Z]).Font.Size := Ini.ReadInteger('Panel', dTEXT +'FontSize' ,0);
TPanel(Components[Z]).Font.Color:= Ini.ReadInteger('Panel', dTEXT +'FontColor' ,0);
TPanel(Components[Z]).Font.Name := Ini.ReadString('Panel', dTEXT +'FontName' ,'');
TPanel(Components[Z]).Caption := Ini.ReadString('Texte', dTEXT ,'');
TPanel(Components[Z]).Font.Style:= [];
if Ini.ReadBool('Panel', dTEXT +'FontBold' ,False) = true
then TPanel(Components[Z]).Font.Style:= TPanel(Components[Z]).Font.Style + [fsBold]
else TPanel(Components[Z]).Font.Style:= TPanel(Components[Z]).Font.Style;
if Ini.ReadBool('Panel', dTEXT +'FontItalic' ,False) = true
then TPanel(Components[Z]).Font.Style:= TPanel(Components[Z]).Font.Style + [fsItalic]
else TPanel(Components[Z]).Font.Style:= TPanel(Components[Z]).Font.Style;
end;
...

Ich weis nicht, aber es gibt bestimmt auch noch schönere oder bessere Möglichkeiten.
Aber ich komme erst mal so weiter.

Ps: Das mit dem Code einfügen Funktioniert bei mir wohl nicht, deshalb habe ich
das Manuel gemacht. Sieht schon etwas Blöd aus.

Also vielen Dank Euch allen.
Gruß Detlef
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 10:58
Zitat von dUSER.th:

Ps: Das mit dem Code einfügen Funktioniert bei mir wohl nicht, deshalb habe ich
das Manuel gemacht. Sieht schon etwas Blöd aus.
Wie hast du es denn gemacht?
Thomas
  Mit Zitat antworten Zitat
dUSER.th

Registriert seit: 19. Jun 2008
24 Beiträge
 
#7

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 12:15
Im Delphi den gewünschten Code markiert und den Button "Delphi-Code" geklickt.
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 12:15
Statt

Delphi-Quellcode:
if (fsBold in TFontDialog(Sender).Font.Style)
then Ini.WriteBool('Panel','Panel2FontBold',True)
else Ini.WriteBool('Panel','Panel2FontBold',False);
kannst Du auch kürzer (und IMHO übersichtlicher)

Ini.WriteBool('Panel', 'Panel2FontBold', fsBold in TFontDialog(Sender).Font.Style); schreiben.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 12:18
Hallo dUSER.th!

Ein paar Anmerkungen zu deinem Code:

1. Bitte benutze die Tags. Danke!
2. Du speicherst nur Italic und Bold ab - aber was ist mit den anderen möglichen Typen?
3. Du vergleichst beim Auslesen auf true, das ist eine große Gefahrenquelle und ich empfehle dir diesen Vergleich so umzustellen, dass du den Vergleich auf true einfach weglässt. IF Bedingungen evaluieren immer auf true.
4. Du kannst den Schreibcode vereinfachen, da der In Operator automatisch ein boolsches Ergebnis der Abfrage liefert, kannst du diesen direkt in dem WriteBoolean() angeben beim Aufruf.
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Styls in ini oder änlich speichern?

  Alt 20. Jun 2008, 12:33
Du kannst das auch einfacher über Integer rausbekommen zb.
Caption:=IntToStr(integer(TFontStyle(Panel1.Font.style)));
Blackheart
  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 18:54 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