Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Speicher-Fehler beim create (https://www.delphipraxis.net/196156-speicher-fehler-beim-create.html)

Rollo62 27. Apr 2018 07:46

AW: Speicher-Fehler beim create
 
Kann es sein das TatCustomScripter nicht zum diretken Createn gedacht ist, weil sie evtl. abstrakte Methoden enthält ?


Rollo

KodeZwerg 27. Apr 2018 08:00

AW: Speicher-Fehler beim create
 
TMS Scripter hier kann man sich Beispiele runterladen die einem hoffentlich zeigen wie es korrekt funktioniert.
workingwithscripter hier landest Du bei der Beschreibung der Script-Klassen und Methoden.

Viel Erfolg!

freimatz 27. Apr 2018 08:06

AW: Speicher-Fehler beim create
 
RTF :-)

Habe selber mal gegoogelt weil ich wissen wollte was das ist.

http://www.tmssoftware.biz/business/...b/overview.htm
TatScripter, TatPascalScripter, TatBasicScripter and TIDEScripter (in this document, all of these componentes are just called Scripter) descend from TatCustomScripter component, which has common properties and methods for scripting execution. The scripter has the following main features:
(Fett von mir)

BTW: Selber tue ich mir TMS nur an wenn es sein muss. TMS ist ein gutes Paket - um als Beispiel für schlechten Quellcode zu dienen.

Ykcim 30. Apr 2018 14:54

AW: Speicher-Fehler beim create / Externe Config_Datei
 
Hallo Zusammen,

war gesundheitlich außer Gefecht gesetzt, daher die späte Antwort...

Ich habe das ein oder andere versucht, aber die Komponente scheint mir nicht schwierig zu lernen zu sein.
Daher frage ich mal anders:

Wenn Ihr Konfigurationen Eures Programm nicht in den HardCode und auch nicht in die DB legen wollt, sondern eine Config-Datei (vielleicht *.txt), wie macht Ihr das dann?

Vielen Dank
Patrick

Alallart 30. Apr 2018 15:11

AW: Speicher-Fehler beim create
 
Ini oder Registry. Da gibt es zum Beispiel TIniFile, TRegistry, TRegIniFile, TStringList, u.v.a.

Ykcim 3. Mai 2018 16:35

AW: Speicher-Fehler beim create
 
Hallo Zusammen,
hat jemand mal ein einfaches Beispiel, wie so etwas funktioniert?
Wenn ich z.B. die Schrift von einem Memo-Feld ändern möchte, wie müsste ich das mit einer externen Datei machen?
Delphi-Quellcode:
Memo1.Font.Size:=12;


Oder wie kann ich eine Print-Procedure in eine externe Datei auslagern?
Delphi-Quellcode:
procedure TForm_Main.Etikett_drucken;
var  R: TRect;
      Links, Oben: integer;
begin
   Links:=50;
   Oben:=100;
   Printer.BeginDoc;
   //Printer.NewPage;
   Printer.Title:='Ausweis';
   Printer.Canvas.StretchDraw(rect(Links,Oben,1550,140+Oben),Image_Logo.Picture.Graphic);
   Printer.Canvas.Font.Size := 12; // Schriftgröße 15
   Printer.Canvas.Font.Name := 'Verdana'; // Schriftart Verdana
   Printer.Canvas.Font.Style:=[fsUnderline];
   Printer.Canvas.TextOut(Links, Oben+150, 'Besucher-Ausweis');
   Printer.Canvas.Font.Size := 12; // Schriftgröße 12
   Printer.Canvas.Font.Style:=[fsBold];
   Printer.EndDoc;
Ich habe hier keine Idee - kann mir jemand einen Hinweis/MiniBeispiel geben?
Vielen Dank

Patrick

KodeZwerg 3. Mai 2018 16:48

AW: Speicher-Fehler beim create
 
ini-dateien sollten Dir helfen.

Alallart 3. Mai 2018 19:31

AW: Speicher-Fehler beim create
 
Weil ich gerade etwas Zeit habe, das mit Font.Styles etwas kompliziert ist, und ich zufällig ein fertiges Beispiel habe

Delphi-Quellcode:
uses
  IniFiles;

const
  //Wenn man für Sections und Idents Konstanten nimmt, schleichen sich später keine Fehler ein
  SecOptions = 'Options';
  IdFontName = 'FontName';
  IdFontSize = 'FontSize';
  IdFontStyle = 'FontStyle';
  SecInfo    = 'Info';
  IdText1     = 'Text1';
  IdZahl1     = 'Zahl1';

procedure TForm1.Button1Click(Sender: TObject); //in eine Ini Daten speichern
var
  IniPath: String;
  IniFile: TIniFile;
  fsTemp: Byte;
  FontStyles: TFontStyles;
begin
  //Programmpfad als Grundlage für die Ini-Datei nehmen.
  IniPath := ChangeFileExt(ParamStr(0), '.ini');

  IniFile := TIniFile.Create(IniPath);
  try
    IniFile.WriteString(SecOptions, IdFontName, Canvas.Font.Name);
    IniFile.WriteInteger(SecOptions, IdFontSize, Canvas.Font.Size);
    FontStyles := Canvas.Font.Style; //Dieser Umweg für FontStyles ist nötig
    System.Move(FontStyles, fsTemp, 1); //FontStyles zum Byte-Wert konvertieren
    IniFile.WriteInteger(SecOptions, IdFontStyle, fsTemp);

    IniFile.WriteString(SecInfo, IdText1, 'Hallo Welt');
    IniFile.WriteInteger(SecInfo, IdZahl1, 42);
  finally
    IniFile.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject); //aus einer Ini Daten landen
var
  IniPath: String;
  IniFile: TIniFile;
  fsTemp: Byte;
  FontStyles: TFontStyles;
  s: String;
  i: Integer;
begin
  //Programmpfad als Grundlage für die Ini-Datei nehmen.
  IniPath := ChangeFileExt(ParamStr(0), '.ini');

  IniFile := TIniFile.Create(IniPath);
  try
    Canvas.Font.Name := IniFile.ReadString(SecOptions, IdFontName, 'Arial'); //Arial=Defaultwert
    Canvas.Font.Size := IniFile.ReadInteger(SecOptions, IdFontSize, 10); //10=Defaultwert
    fsTemp := IniFile.ReadInteger(SecOptions, IdFontStyle, 0); //Dieser Umweg ist nötig
    System.Move(fsTemp, FontStyles, 1); //SizeOf?
    Canvas.Font.Style := FontStyles;

    s := IniFile.ReadString(SecInfo, IdText1, 'Hier ein Ersatztext im Fall eines Fehlers eingeben');
    i := IniFile.ReadInteger(SecInfo, IdZahl1, -1); //-1 ist der Ersatzwert im Fall eines Fehlers

    ShowMessage(Format('Der Text ist: "%s"; Die Zahl ist: %d', [s, i]));
  finally
    IniFile.Free;
  end;
end;

Ykcim 4. Mai 2018 14:03

AW: Speicher-Fehler beim create
 
Vielen Dank!

Ich werde es mir vornehmen und versuchen, es nachzuvollziehen!

Besten Gruß!
Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.
Seite 2 von 2     12   

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