AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datenübernahme in StringGrid nur im Debugmodus
Thema durchsuchen
Ansicht
Themen-Optionen

Datenübernahme in StringGrid nur im Debugmodus

Ein Thema von Jens Hartmann · begonnen am 19. Feb 2009 · letzter Beitrag vom 19. Feb 2009
Antwort Antwort
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 07:34
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...

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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 07:49
Hast du es schon mit

Application.ProcessMessages; probiert?
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 08:01
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 08:11
In der Hilfe steht dazu:

Zitat von Delphi Hilfe:
Mit der Methode ProcessMessages können Sie eine Anwendung unterbrechen, so daß Windows die Botschaftswarteschlange verarbeiten kann.

procedure ProcessMessages;

Beschreibung

Durch einen Aufruf von ProcessMessages ermöglichen Sie es Windows, die Botschaften abzuarbeiten, die sich in der Botschaftswarteschlange befinden. Mit der Methode ProcessMessages kann die Botschaftswarteschlange von Windows durchlaufen werden, bis diese leer ist. Anschließend wird die Ablaufsteuerung wieder auf die Anwendung übertragen.

Hinweis

Die Vernachlässigung der Botschaftsverarbeitung wirkt sich nur auf die Anwendung aus, die ProcessMessages aufruft, nicht auf andere Anwendungen. Bei langen Operationen ermöglicht der periodische Aufruf von ProcessMessages, daß die Anwendung auf Zeichnen- und andere Botschaften antwortet.

Hinweis

ProcessMessages ermöglicht nicht, daß die Anwendung in den Leerlauf übergeht. Hier liegt ein Unterschied zu HandleMessage.
Ruf die Anweisung mal dort auf, wo du den TreeView befüllst oder etwas in dein Memo schreibst.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 08:44
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;
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 08:46
Hallo

Das Application.ProcessMessages wird an der falschen Stelle aufgerufen.

Jetzt:
Delphi-Quellcode:
for i := 0 to High(ParserTreeView.Entries) do
  Application.ProcessMessages;
  begin
Nachher:
Delphi-Quellcode:
for i := 0 to High(ParserTreeView.Entries) do
 begin
  Application.ProcessMessages;
oder noch besser vor dem zweitletzen end; Application.ProcessMessages; aufrufen.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 08:52
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.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 09:15
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;
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Datenübernahme in StringGrid nur im Debugmodus

  Alt 19. Feb 2009, 13:33
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:
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;
Hat noch jemand eine Idee wie ich das Problem in den Griff bekomme???

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.
Miniaturansicht angehängter Grafiken
debugmodus_113.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  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 18:01 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