![]() |
Datenübernahme in StringGrid nur im Debugmodus
Hallo,
ich versuche es einfach nochmal anders. Ich habe in einem alten Thread von mir eine Frage gehabt zur Datenübernahme in ein StringGrid. Leider konnte mir dort bis lang keiner helfen. Vieleicht liegt es ja an dem Titel, da der am Anfang ja einen anderen hintergrund hatte. Um aber darauf zu verweisen, hier der alte Thread... ![]() Leider konnte ich das Problem immer noch nicht lösen, und hoffe das mir doch noch jemand weiter helfen kann. Um den Fehler nochmal zu beschreiben, ich lese Daten von einer Schnittstelle ein, die ich über eine eigene Unit verarbeite, gebe diese dann zurück an mein FormUnit und möchte sie in einem StringGrid zur Anzeige bringen. Leider funktioniert das nur, wenn ich im DebugModus einen Breakpoint setze. Nehme ich den Breakpoint dann weg und drücke erneut F9, sehe ich in meinem Programm die Daten im String Grid. Leider werden aber die ab dem Zeitpunkt kommenden Daten nicht mehr eingetragen. Start ich das Programm normal, werden gar keine Daten übergeben. Hat jemand vieleich eine Idee, wo das dran liegen könnte Vielen Dank schon mal Gruß Jens |
Re: Datenübernahme in StringGrid nur im Debugmodus
Hast du es schon mit
Delphi-Quellcode:
probiert?
Application.ProcessMessages;
|
Re: Datenübernahme in StringGrid nur im Debugmodus
Nein habe ich nicht, habe gerade mal in der Delphi Hilfe nachgesehen, finde allerdings nichts darüber, wo muss ich das eintragen und wie kann ich das anwenden, oder was passiert damit.
Gruß Jens |
Re: Datenübernahme in StringGrid nur im Debugmodus
In der Hilfe steht dazu:
Zitat:
|
Re: Datenübernahme in StringGrid nur im Debugmodus
Also, habe das jetzt mal hier eingetragen, hat aber nichts genütz. Ist immer noch so wie ich eben beschrieben habe.
Delphi-Quellcode:
procedure TForm1.TreeViewResult(ParserTreeView: TMyBaseParser);
var i: Integer; begin for i := 0 to High(ParserTreeView.Entries) do Application.ProcessMessages; begin if ParserTreeView.Entries[i].LfdNr > 0 then begin RCount := RCount+1; SGMB256plus.RowCount := RCount+1; Memo2.Lines.Add(IntToStr(ParserTreeView.Entries[i].LfdNr)); SGMB256plus.Cells[0, RCount + 1] := IntToStr(ParserTreeView.Entries[i].LfdNr); end; if ParserTreeView.Entries[i].Datum <> '' then begin Memo3.Lines.Add(ParserTreeView.Entries[i].Datum); SGMB256plus.Cells[1, RCount + 1] := ParserTreeView.Entries[i].Datum; end; if ParserTreeView.Entries[i].Uhrzeit <> '' then begin Memo4.Lines.Add(ParserTreeView.Entries[i].Uhrzeit); SGMB256plus.Cells[2, RCount + 1] := ParserTreeView.Entries[i].Uhrzeit; end; if ParserTreeView.Entries[i].Ereignis <> '' then begin Memo5.Lines.Add(ParserTreeView.Entries[i].Ereignis); SGMB256plus.Cells[3, RCount + 1] := ParserTreeView.Entries[i].Ereignis; end; if ParserTreeView.Entries[i].Teilnehmer <> '' then begin Memo6.Lines.Add(ParserTreeView.Entries[i].Teilnehmer); SGMB256plus.Cells[4, RCount + 1] := ParserTreeView.Entries[i].Teilnehmer; end; if ParserTreeView.Entries[i].Bereich <> '' then begin Memo7.Lines.Add(ParserTreeView.Entries[i].Bereich); SGMB256plus.Cells[5, RCount + 1] := ParserTreeView.Entries[i].Bereich; end; end; end; |
Re: Datenübernahme in StringGrid nur im Debugmodus
Hallo
Das Application.ProcessMessages wird an der falschen Stelle aufgerufen. Jetzt:
Delphi-Quellcode:
Nachher:
for i := 0 to High(ParserTreeView.Entries) do
Application.ProcessMessages; begin
Delphi-Quellcode:
oder noch besser vor dem zweitletzen end; Application.ProcessMessages; aufrufen.
for i := 0 to High(ParserTreeView.Entries) do
begin Application.ProcessMessages; |
Re: Datenübernahme in StringGrid nur im Debugmodus
Sorry , so hatte ich es eingetragen, Funktioniert aber nicht.
Seltsamer weise, ist das Problem erste seid dem vorhanden, seid ich die Datei Einriichtung endlich passend hatte. Als die Daten noch ziemlich durcheinander und unsortiert ankammen, hat das Funktioniert. nur das die Daten da in den falschen Zellen standen. |
Re: Datenübernahme in StringGrid nur im Debugmodus
Habe das jetzt auch mal vor dem vorletzten end probiert. Geht nicht.
Ich muss ehrlich zugeben, ich habe keine Ahnung wo ich noch suchen soll.
Delphi-Quellcode:
begin Memo7.Lines.Add(ParserTreeView.Entries[i].Bereich); SGMB256plus.Cells[5, RCount + 1] := ParserTreeView.Entries[i].Bereich; end; Application.ProcessMessages; end; end; |
Re: Datenübernahme in StringGrid nur im Debugmodus
Liste der Anhänge anzeigen (Anzahl: 1)
Habe die ganze Anweisung jetzt nochmal angepaßt und mal Variablen dazwischen geschaltet. Immer noch genau dasselbe. Arbeite ich mit Breakpoint, wird eingetragen arbeite ich ohne also wie der Kunde muss, wird nicht eingetrage.
In meinen Variablen werden die Daten wunderbar eingetrage.
Delphi-Quellcode:
Hat noch jemand eine Idee wie ich das Problem in den Griff bekomme??? :gruebel:
procedure TForm1.TreeViewResult(ParserTreeView: TMyBaseParser);
var i: Integer; Temp1 : String; Temp2 : String; Temp3 : String; Temp4 : String; Temp5 : String; Temp6 : String; begin for i := 0 to High(ParserTreeView.Entries) do begin Temp1 := ParserTreeView.Entries[0].LfdNr; Temp2 := ParserTreeView.Entries[0].Datum; Temp3 := ParserTreeView.Entries[0].Uhrzeit; Temp4 := ParserTreeView.Entries[0].Ereignis; Temp5 := ParserTreeView.Entries[0].Teilnehmer; Temp6 := ParserTreeView.Entries[0].Bereich; RCount := RCount+1; SGMB256plus.RowCount := RCount+1; SGMB256plus.Cells[0, RCount] := Temp1; SGMB256plus.Cells[1, RCount] := Temp2; SGMB256plus.Cells[2, RCount] := Temp3; SGMB256plus.Cells[3, RCount] := Temp4; SGMB256plus.Cells[4, RCount] := Temp5; SGMB256plus.Cells[5, RCount + 1] := Temp6; end; end; Im Anhang habe ich noch einmal einen Screenshot, die Maus zeigt auf meinen Record und Links bei Überwachte Ausdrücke sieht man, das auch die Variablen den Wert angenommen haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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