Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Create oder enabled := true? (https://www.delphipraxis.net/3791-create-oder-enabled-%3D-true.html)

braingrenade 30. Mär 2003 15:13


Create oder enabled := true?
 
Moin leute !

Also , ich hab ein array von nem Object und nun ist die frage was mir mehr Perfomance bringt :

1. Ich create jedes object dann wenn es gebraucht wird und destroye es wieder sobald ich's nicht mehr brauche.

oder

2. Ich create die objecte von Anfang an alle und setzte enabled auf true sobald eines gebraucht wird und wieder auf false wenn ich's nicht mehr brauche.


Oder macht das keinen Unterschied ?

jbg 30. Mär 2003 16:08

Wenn du die Instanzen sehr häufig zuerstörst und wieder erzeugst, dann ist das mit dem Enabled Status schneller. (Mit "sehr häufig" meine ich auch sehr häufig)

Chewie 30. Mär 2003 16:09

Das erstere ist auf jeden Fall viel rechenintensiver, wenn auch es u. U. weniger Speicherplatz benötigt. Bei jedem Create wird neuer Speicherplatz alloziert, dabeu kann es passieren, dass nachfolgender Speicherinhalt verschoben wird, was recht lange dauert.
Liegen allerdings Millionen von Objekten im Speicher, kann es mit dem RAM eng werden.

braingrenade 30. Mär 2003 19:42

Danke Leute !

Ich werd dann wohl lieber die zweitere methode verwenden da ich das ganze für nen Schuss brauch !

masters001 2. Mai 2003 14:23

Hallo ich habe noch eine Frage zum erstellen von objekten.

Ich brauche zu einer bestimmten zeit einen WebBrowser, und dieser soll später wieder destroyed werden!

Also hab ich das so: gemacht

Code:
    WebBrowser12.Create(true);
          Webbrowser12.Top:=368;
          WebBrowser12.Left:=8;
          WebBrowser12.Width:=201;
          WebBrowser12.Height:=97;
                    .
                    .
                    .
                    .
                    .
          WebBrowser12.destroy;
Wennn ich jetzt aber compiliere gibt es in der zweiten zeile eine fehlermeldung!:

for loop control variable mus be simple local Variable

Kann mir da vielleicht jemand helfen?
cu masters001

Chewie 2. Mai 2003 14:26

Übersetz es doch mal: "Die Schleifenvariable muss eine lokale Variable sein"; du hast also eine for-Schleife mit einer globalen Schleifenvariable. Deklarier diese Variale lokal.

Christian S. 2. Mai 2003 14:28

Hört sich so an, als hättest Du da eine Schleife drum herum, bei der Du eine falsche Variable verwendest! Die Schleifenvariable sollte eine lokale Variable der Prozedur / Funktion sein, in der Du die Schleife verwendest.

masters001 2. Mai 2003 14:42

Ich glaub das lag daran das ich tru genommen hab:
WebBrowser12.Create(true);
Ich hab das jetzt mal mit:
WebBrowser12.Create(self);
ausprobiert und es lässt sich compilieren.

Ich hab das jetzt ungefähr in diesem Ablauf:

Code:
WebBrowser12.destroy;

WebBrowser12.Create(self);
Webbrowser12.Top:=368;
WebBrowser12.Left:=8;
WebBrowser12.Width:=201;
WebBrowser12.Height:=97;
Aber das will auch nicht so recht funktionieren.
Ist diese Methode überhaupt richtig um ein Objekt zu erstellen, oder muss ich da noch irgendwas beachten?

bei mir gibts jetzt immer so einen Access violation... Fehler.

Ich will eigentlich nur, das der Browser kurz zerstört wird und dann wieder erstellt?

Luckie 2. Mai 2003 14:45

Delphi-Quellcode:
var
  wb : TWebBrowser;
begin
  wb := TWebBrowser.Create(self);

masters001 2. Mai 2003 15:11

Code:
    WebBrowser12:= TWebBrowser.Create(self);
          WebBrowser12.show;
          Webbrowser12.Top:=368;
          WebBrowser12.Left:=8;
          WebBrowser12.Width:=201;
          WebBrowser12.Height:=97;
          WebBrowser12.show;
Das funktioniert so weit, aber der Browser wird irgendwie nicht angezeigt?


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

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