Thema: Delphi INI Fragen wie immer

Einzelnen Beitrag anzeigen

Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#29

Re: INI Fragen wie immer

  Alt 21. Sep 2007, 08:14
Also ic Poste mal meine ganze Form

ich bekomme immer dan einen Fehler wenn etwas auf eine andere Form zugreifen will(von Form3 auf Form6)

Bei allen auskommentierten sachen habe ich einen fehler
Delphi-Quellcode:
unit Unit6; // Laufschrift bearbeiten

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, MPlayer, JsRunningText, Spin,
  ColorGrd, IdBaseComponent,InIFiles, IdComponent, IdTCPConnection, IdTCPClient, IdTime;

type
  TForm6 = class(TForm)
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel4: TPanel;
    SpeedButton1: TSpeedButton;
    JsRunningText1: TJsRunningText;
    Memo1: TMemo;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label7: TLabel;
    ComboBox1: TComboBox;
    SpinEdit1: TSpinEdit;
    CheckBox1: TCheckBox;
    FontDialog1: TFontDialog;
    Button1: TButton;
    ColorDialog1: TColorDialog;
    Button5: TButton;
    IdTime1: TIdTime;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);


  private
  lauftext :TFileName;
  Laufschrift: TFileName;
 { Private-Deklarationen }
  public

  const
  laufschrifttext = 'Laufschrift';
  farbe = 'Farbehintergrund';
  stufe = 'Stufe';
  stufelaufschrift = 'stufelaufschrift';
  Richtung = 'Richtung';
  ein_aus = 'Ein/Aus';{ Public-Deklarationen }
  end;

var
  Form6: TForm6;



implementation

uses Unit2, Unit1, Unit11, Unit3;

{$R *.dfm}

procedure TForm6.FormCreate(Sender: TObject);
var i :integer;
begin
  for i:= 0 to ComponentCount-1 do //XP Anzeige
  if Components[i] is TPanel then (Components[i] as TPanel).ParentBackground:= False;

  Laufschrift := (ExtractFilePath(ParamStr(0)) + 'settings.ini');
  with TMemIniFile.Create(Laufschrift) do
  try
    JsRunningText1.Run:= ReadBool(laufschrifttext, ein_aus, JsRunningText1.Run);
    SpinEdit1.Value:= ReadInteger(Laufschrifttext ,stufe, SpinEdit1.Value);
    ComboBox1.ItemIndex:= ReadInteger(Laufschrifttext ,Richtung, ComboBox1.ItemIndex);
     if ComboBox1.ItemIndex = 1 then
      begin
        Combobox1.Text:= 'Rechts';
      end
     else
      begin
       Combobox1.Text:= 'Links';
      end;
   // JSRunningText1.Color:= StringToColor(ReadString(Laufschrifttext,farbe,JSRunningText1.Color);

 finally
    Free;
  end;
end;

//==============Speichern der ini bei schließen der Form=======================
procedure TForm6.FormDestroy(Sender: TObject);
begin
 Laufschrift := ExtractFilePath(ParamStr(0)) + 'settings.ini';
  begin
  with TMemIniFile.Create(Laufschrift) do
   try
     WriteInteger(laufschrifttext,stufe,SpinEdit1.Value);

     UpdateFile;
   finally
    Free;
  end;
end;
end;

procedure TForm6.FormShow(Sender: TObject);
begin
  Form6.Top:= 0;
  Form6.Left:= 0;



  lauftext:= ExtractFilePath(ParamStr(0)) +'Einstellungen\'+ 'Laufschrifttext.txt';
  Memo1.Lines.LoadFromFile(lauftext);

  Form6.DoubleBuffered:= True;

  JsRunningText1.Font.Size:= 12;
  JsRunningText1.AlwaysCenterText:= True;// text miitig setzen

  ComboBox1.ItemIndex:=0;

  Memo1.SetFocus;
end;

//========= Button Text bearbeiten===============================================
procedure TForm6.Button1Click(Sender: TObject);
begin
if Memo1.Text = 'then
  begin
   MessageDlgPos('Bitte zuerst Text eingeben!',mtInformation,[mbOk],0,260,200);
   Memo1.SetFocus;
  end
 else
   begin
    If FontDialog1.Execute then
     begin
      JsRunningtext1.Font:= Fontdialog1.Font;
      JsRunningText1.AlwaysCenterText:= True;

      Form3.JsRunningtext1.Font:= Fontdialog1.Font;
      Form3.JsRunningText1.AlwaysCenterText:= True;
     end;
   end;
end;

