AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi aus funktion herraus auf listbox zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

aus funktion herraus auf listbox zugreifen

Ein Thema von Cirrius · begonnen am 27. Mär 2008 · letzter Beitrag vom 29. Mär 2008
Antwort Antwort
Cirrius

Registriert seit: 19. Jan 2005
2 Beiträge
 
#1

aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:19
Hey Leute, mich plagt zur Zeit ein Problem und selbst bin ich mir nicht sicher woran das liegen kann...

Ich habe ein Auswerteprogramm für meinen Verein geschrieben, kurz zur Funktion die mir Sorgen macht:

Durch ein Enter in einer Edit-Box wird mit Hilfe dieser Funktion

Delphi-Quellcode:
procedure Tfrm_main.edt_zeitKeyPress(Sender: TObject; var Key: Char);
var
  minuten : string;
  sekunden : string;
  millisekunden : string;
  fehlersekunden : string;
begin
  if ord(key) = 13 then //Enter Taste
    begin
        begin
          minuten := copy(edt_zeit.Text,1,1);
          sekunden := copy(edt_zeit.Text,2,2);
          millisekunden := copy(edt_zeit.Text,4,2);
          fehlersekunden := copy(edt_zeit.Text,7,2);
          lbox_zeitwert.Items.Strings[lbox_fahrername.ItemIndex] :=
            minuten+'.'+sekunden+'.'+millisekunden+' '+fehlersekunden;
          lbox_fahrername.ItemIndex := lbox_fahrername.ItemIndex+1;
          edt_zeit.Clear;
        end;
    end;
end;
ein Zeitwert in eine Listbox eingetragen.

So, da ich nun die Daten der Listbox auswerten möchte mache ich dies mit folgender Funktion:

Delphi-Quellcode:
procedure zeiteintragen(typ:integer;fahreranzahl:integer);
//Eintragen der Gesamtzeit(mit FS!) und der Fehlersekunden in Array
//Type 1: 1. Lauf, Type 2: 2. Lauf
var
  i : integer;
begin
  case typ of
  1:
    begin
    for i := 1 to fahreranzahl do
      begin
        a_wertung[i,2] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]);
        a_wertung[i,5] := copy(frm_main.lbox_zeitwert.Items.Strings[i-1],9,2);
      end;
    end;
  2:
    begin
    for i := 1 to fahreranzahl do
        begin
          a_wertung[i,3] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]);
          a_wertung[i,6] := copy(frm_main.lbox_zeitwert.Items.Strings[i-1],9,2);
        end;
    end;
  end;
end;
Nun bekomme ich in der Zeile

a_wertung[i,2] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]); Den Fehler, daß der Listenindex das Maximum (0) überschreitet, obwohl sich in der Listbox die Zeitwerte befinden.

Kann es sein sein das ich von einer Funktion heraus nicht ohne weiteres auf die Daten zugreifen kann? Ich bräuchte dringend Hilfe, da ich das Programm in ca. einer Woche bräuchte. Wäre sehr dankbar für jeden Tip.

Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:28
Hey, herzlich Willkommen in der DP
Was ist a_wertung den Überhaupt? Eine ListBox? Eine Variable?

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:28
Du solltest dir besser mal TSrings.Add() ansehen. So wie zu die Einträge hinzufügst, gehe ich fast davon aus, dass diese wild in unreserviertem Speicher landen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:30
Du solltest alle procedures / functions der Klasse / dem Formular (Tfrm_main) zuweisen.
Sonst können sie nämlich nicht auf Elemente des Forms zugreifen.

Delphi-Quellcode:
...
public
  MeineProcedure(...);
...
...
Tfrm_main.MeineProcedure(...);
begin
end;
...
...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:49
Können sie schon, wenn sie voll qualifiziert werden, wie es der TE auch gemacht hat. Dass das aber von Stil und sauberer OOP so weit entfernt ist wie möglich, macht es mehr als änderungswürdig, ja.
Edit: Das ist hier allerdings nicht die Ursache des Fehlers.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:53
Zitat von Medium:
Können sie schon, wenn sie voll qualifiziert werden, wie es der TE auch gemacht hat. Dass das aber von Stil und sauberer OOP so weit entfernt ist wie möglich, macht es mehr als änderungswürdig, ja.
Edit: Das ist hier allerdings nicht die Ursache des Fehlers.
Genau.
Als Anf$nger sollte man sich gleich einen richtigen Stil aneignen.

Dass dies der Fehler ist, hab ich auch nicht behauptet.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:58
Zitat von Fussball-Robby:
Was ist a_wertung den Überhaupt? Eine ListBox? Eine Variable?
Das "a_" könnte darauf hindeuten, dass es ein Array ist.
Somit muss das Array erst mal initialisiert werden.

Ausserdem ist "a_wertung" kein allzu toller Name.
Besser wäre hier schon WertungsArray.
In Delphi setzt man den Typ einer Variablen nicht vorne an.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: aus funktion herraus auf listbox zugreifen

  Alt 28. Mär 2008, 18:39
Zitat von Cirrius:
Den Fehler, daß der Listenindex das Maximum (0) überschreitet, obwohl sich in der Listbox die Zeitwerte befinden.
Dieser Wortlaut des Fehlers taucht jedoch auch mit eingeschalteter Bereichsprüfung nie bei einem Zugriff über Arraygrenzen hinaus auf. Es ist ein eindeutiger Hinweis darauf, dass ein TStrings oder TList Nachfahre über seine Grenze hinaus geschrieben/gelesen wird, und daher würde ich nach wie vor eher auf die Art und Weise der Befüllung der ListBox setzen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Cirrius

Registriert seit: 19. Jan 2005
2 Beiträge
 
#9

Re: aus funktion herraus auf listbox zugreifen

  Alt 28. Mär 2008, 23:10
danke erst mal für eure tips, ich hab es nun auf folgende art und weise gelöst - hab die Modularisierung einfach mal sein lassen und meine funktionen wieder schön in die onclick routine des "lauf beenden" buttons geworfen... fragt mich nicht warum, aber so geht es...

leider hab ich für die tiefgründige verbesserung keine zeit mehr, das programm sollte ja schon längst fertig sein

zum stil: ja, mein stil ist versaut, aber nach mittlerweile 5 jahren delphi kann ich daran auch nichts mehr ändern, ich stelle die bezeichner immer schön in Präfixnotation vorran und danke wegen des tipps wegen Add - das war wohl eher ein ganz dummer flüchtigkeitsfehler die listbox so zu befüllen, gebracht hatte es trotzdem nichts, nach der änderung kam der gleiche fehler...

vielen dank für eure hilfe
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: aus funktion herraus auf listbox zugreifen

  Alt 29. Mär 2008, 05:55
Dann wäre die Frage, ob "fahreranzahl" = "ListBox.Items.Count" ist. Den Aufruf zeigst du oben ja leider nicht
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:08 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