![]() |
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 ? |
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)
|
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. |
Danke Leute !
Ich werd dann wohl lieber die zweitere methode verwenden da ich das ganze für nen Schuss brauch ! |
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:
Wennn ich jetzt aber compiliere gibt es in der zweiten zeile eine fehlermeldung!:
WebBrowser12.Create(true);
Webbrowser12.Top:=368; WebBrowser12.Left:=8; WebBrowser12.Width:=201; WebBrowser12.Height:=97; . . . . . WebBrowser12.destroy; for loop control variable mus be simple local Variable Kann mir da vielleicht jemand helfen? cu masters001 |
Ü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.
|
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.
|
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:
Aber das will auch nicht so recht funktionieren.
WebBrowser12.destroy;
WebBrowser12.Create(self); Webbrowser12.Top:=368; WebBrowser12.Left:=8; WebBrowser12.Width:=201; WebBrowser12.Height:=97; 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? |
Delphi-Quellcode:
var
wb : TWebBrowser; begin wb := TWebBrowser.Create(self); |
Code:
Das funktioniert so weit, aber der Browser wird irgendwie nicht angezeigt?
WebBrowser12:= TWebBrowser.Create(self);
WebBrowser12.show; Webbrowser12.Top:=368; WebBrowser12.Left:=8; WebBrowser12.Width:=201; WebBrowser12.Height:=97; WebBrowser12.show; |
Du hast den Parent noch nicht gesetzt!
|
Hi
so?:
Code:
Ich mach das das erste mal, mit dme objekt erstellen. kannst du mir vielleicht noch ein bisschen weiterhelfen?
WebBrowser12.Parent..... (und dann)
Was bedeutet IDispatch? MFG masters001 |
Delphi-Quellcode:
Zum Bleistift.
WebBrowser1.Parent := Form1;
|
Dispatch habe ich selbst noch nie verwendet, da kann ich Dir nicht weiterhelfen.
Mit dem Parent sollte es so gehen, wenn Du die Komponente auf Form1 anzeigen willst:
Code:
MfG,
WebBrowser12.Parent:=Form1;
Peter |
Ich denk mal ich geh euch schon auf die nerven mit dem Kram, aber es funktioniert immmer noch nicht!
Code:
Jetzt kommt die Fehlermeldung:
WebBrowser2.Hide;
WebBrowser12:= TWebBrowser.Create(self); WebBrowser12.show; Webbrowser12.Top:=368; WebBrowser12.Left:=8; WebBrowser12.Width:=201; WebBrowser12.Height:=97; WebBrowser12.show; WebBrowser12.Parent:=Form1; Cannot assign to a read-only property |
Zitat:
Ein einfacher Cast hilft: TWinControl(WebBrowser12).Parent := Form1; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr. |
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