Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion erstellen (https://www.delphipraxis.net/26182-funktion-erstellen.html)

Rackergen2 20. Jul 2004 17:00

Re: Funktion erstellen
 
Feinfein... werde ich mir angewöhnen... Ich hab bis jetzt nie Variablen freigegeben, da meine Programme nicht allzu groß wurden...

Matze 20. Jul 2004 17:03

Re: Funktion erstellen
 
Scheifen wir eigentlich grad irgendwie vom Ursprungsthema ab? :gruebel:

Wenn du nie Speicher freigibst und dein programm öfters startest und beendest, dann ist dein Speicher irgendwann mal recht voll. ;)
Deshalb: Speicher immer freigeben.[i]

shmia 20. Jul 2004 17:16

Re: Funktion erstellen
 
Zitat:

Zitat von Rackergen2
Es ist ja schön, dass du das machst, aber in diesem Fall ist es einfach UNNÖTIG!

Wenn ich mich hier mal einmischen darf:
Matze hat Recht :thuimb: und Rackergen2 hat Unrecht. :pale:
siehe: http://www.delphipraxis.net/internal...t.php?p=206667

Matze 20. Jul 2004 18:13

Re: Funktion erstellen
 
Danke shmia! :)

Deine Sünde Nr. 5 kenn ich doch irgendwo her. :lol: ;)

Rackergen2 20. Jul 2004 18:54

Re: Funktion erstellen
 
Zitat:

Zitat von shmia
Zitat:

Zitat von Rackergen2
Es ist ja schön, dass du das machst, aber in diesem Fall ist es einfach UNNÖTIG!

Wenn ich mich hier mal einmischen darf:
Matze hat Recht :thuimb: und Rackergen2 hat Unrecht. :pale:
siehe: http://www.delphipraxis.net/internal...t.php?p=206667

DU hast Unrecht! Ich hatte nie vor, die Ressource zu schützen, zumindest nicht in dem Quellcode...

Matze 20. Jul 2004 18:56

Re: Funktion erstellen
 
Zitat:

Zitat von Rackergen2
DU hast Unrecht! Ich hatte nie vor, die Ressource zu schützen, zumindest nicht in dem Quellcode...

Shmia hat Recht. ;)

Deine Aufgabe ist es, das Programm so zu gestalten, dass die Resourcen geschützt werden. Das ist immer so und sollte man auch nie vergessen.

Rackergen2 20. Jul 2004 19:20

Re: Funktion erstellen
 
Das hatte ich aber nicht bezwecken wollen... das try..except ist nicht zum Schutz da, sondern zum Übergeben von Resultaten.

Wenn jemand meine Kompetenz auf diese fiese, hinterlistige und falsche Weise in Frage stellt, kann ich sehr sehr böse werden!

Aenogym 20. Jul 2004 22:46

Re: Funktion erstellen
 
okay,

das try..except war bei dir nicht zum schutz da... das sollte es aber sein!
(bitte werd nicht böse, wir sind doch alle zivilisierte menschen. sicher hat man dich nur falsch verstanden...)

Aenogym

Rackergen2 20. Jul 2004 23:05

Re: Funktion erstellen
 
OK, vergesst meinen Code und macht, was ihr denkt... Aber meine Kompetenz stellt man nur einmal in Frage... ;)

Sharky 21. Jul 2004 06:49

Re: Funktion erstellen
 
Hai ihr,

bleibt doch bitte beim Thema der Frage (welche aber ja wohl beantwortet ist).

Rackergen2 21. Jul 2004 07:51

Re: Funktion erstellen
 
Jetzt muss er sich nur die beste Funktion aussuchen... also meine :D

sakura 21. Jul 2004 08:22

Re: Funktion erstellen
 
Jetzt greife ich mal kurz ein.

@Rackergen2: Ich bewundere Deinen Einsatz und Deinen Mut, den Du hier an den Tag legst. Allerdings muss ich Dich bitten etwas Deine Wortwahl und Deinen Hochmut zu zügeln.

@onlinehome: Ich würde Dir empfehlen Deine Methode createautorunfile entsprechend diesem Vorschlag anzupassen: http://www.delphipraxis.net/internal...=206457#206457

Ansonsten mache ich den Thread zu, damit es hier nicht zu weiteren Ausschreitungen kommt. Sollte onlinehome wünschen, daß ich diesen Thread wieder eröffne, sende mir bitte eine kurze PM.

@Rackergen2: Warum ist die genannte Lösung die sauberste? Ja, weil auch bei einem einfach Strings.Add verschiedene Exceptions auftreten können, hier ein paar Auszüge aus evtl. abgearbeiten Code-Abschnitten (während Du "nur" Add aufrufst):
Delphi-Quellcode:
procedure TStringList.Grow;
var
  Delta: Integer;
begin
  if FCapacity > 64 then Delta := FCapacity div 4 else
    if FCapacity > 8 then Delta := 16 else
      Delta := 4;
  SetCapacity(FCapacity + Delta);
end;

procedure TStringList.InsertItem(Index: Integer; const S: string; AObject: TObject);
begin
  Changing;
  if FCount = FCapacity then Grow;
  if Index < FCount then
    System.Move(FList^[Index], FList^[Index + 1],
      (FCount - Index) * SizeOf(TStringItem));
  with FList^[Index] do
  begin
    Pointer(FString) := nil;
    FObject := AObject;
    FString := S;
  end;
  Inc(FCount);
  Changed;
end;

procedure TStringList.Put(Index: Integer; const S: string);
begin
  if Sorted then Error(@SSortedListError, 0);
  if (Index < 0) or (Index >= FCount) then Error(@SListIndexError, Index);
  Changing;
  FList^[Index].FString := S;
  Changed;
end;
Sollte jemand Probleme oder Bauchschmerzen mit meinem Handlen oder Fragen zu oben geführtem Beweis haben, ihr wisst ja, wie man mir eine PM sendet ;)

* * * LOCKED * * *


...:cat:...

P.S.: Das Problem ist ja glücklicherweise gelöst :thumb:


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

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-2025 by Thomas Breitkreuz