AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid mit Daten füllen und farblich Darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid mit Daten füllen und farblich Darstellen

Ein Thema von Jens Hartmann · begonnen am 29. Jan 2009 · letzter Beitrag vom 6. Apr 2009
 
Benutzerbild von Jens Hartmann
Jens Hartmann

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

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 17:36
Nein, eben nicht.

Ich versuche die Datenbank zu füllen, und da mach er den selben Fehler, wie beim StringGrid füllen.

Schaue ich mir die Datenbank später an, ist der alte Fehler da.

Ich bin allerdings von meinen Gedanken schon etwas weiter.

Ich versuch mal es zu beschreiben.

Ich lese mit folgender Anweisung die Daten, die sich momentan im Puffer der Einbruchmeldeanlage befinden.

Delphi-Quellcode:
{Daten von COM-Schnittestelle lesen}
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Daten : String;
begin
  ComPort1.ReadStr(Daten, Count);
  Buffer:=Buffer+Daten;
  Bufferverarbeitung; //Procedure, in der die Daten verarbeitet werden
end;
Das Problem hierbei, ist das im Puffer der Einbruchmeldeanlage manchmal auch mehrere Datensätze vorhanden sind, was aber wiederum eigendlich durch die Verarbeitungsprocedure ausgeglichen werden sollte.

Delphi-Quellcode:
Procedure TForm1.Bufferverarbeitung;
Var
     I :Integer;
     Laenge :Integer;
     ID :String;
     SatzEnd :String;
begin
Laenge:=Length(Buffer);
I:=1;
while I < Laenge+1 do
                begin
                Zeile:=Zeile+Buffer[I];
                DataMB256plus:=DataMB256plus+Buffer[I];

                          if Buffer[I] = #13 then
                            if Buffer[I+1] = #10 then
                              if Buffer[I+2] = #13 then
                                if Buffer[I+3] = #10 then
                                  begin
                                    DataMB256plus := StringReplace(DataMB256plus, #154, 'Ü', [rfReplaceAll]);
                                    DataMB256plus := trim(StringReplace(DataMB256plus, #$D, '', [rfReplaceAll]));
                                    DataMB256plus:= StringReplace(DataMB256plus, #129, 'ü', [rfReplaceAll]);
                                    DataMB256plus := trim(StringReplace(DataMB256plus, #132, 'ä', [rfReplaceAll]));
                                    DataMB256plus := StringReplace(DataMB256plus, #142, 'Ä', [rfReplaceAll]);
                                    DataMB256plus := StringReplace(DataMB256plus, #148, 'ö', [rfReplaceAll]);
                                    DataMB256plus := StringReplace(DataMB256plus, #153, 'Ö', [rfReplaceAll]);
                                    DataMB256plus := StringReplace(DataMB256plus, #154, 'Ü', [rfReplaceAll]);
                                    DataMB256plus := StringReplace(DataMB256plus, #10#13, ' ', [rfReplaceAll]);

                                    DatenverarbeitungVSTMB256plus; //Sprung in Procedure

                                    DataMB256plus := '';
                                  end;

               IF Buffer[I] =#13 then
                  begin

                    case RGZentralentyp.ItemIndex of
                      0 : DatenverarbeitungMB24;
                      1 : DatenverarbeitungMB48;
                      2 : DatenverarbeitungMB100;
                      3 : DatenverarbeitungMB256;
                      4 : DatenverarbeitungUEZ2000;
                      5 : DatenverarbeitungBMC1024;
                    end;
                end;
                INC(I);
                end;
Buffer:='';
end;
Die Frage für mich ist jetzt, wenn meine Bufferverarbeitung noch läuft, aber schon wieder ein neues Ereignis

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); anliegt, wird der Buffer ja durch den Puffer neu gefüllt, und macht ja somit meinen Datensatz Kaputt.

PS: Übrigens, nenn mich ruhig Jens.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
 


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 03:49 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