//=========Laufschrift einschalten==============================================
procedure TForm6.Button2Click(Sender: TObject);
begin
  Laufschrift := ExtractFilePath(ParamStr(0)) + 'settings.ini';
  with TMemIniFile.Create(Laufschrift) do
  try
    WriteBool(laufschrifttext,ein_aus,True);
    UpdateFile;
  finally
    Free;
  end;
 if JSRunningText1.Run = True then //Wenn Timer1 ein
   begin
    MessageDlgPos('Laufschrift ist eingeschaltet !',mtInformation,[mbOk],0,260,200);
   end
 else

    if Memo1.Text = 'then //Wenn Edit1 leer
      begin
       MessageDlgPos('Bitte zuerst Text eingeben!',mtInformation,[mbOk],0,260,200);
       Memo1.SetFocus; //Setze Focus auf Edit1
      end
    else
      begin
         lauftext:= ExtractFilePath(ParamStr(0)) +'Einstellungen\'+ 'Laufschrifttext.txt';
         Memo1.Lines.SaveToFile(lauftext); //in Datei speichern alleLehrer.txt

         JsRunningText1.Run:= True;
         JsRunningText1.Font.Size:= 12;
         JsRunningText1.AlwaysCenterText:= True;
         JsRunningText1.AlwaysCenterText:= True;

         Form3.JsRunningText1.Run:= True;
         Form3.JsRunningText1.Font.Size:= 18;
         Form3.JsRunningText1.Font.Style:= [fsBold];
         Form3.JsRunningText1.AlwaysCenterText:= True;
         Form3.Panel1.Visible:= True;
       end;
    end;

//=============Laufschrift ausschalten==========================================
procedure TForm6.Button3Click(Sender: TObject);
begin
  Laufschrift := ExtractFilePath(ParamStr(0)) + 'settings.ini';
  with TMemIniFile.Create(Laufschrift) do
  try
    WriteBool(laufschrifttext,ein_aus,False);

    UpdateFile;
  finally
    Free;
  end;
 if JSRunningtext1.Run = False then

  begin
   MessageDlgPos('Laufschrift ist bereits ausgeschaltet!',mtInformation,[mbOk],0,260,200);
  end

 else
   lauftext:= ExtractFilePath(ParamStr(0)) +'Einstellungen\'+ 'Laufschrifttext.txt';
    Memo1.Lines.SaveToFile(lauftext); //in Datei speichern alleLehrer.txt
     JsRunningText1.Run:= False;
       Form3.JsRunningText1.Run:= False;
          Label3.Visible:= False;
         Label4.Visible:= False;
     JSRunningText1.Color:= ClWhite;
  Form3.Panel1.Visible:= False;
end;

//=========Bedienungsanleitung aufrufen=========================================
procedure TForm6.SpeedButton1Click(Sender: TObject);
begin
 Form11.Show;
 Form11.Webbrowser1.Navigate('\Programme\ElInta\ElInta\Bedienungsanleitung.pdf');
end;

//===========Schließen==========================================================
procedure TForm6.Button4Click(Sender: TObject);
begin
  Form6.Close;
  Form2.Visible:= True;
end;

//========Text für die Laufschrift eingeben=====================================
procedure TForm6.Memo1Change(Sender: TObject);
begin
 JsRunningText1.Text:= Memo1.Lines;
 Form3.JsRunningText1.Text:= Memo1.Lines;
end;

//========Geschwindigkeit der Laufschrift ändern================================
procedure TForm6.SpinEdit1Change(Sender: TObject);
begin
    Form3.SpinEdit1.Value:= SpinEdit1.Value;
  // JsRunningText1.Steps:= SpinEdit1.Value; // Hier bekomme ich einen zugriffsfehler
end;

//=====Richtung für die Laufschrift ändern======================================
procedure TForm6.ComboBox1Change(Sender: TObject);
begin
 Laufschrift := ExtractFilePath(ParamStr(0)) + 'settings.ini';
  begin
   JsRunningText1.Direction:= TJsRunningTextDirection(ComboBox1.ItemIndex);
     with TMemIniFile.Create(Laufschrift) do
   try
     WriteInteger(laufschrifttext ,Richtung ,ComboBox1.ItemIndex);

     UpdateFile;
   finally
    Free;
  end;
   Form3.JsRunningText1.Direction:= TJsRunningTextDirection(ComboBox1.ItemIndex);
end;
end;
//===========Schaten für die Laufschrift========================================
procedure TForm6.CheckBox1Click(Sender: TObject);
begin
 JsRunningText1.Shadow.Visible:=CheckBox1.Checked;
 Form3.JsRunningText1.Shadow.Visible:=CheckBox1.Checked;
end;

//===========farben ändern======================================================
procedure TForm6.Button5Click(Sender: TObject);
begin
 Laufschrift := ExtractFilePath(ParamStr(0)) + 'settings.ini';
  begin
    with TMemIniFile.Create(Laufschrift) do
    try
     if Colordialog1.Execute then
       begin
        JSRunningText1.Color:= ColorDialog1.Color;
       // WriteInteger(laufschrifttext,farbe,ColorToInt(ColorDialog1.Color));
        Form3.JSRunningText1.Color:= ColorDialog1.Color;

        UpdateFile;
       end;
    finally
   Free;
  end;
 end;
end;
end.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat