Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String an procedure übergeben (https://www.delphipraxis.net/63501-string-procedure-uebergeben.html)

smartmod 19. Feb 2006 23:08


String an procedure übergeben
 
Hallo,

ich bin eher noch in den Anfängen der Delphi Programmierung und habe ein Problem:

Ich will in einer Listbox einen Log darstellen.
Gleichzeitig soll jedesmal, wenn der Listbox ein Eintrag hinzugefügt wurde, der Eintrag auch in ein Logfile geschrieben werden. Um mir da unnötig Zeilen zu ersparen, wollte ich das so machen:

Delphi-Quellcode:
function WriteLog(LogString: String): Integer;
var
  f: TextFile;
begin
 {$IOChecks OFF}
  AssignFile(f, ExtractFilePath(ParamStr(0))+LOGFILE);
  if FileExists(ExtractFilePath(ParamStr(0))+LOGFILE) then
    Append(f)
  else
    Rewrite(f);
  Writeln(f, LogString);
  CloseFile(f);
  result := GetLastError();
 {$IOCHECKS ON}
end;

procedure LBWrite(LogText: String);

begin
    Form1.ListBox1.Items.Add(DateToStr(Now)+' '+TimeToStr(Now)+': '+LogText);
    Form1.ListBox1.TopIndex := Form1.ListBox1.Items.Count-1;
    WriteLog(DateToStr(Now)+' '+TimeToStr(Now)+': '+LogText);
end;
Die Procedure möchte ich dann mit
Delphi-Quellcode:
LBWrite('Das ist der Text, der reingeschrieben wird');
aufrufen.

Das geht aber irgendwie nicht. Weiß jemand Rat? Vielen Dank schonmal!

tomaten 19. Feb 2006 23:17

Re: String an procedure übergeben
 
Also mit "geht nicht" wird Dir kaum einer helfen können! Btw. warum machst Du nicht direkt DateTimeToStr(Now)?

smartmod 19. Feb 2006 23:25

Re: String an procedure übergeben
 
Hmmm... Ja hast recht, das wäre einfacher.

Geht nicht heißt: Er gibt mir folgende Fehlermeldung(en):

Zitat:

[Warning] Unit1.pas(7): W1005 Unit 'FileCtrl' is specific to a platform
[Error] Unit1.pas(41): E2065 Unsatisfied forward or external declaration: 'TForm1.LBWrite'
[Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas'
Die Procedure ist deklariert als:

Delphi-Quellcode:
procedure LBWrite(LogText: String);
EDIT: Alles klar, jetzt gehts. Ich musste die Procedure nur als TForm1.LBWrite... deklarieren. Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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