Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

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 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 01:20 Uhr.
Seite 6 von 6   « Erste     456   

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