Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Funktionen und Zeiger (https://www.delphipraxis.net/45788-funktionen-und-zeiger.html)

tobias2207 12. Mai 2005 11:07


Funktionen und Zeiger
 
Hi,

ich habe mir ne suchfunktion geschrieben die als parameter nen boolean wert bekommt, und andauernd prüft ob dieser Wert auf False gesetzt ist - um die suche zu beenden. leider klappt das nicht weil er ja irgendwie nur den wert des booleans und nicht dessen speicheraddresse zurückgibt..

jetzt hab ich mir überlegt der funktion einen zeiger zu übergeben, was allerdings auch nicht klappt..

kann ich die funtkion so schreiben, das sie einen zeiger erwartet?


mfg

tobias

alcaeus 12. Mai 2005 11:10

Re: Funktionen und Zeiger
 
Hallo Tobias,

Zitat:

Zitat von tobias2207
ich habe mir ne suchfunktion geschrieben die als parameter nen boolean wert bekommt, und andauernd prüft ob dieser Wert auf False gesetzt ist - um die suche zu beenden.

Wenn ich dich richtig verstanden habe verwendest du derzeit call-by-value:
Delphi-Quellcode:
function DoSomething(SomeVar: SomeType): SomeType;
Du brauchst Call-By-Reference:
Delphi-Quellcode:
function DoSomething(var SomeVar: SomeType): SomeType;
Allerdings versteh ich nicht ganz genau was du machen willst. Zeig evtl. mal ein bisschen Source ;)

Greetz
alcaeus

tobias2207 12. Mai 2005 11:16

Re: Funktionen und Zeiger
 
Delphi-Quellcode:
FindFilesAndPathes1(
                   const Path, Mask    : TStrings;
                   const Attributes    : integer;
                   const IncludeSubDir : boolean;
                   var  FoundFilenames : TStrings;
                         StopSearch    : boolean=false;//Möglichkeit des Abbruchs
                         //Sollte globale Variable sein //Abbruch Variable
                         StopIt        : boolean=false): integer;

 for i:=0 to Path.count-1 do
  begin
    if StopSearch then
      Application.ProcessMessages;
    if StopIt then break; //Suche vom Benutzer abgebrochen
    Path[i] := IncludeTrailingPathDelimiter(Path[i]);
   
...
...
...
danke für deine hilfe erstmal.. hab beides versucht, klappt nicht.. ich möchte das die schleife alle verzeichnisse durchsucht, wenn der benutzer zwischendurch auf abbrechen drückt soll die such e(schleife) beendet werden).

Dann soll ich sagen können: StopIt := False - und da ich die globale var stopit ja geändert habe sollte die suche beendet werden..das klappt leider nicht, deshalb möchte ich versuchen, das die die funktion einen zeiger erwartet..

mfg

tob

Kroko1999 12. Mai 2005 11:22

Re: Funktionen und Zeiger
 
Delphi-Quellcode:
FindFilesAndPathes1(
                   const Path, Mask    : TStrings;
                   const Attributes    : integer;
                   const IncludeSubDir : boolean;
                   var  FoundFilenames : TStrings;
                         StopSearch    : boolean=false;//Möglichkeit des Abbruchs
                         ): integer;

 for i:=0 to Path.count-1 do
  begin
    if StopSearch then
      Application.ProcessMessages;
    if StopIt then break; //Suche vom Benutzer abgebrochen
    Path[i] := IncludeTrailingPathDelimiter(Path[i]);
   
...
...
...
wenn StopIt eine Globale Variable ist
Achtung: Was ist wenn Path.Count=0 ist :?:

tobias2207 12. Mai 2005 11:55

Re: Funktionen und Zeiger
 
hi kroko1999,

stop it ist eine Globale Variable, wird aber trotzdem nicht gesetzt, argh..

mfg

tob

Steve 12. Mai 2005 12:04

Re: Funktionen und Zeiger
 
Hi,
Zitat:

Zitat von tobias2207
stop it ist eine Globale Variable, wird aber trotzdem nicht gesetzt, argh..

haste StopIt aus der Parameterliste der Funktion rausgenommen?

Gruß
Stephan :dance:


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