Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponenten über Befehl erstellen (https://www.delphipraxis.net/81728-komponenten-ueber-befehl-erstellen.html)

inherited 2. Dez 2006 20:29

Re: Komponenter über Befehl erstellen
 
ohje, du versuchst mehrmals das selbe Bild zu createn, dann krachts, außerdem hast du begin und end um den if-Befehl vergessen.

rawsoul 2. Dez 2006 20:36

Re: Komponenter über Befehl erstellen
 
Achso ist das ;)

//edit: Ich kann das Bild öfters Createn. Ich denke, es lag an der Geschwindigkeit des Timers(50 ms), damit wahr wohl der Debugger überfordert ;) edit\\

Das begin / end ist nun wirklich ne doofe Sache gewesen *kopfaufdentischschlag*.

Jetzt funktioniert es super, danke Jungs und Mädels :)

[offtopic]Find's erstaunlich, wie schnell man hier beholfen ist, und das ohne, dass jemand sagt 'Ist doch Kinder*k*a*c*k*e'. So kenn ich's von anderen Foren[/offtpic]

Balu der Bär 2. Dez 2006 20:37

Re: Komponenter über Befehl erstellen
 
Zitat:

[offtopic]Find's erstaunlich, wie schnell man hier beholfen ist, und das ohne, dass jemand sagt 'Ist doch Kinder*k*a*c*k*e'. So kenn ich's von anderen Foren[/offtpic]
Das macht dieses Forum aus. :love: ;)

inherited 2. Dez 2006 20:43

Re: Komponenter über Befehl erstellen
 
WHAAAA Balu hat ein neuen Avatar :duck: (OT)^^
Die Nettigkeit wird durch folgendes hervorgerufen:
-Nette User
-Nette Moderatoren die alles löschen was nicht nett ist^^
-Ein netter Admin der jeden zusammen****** der nicht nett ist->unnetter user geht oder wird zum netten user xD

DGL-luke 2. Dez 2006 20:51

Re: Komponenter über Befehl erstellen
 
Zitat:

Zitat von rawsoul
//edit: Ich kann das Bild öfters Createn.

Datt is aber gar nicht gut. Wenn du einen Konstruktor aufrufst, gibt er dir den Zeiger (die Speicheradresse, wo das Objekt liegt, sozusagen dein einziger Angreifpunkt) des Objekts zurück. Den speicherst du dir in Test. Wenn du jetzt eine neue Instanz auf test erstellst, verlierst du die alte - si wird zwar immer noch da sein, aber du hast keine Chance, sie wiederzuholen, um auf sie zuzugriefen oder sie zu löschen (OK, es geht über Owner.FindComponent). Und das ist schlecht. Das Objekt liegt dann nämlich - auch wenn du es schon lange nicht mehr brauchst - nutzlos im Speicher und verbraucht Arbeitsspeicher.

rawsoul 3. Dez 2006 00:14

Re: Komponenter über Befehl erstellen
 
Zitat:

Zitat von inherited
WHAAAA Balu hat ein neuen Avatar (OT)^^
Die Nettigkeit wird durch folgendes hervorgerufen:
-Nette User
-Nette Moderatoren die alles löschen was nicht nett ist^^
-Ein netter Admin der jeden zusammen****** der nicht nett ist->unnetter user geht oder wird zum netten user xD

*grins*

Zitat:

Zitat von DGL-luke
Datt is aber gar nicht gut. Wenn du einen Konstruktor aufrufst, gibt er dir den Zeiger (die Speicheradresse, wo das Objekt liegt, sozusagen dein einziger Angreifpunkt) des Objekts zurück. Den speicherst du dir in Test. Wenn du jetzt eine neue Instanz auf test erstellst, verlierst du die alte - si wird zwar immer noch da sein, aber du hast keine Chance, sie wiederzuholen, um auf sie zuzugriefen oder sie zu löschen (OK, es geht über Owner.FindComponent). Und das ist schlecht. Das Objekt liegt dann nämlich - auch wenn du es schon lange nicht mehr brauchst - nutzlos im Speicher und verbraucht Arbeitsspeicher.

hm... also sollte ich jede instanz / jede komponente die ich erzeuge anders nennen, oder wie habe ich das zu sehen?

inherited 3. Dez 2006 10:04

Re: Komponenter über Befehl erstellen
 
Ja, am Besten mit einem Dynamischen Array
Delphi-Quellcode:
var
  Bilderchen: Array of TImage;

...

if getasynckeystate(vk_up) < 0 then
begin
  SetLength(Bilderchen, High(Bilderchen)+2);
  bilderchen[high(Bilderchen)]:=timage.create(self);
  with bilderchen[high(bilderchen)] do
  begin
    parent:=self;
    top:=markerimage.top;
    left:=markerimage.left;
    picture.loadfromfile('gfx\decal3.bmp');
  end;
end;

rawsoul 3. Dez 2006 13:44

Re: Komponenter über Befehl erstellen
 
Super, danke für den Tipp!

Es funktioniert so zwar super, aber schlau werde ich daraus trotzdem nicht, und ich möchte behaupten, das hilft mir nicht sehr viel weiter. Die einzelnen Befehle seien in der OH wieder nicht zu finden, sagt mir Delphi :(
Magst du den Codeschnipsel vielleicht kommentieren? *liebguck*

Lg,
Frank.

inherited 3. Dez 2006 14:03

Re: Komponenter über Befehl erstellen
 
Naja, weil du es bist^^
Allerdings musst du mir noch sagen, was du nicht verstehts. Was Arrays sind? was das mit dem with x do ist oder was?

rawsoul 3. Dez 2006 14:12

Re: Komponenter über Befehl erstellen
 
Hehe :mrgreen:

Arrays sind - soweit ich weiß - Variablen, welche in begrenzten Bereichen gelten. Falls ich mich irre, bitte korrigieren.
Jetzt verstehe ich nicht so ganz, was genau dynamische Arrays genau sind und wie das with x do zu verstehen ist. Ist's ne Schleife?

Den Teil mit
Delphi-Quellcode:
SetLength(Bilderchen, High(Bilderchen)+2);
habe ich auch noch nicht ganz verstanden. Vergrößert er den Bereich des Arrays um 2?


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

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