AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ReDim - wie geht das bei Delphi???

Ein Thema von chrisyFIAE · begonnen am 6. Mai 2008 · letzter Beitrag vom 6. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
chrisyFIAE

Registriert seit: 24. Jan 2008
2 Beiträge
 
#1

ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 11:33
Hallo,
wollte mal ein kleines Programm von VBA in Delphi umschreiben, bleibe aber bei ReDim stecken.
Könnt Ihr mir evtl. helfen?
Hier der VBA-Code:
Delphi-Quellcode:
Dim TA As Double
Dim DF() As Long, MAX As Long
Private Sub cmdGO_Click()
  Dim I As Long
  MAX = Me.tbMAX
  ReDim DF(1 To MAX)
  For I = 1 To MAX
    DF(I) = Rnd * MAX
  Next I
  Me.lbUNSORT.List = DF
  TA = Timer
  BubbleSort DF
  Me.Caption = Timer - TA
  Me.lbSORT.List = DF
End Sub
Also ich habe gelesen, dass es evtl. mit VarArrayCreate gehen soll, weis aber echt nicht mehr weiter .

Vielen Dank schonmal im Vorraus für Eure Hilfen!!!

Der Chrisy
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 11:42
Delphi-Referenz durchsuchenSetLength erledigt das für Dich, allerdings sind dabei alle Arrays 0-besiert

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 11:43
Hallo,

ich denke Du redest von dynamischen Array und suchst wahrscheinlich setLength.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
chrisyFIAE

Registriert seit: 24. Jan 2008
2 Beiträge
 
#4

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 12:54
huhu,
danke für eure Antworten.
Dann lag ich wohl ziemlich falsch.
Aber wenn ich das richtig lese in der Delphi-Hilfe, dann müsste ich also eine neue Prozedur extra für dieses ReDim beginnen?
Ich weis einfach nicht wo ich dieses DF und dieses 1 To MAX hinstecken soll.

Gruß,
Der Chrisy
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 13:03
Zitat von chrisyFIAE:
Delphi-Quellcode:
Dim TA As Double
Dim DF() As Long, MAX As Long
Private Sub cmdGO_Click()
  Dim I As Long
  MAX = Me.tbMAX
  ReDim DF(1 To MAX)
  For I = 1 To MAX
    DF(I) = Rnd * MAX
  Next I
  Me.lbUNSORT.List = DF
  TA = Timer
  BubbleSort DF
  Me.Caption = Timer - TA
  Me.lbSORT.List = DF
End Sub
Delphi-Quellcode:

// oben im Form:
private
  TA: double;
  DF: array of long;
  MAX: long;

function myForm.btnGOClick(sender: TObject);
var i: long;
begin
  MAX := 0 // keine Ahnung was Me.tbMAX is... ;
  setLength(DF, MAX);
  for i := 0 to (MAX - 1) do // arrays in delphi fangen bei 0 an..
  begin
    DF[i] = // hier füllen...;
  end;

  // und hier dann sortieren und die ausgabe-listen füllen...
end;
Edit: Nein, keine EventArgs... dat is delphi, net .NET
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 13:04
Code:
Dim DF() As Long
...
ReDim DF(1 To MAX)
Delphi-Quellcode:
df: array of LongInt;
...
SetLength( df, MAX-1);
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#7

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 13:34
und es gibt kein!! ReDim Preserve in delphi

Edit : Nehme alles zurück und behaupte das Gegenteil
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 14:01
Zitat von QuickAndDirty:
und es gibt kein!! ReDim Preserve in delphi
Und was macht SetLength dann? Genau das, was es in Delphi nicht gibt ist ein ReDim ohne Preserve, aber das ist egal, wenn einen die Werte nach dem ReDim eh nicht mehr interessieren.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 16:40
Moin QuickAndDirty,

Zitat von QuickAndDirty:
und es gibt kein!! ReDim Preserve in delphi
Zitat von Delphi-Hilfe zu SetLength:
Existing characters in the string or elements in the array are preserved,
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#10

Re: ReDim - wie geht das bei Delphi???

  Alt 6. Mai 2008, 17:17
wow, ist das schon immer so ?
Tatsache da ist was all die Jahre an mir vorbeigagengen.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.
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