![]() |
Eigene Deklaration
Hallo,
ich habe erst kürzlich mit Delphi angefangen. Jetzt wollte ich mir ein Programm schreiben, das Text aus einer Memo-Komponente ausliest und in eine ini-Satei schreibt. Diese Funktion möchte ich aber 2mal aufrufen: 1. Beim KLicken auf einen Button 2. Beim Beenden des Programmes Es war auch kein Problem, die entsprechenden Zeilen Quelltext zu schreiben
Delphi-Quellcode:
Genau die selbe Methode rufe ich auch über einen Button auf:
procedure TFmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var I: integer; var ini: Tinifile; begin while Metext.Lines.Count < 46 do begin metext.Lines.Add(''); end; ini := tinifile.Create('C:\ToDoJH.ini'); try for I := 0 to 46 do ini.WriteString('ToDoMemo',IntToStr(i),metext.Lines[i]); finally ini.Free; end; end;
Delphi-Quellcode:
Das wird auf die Dauer sehr unübersichtlich, wenn alles doppelt und dreifach im Quelltext erscheint. :gruebel:
procedure TFmMain.Load1Click(Sender: TObject);
var i: integer; var ini: Tinifile; begin while MeText.Lines.Count < 46 do begin MeText.Lines.Add(''); end; ini:=tinifile.Create('c:\ToDojH.ini'); try for i := 0 to 46 do begin Metext.Lines[i] := ini.ReadString('ToDoMemo',IntToStr(i),''); end; finally ini.Free; end; end; Jetzt habe ich von einem Freund gehört, dass man diesen Teil auch als eingene Metthode deklarieren kann. Wäre nett, falls mit jemand erklären könnte, wie das gemeint war. Johannes :coder2: |
Re: Eigene Deklaration
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } p : integer; procedure SagHallo; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin SagHallo; end; procedure TForm2.FormCreate(Sender: TObject); begin SagHallo; end; Procedure TForm2.SagHallo; begin ShowMessage('Hallo'); end; end. |
Re: Eigene Deklaration
Du schreibst deinen Quelltext in eine eigene Prozedur und rufst diese auf:
Delphi-Quellcode:
// EDIT:
type
TFmMain = class... ... private procedure SaveToFile(FileName: String); end; implementation procedure TFmMain.SaveToFile(FileName: String); var i: Integer; ini: TIniFile; begin while Metext.Lines.Count < 46 do begin metext.Lines.Add(''); end; ini := tinifile.Create(FileName); try for i := 0 to 46 do ini.WriteString('ToDoMemo', IntToStr(i), metext.Lines[i]); finally ini.Free; end; end; procedure TFmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin SaveToFile('C:\ToDoJH.ini'); end; Wobei ein absolutes Verzeichnis schlecht ist. An das Verzeichnis deiner Exe kommst du mit ExtractFilePath(ParamStr(0)), das ist zwar auch nicht optimal, aber besser als es direkt unter c: zu legen. |
Re: Eigene Deklaration
Delphi-Quellcode:
procedure TFmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin for I := 0 to 46 do ini.WriteString('ToDoMemo',IntToStr(i),metext.Lines[i]); end; Zitat:
Delphi-Quellcode:
doch nicht gleich ...
procedure TFmMain.Load1Click(Sender: TObject);
begin for i := 0 to 46 do begin Metext.Lines[i] := ini.ReadString('ToDoMemo',IntToStr(i),''); end; end; |
Re: Eigene Deklaration
wie wäre es so?
Delphi-Quellcode:
procedure TFmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var I: Integer; ini: TIniFile; begin ini := tinifile.Create('C:\ToDoJH.ini'); try ini.WriteInteger('ToDoMemo', 'count', Metext.Lines.Count); for i := 0 to Metext.Lines.Count - 1 do ini.WriteString('ToDoMemo', IntToStr(i), metext.Lines[i]); finally ini.Free; end; end; procedure TFmMain.Load1Click(Sender: TObject); var i: Integer; ini: TIniFile; begin ini := tinifile.Create('c:\ToDojH.ini'); try i := ini.ReadInteger('ToDoMemo', 'count', 0); for i := 0 to i - 1 do Metext.Lines.Add(ini.ReadString('ToDoMemo', IntToStr(i), '')); end; finally ini.Free; end; end; |
Re: Eigene Deklaration
psst himitsu lies doch nochmal den ersten Beitrag.... "Metthode deklarieren" nicht "Code verbessern" :-D
|
Re: Eigene Deklaration
Hallo,
erst mal vielen Dank dafür. Ich hatte nicht damit gerechnet, dass es so schnell geht. :) Ich werde das jetzt entsprechend eurer Hinwiese ändern. Das gleiche funktioiniert dovh auch beim umbennen von Menüpunkten, oder?
Delphi-Quellcode:
Falls nicht, was müsste ich da machen, ich meine Parameter?
private
procedure Deutsch; ... procedure TFmMain.Deutsch; begin Label1.Caption := 'Hallo'; Label2.Caption := 'Auto'; end Johannes @Nersgatt Ich kann alles nachvollziehen, aber nicht, wofür die variable p verwendet/benötigt wird. //EDIT Ich habe falsche Quelltextteile unter falschen Namen gepostet ... Sorry, :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz