Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in Listbox eintragen: Problem mit der Liste (https://www.delphipraxis.net/114446-string-listbox-eintragen-problem-mit-der-liste.html)

langer hans 25. Mai 2008 18:04


String in Listbox eintragen: Problem mit der Liste
 
Hallo!
Ich bins mal wieder mit einem Problem....
Ich habe eine listbox namens lb_liste und eine function getlist:string
Doch bei jeder Abfrage erhalte ich eine AV...

Hier der Betreffende Code:
Delphi-Quellcode:
lb_liste.Items.Add(pop3.getList);
Und die getlist:
Delphi-Quellcode:
function tpop.getList():String;
begin
//showmessage(IntToStr(status));
if status > 0 then begin
  client.Socket.SendText('LIST ' + chr(10));
  delay(1000);
  result := bra;
end else
  result := 'nein'
end;
bra ist der empfangene Text vom server, beispielsweise so:
Zitat:

+OK
1 5148
2 2371
3 148207
4 26014
5 19326
6 30496
7 39217
8 1872
9 2445
10 52434
Ich denke es gibt Probleme durch die linefeeds...

Eine showmessage gibt die liste hne probleme aus...

Hier die Fehlermeldung:

Zitat:

---------------------------
Email Client
---------------------------
Zugriffsverletzung bei Adresse 0046FC9B in Modul 'Project_email.exe'. Lesen von Adresse 00000320.
---------------------------
OK
---------------------------

hoffe mir kann jemand helfen!

MfG

Klaus01 25. Mai 2008 18:10

Re: String in Listbox eintragen: Problem mit der Liste
 
Hallo,

von welchem Type ist denn bra?
Für mich schaut das aus wie eine StringList,
wenn dem so sein sollte, müsstest Du dem result bra.text übergeben.

Grüße
Klaus

Hansa 25. Mai 2008 18:12

Re: String in Listbox eintragen: Problem mit der Liste
 
Ne. :zwinker: Die soll er mal schön mit create erzeugen.

DeddyH 25. Mai 2008 18:12

Re: String in Listbox eintragen: Problem mit der Liste
 
Was soll er erzeugen?

langer hans 25. Mai 2008 18:14

Re: String in Listbox eintragen: Problem mit der Liste
 
Hallo!
bra ist ein einfacher string...

Ich hab jetzt schon die CRLF entfernt, mit gleichem ergebnis....

mfg

DeddyH 25. Mai 2008 18:16

Re: String in Listbox eintragen: Problem mit der Liste
 
Wann tritt der Fehler denn auf? Stepp doch mal durch.

langer hans 25. Mai 2008 18:17

Re: String in Listbox eintragen: Problem mit der Liste
 
@DeddyH: Schon erledigt...
Genau in der Zeile
Delphi-Quellcode:
lb_liste.Items.add(pop3.getList);
kommt die Exception.

Wenn ich die zeile durch

Delphi-Quellcode:
showmessage(pop3.getlist);
ersetze bekomm ich den String angezeigt...

Ok, mit
Delphi-Quellcode:
     s:=pop3.getList;
     lb_liste.Items.add(s);
Gibts den gleiche fehler...
Liegt es vielleicht an der Länge des Strings?

DeddyH 25. Mai 2008 18:31

Re: String in Listbox eintragen: Problem mit der Liste
 
Ich glaube nicht, dass es an der Stringlänge liegt. Allerdings muss ich leider zugeben, dass mir im Moment die Ideen ausgegangen sind :(

marabu 25. Mai 2008 18:33

Re: String in Listbox eintragen: Problem mit der Liste
 
Hallo langer Hans,

die von dir gezeigten Code-Zeilen mögen syntaktisch korrekt sein, vom Ablauf her wohl eher nicht. Vertraust du wirklich darauf, dass durch Rückgabe deiner Zeitscheibe an das Betriebssystem der Empfang zuverlässig gelaufen ist?

GetList() ist eine Funktion, aber in erster Linie eine Methode und vieles andere mehr bleibt bei deiner Fehlerbeschreibung im Dunkeln. Eine Lösung deines Problems verlangt hellseherische Fähigkeiten. Meine Vermutung: Es liegt ein Timing-Problem vor, verursacht durch ein fehlerhaftes Gesamtkonzept.

Freundliche Grüße

langer hans 25. Mai 2008 18:45

Re: String in Listbox eintragen: Problem mit der Liste
 
puuh, ok...
Ich weiss, dass das Konzept nicht das beste ist. Ich muss es nur irgendwie zum laufen bekommen...
Das etwas zurückkommt weiss ich, weil ja das event OnClientRead ausgelöst wird und darin die Daten gecheckt werden...

Also, ich habe neue erkenntnisse:
Ich habe die betreffende Zeile mal durch
Delphi-Quellcode:
lb_liste.Items.Add('Test')
ausgetauscht und das ergebnis war der selbe fehler....

Mit einem neuen button klappt das einfügen in die listbox...

marabu 25. Mai 2008 18:59

Re: String in Listbox eintragen: Problem mit der Liste
 
Dann ist ja alles klar: Der alte Button war wohl etwas abgenutzt.

Hansa 25. Mai 2008 19:12

Re: String in Listbox eintragen: Problem mit der Liste
 
Zitat:

Zitat von DeddyH
Was soll er erzeugen?

Vielleicht das hier :

Zitat:

Zitat von langer hans
Delphi-Quellcode:
lb_liste.Items.Add('Test')
ausgetauscht und das ergebnis war der selbe fehler....

Wundert mich nicht. :P

DeddyH 25. Mai 2008 19:14

Re: String in Listbox eintragen: Problem mit der Liste
 
Ich versteh Dich immer noch nicht, wo soll denn Deiner Meinung nach das [Watweißich].Create hin?

Hansa 25. Mai 2008 19:25

Re: String in Listbox eintragen: Problem mit der Liste
 
Zitat:

Zitat von DeddyH
Ich versteh Dich immer noch nicht, wo soll denn Deiner Meinung nach das [Watweißich].Create hin?

Sieht so aus, als ob er auf nicht instantiierte Sachen zugreift. Bzw. nicht mal erzeugte. Typischer Fehler bei "zur Laufzeit erzeugte". 8)

Klaus01 25. Mai 2008 19:31

Re: String in Listbox eintragen: Problem mit der Liste
 
Wenn auf ein nicht instantiierte Instanz zugegriffen worden wäre,
hätte dann nicht die Meldung lauten sollen > Lesen von Adresse 00000000.
und nicht > Lesen von Adresse 00000320.

Grüße
Klaus

DeddyH 25. Mai 2008 19:32

Re: String in Listbox eintragen: Problem mit der Liste
 
Aber bra scheint ja nur eine einfache Stringvariable zu sein, die mit ShowMessage ja wohl auch ausgegeben wird, von daher bleibt mir verschlossen, wie Du auf diese Vermutung kommst.

Muetze1 25. Mai 2008 19:44

Re: String in Listbox eintragen: Problem mit der Liste
 
Zitat:

Zitat von Klaus01
Wenn auf ein nicht instantiierte Instanz zugegriffen worden wäre,
hätte dann nicht die Meldung lauten sollen > Lesen von Adresse 00000000.
und nicht > Lesen von Adresse 00000320.

Ach, bei allen deinen Objekten liegen die Properties und Methoden alle beim Offset 0? Interessant, sehr interessant.

Also: deine Aussage ist so nur auf die Instanzenvariable an sich anwendbar, nicht aber, wenn man direkt einen Aufruf oder Zugriff auf eine Methode oder Property der nicht instanziierten Objektvariable tätigt. Dann wird der jeweilige Offset dazu addiert um das entsprechende Element zu addressieren.

langer hans 25. Mai 2008 19:53

Re: String in Listbox eintragen: Problem mit der Liste
 
also, die listbox ist nicht dynamisch erzeugt...
Der Zugriff klappt ja auch nur über diesen einen button nicht.
der gleiche fehler tritt bei einer weiteren function der klasse tpop genauso auf.
Auch diese gibt einen string zurück, allerdings für ein memo...

MfG

Fussball-Robby 25. Mai 2008 20:09

Re: String in Listbox eintragen: Problem mit der Liste
 
Möglicherweise das vergessen?:
Delphi-Quellcode:
pop3 := TPop.Create(Self);

DeddyH 25. Mai 2008 20:11

Re: String in Listbox eintragen: Problem mit der Liste
 
Und wieso gibt ShowMessage dann das gewünschte Ergebnis aus?

langer hans 25. Mai 2008 21:01

Re: String in Listbox eintragen: Problem mit der Liste
 
@Robby: Nee, das ist drin, der connect klappt ja...
Wenns hilft werde ich morgen mal das ganze Projekt online stellen. Dann aber nicht über die unordnung wundern, das sind 3 teile von verschiedenen Leuten...

MfG

langer hans 26. Mai 2008 18:01

Re: String in Listbox eintragen: Problem mit der Liste
 
Hallo!
Das Problem ist gelöst, Ursache mehr oder weniger unbekannt... :?

Es gab ja einmal die receiveemails function in der GUI, aus der wurde die pop3.getlist aufgerufen.
Die receiveemails wurde von einem Button aus einer ToolBar aufgerufen.
Mit dem code der receiveemails direkt in der receiveCLICK gehts...

Ein weiterer Grund Delphi nicht zu mögen... :duck: :mrgreen:

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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