![]() |
StringGrid und Button Funktion
Hallo,
habe mir was überlegt: Wenn Ich Button1 drücke, soll eine Information ins Stringgrid geschrieben werden (Wert15). Jetzt steht der Wert 15 im Stringgrid! Button 2 soll Werte im StrinGrid lesen, bei Wert 15 soll Button 2 blinken. Geht sowas? |
AW: StringGrid und Button Funktion
Zitat:
|
AW: StringGrid und Button Funktion
Ja.
|
AW: StringGrid und Button Funktion
Hey,
das Blinken ist kein Problem! Das der Button1 sein Befehl (15) in ein StringGrid schreibt, ist auch kein Problem. Mein Problem ist, Button2! Im StringGrid (Zeile1) lesen, bei Wert 15 ....... und bei Wert 0 nix machen. |
AW: StringGrid und Button Funktion
Wo genau ist denn das Problem?
Delphi-Quellcode:
Oder was meinst Du?
if StringGrid.Cells[Spalte, Zeile] = '15' then
Blinken; |
AW: StringGrid und Button Funktion
Delphi-Quellcode:
if FormReporting.Report.Rows[1][5]= '1' then begin
FormMAin.AdvGlowButton9.Caption:='test'; Frage: Immer die letzt Zeile lesen (-1)?
Delphi-Quellcode:
if FormReporting.Report.Rows[-1][5]=
|
AW: StringGrid und Button Funktion
Delphi-Quellcode:
Habe es so versucht! Geht nicht ???
procedure TFormMain.AdvGlowButton9Click(Sender: TObject);
var i: integer; begin i := FormReporting.Report.RowCount-1; if FormReporting.Report.Rows[i][5]= '2' then begin FormMain.AdvGlowButton9.Caption:='test'; end; end; Was ist falsch hier? |
AW: StringGrid und Button Funktion
Hat da einer eine Idee?
Was ich hier falsch mache? |
AW: StringGrid und Button Funktion
Delphi-Quellcode:
procedure TFormMain.Timer1Timer(Sender: TObject);
var i: integer; begin i := FormReporting.Report.TopRow-1; if FormReporting.Report.Rows[i][5]= '1' then begin FormMain.AdvGlowButton9.Caption:='test'; end; end; So geht es auch nicht? Verstehe ich nicht??? |
AW: StringGrid und Button Funktion
Könntest Du bitte das Pushen unterlassen? Und bist Du sicher, dass Deine verwendeten Indizes auch richtig sind?
|
AW: StringGrid und Button Funktion
OK ! :-)
Der Quelltext sieht sauber aus! Bin die ganze Zeit am überlegen, was hier faul ist. Oder was meinst Du ? |
AW: StringGrid und Button Funktion
Ich weiß doch nicht, wo der gesuchte Text nun genau in Deinem Grid steht. Spalte 6 der letzten Zeile? So habe ich es zumindest herausgelesen.
|
AW: StringGrid und Button Funktion
Richtig! So lese ich es auch!
Aber es passiert nix? |
AW: StringGrid und Button Funktion
Vorschlag:
Delphi-Quellcode:
Kommt da nix, stimmt die Zeile wohl nicht.
var
ColIndex: integer; begin ColIndex := StringGrid1.Rows[StringGrid1.RowCount - 1].IndexOf('1'); if ColIndex > -1 then ShowMessage('Zeile enthält "1" in Spalte ' + IntToStr(ColIndex)); |
AW: StringGrid und Button Funktion
da kommt auch nix?
Delphi-Quellcode:
var i: integer;
begin i := FormReporting.Report.TopRow-1; if FormReporting.Report.Rows[i][5]= '1' then // lese die letzte Zeile (also die aktuelle zeile) oder nicht? begin FormMain.AdvGlowButton9.Caption:='test'; end; end; |
AW: StringGrid und Button Funktion
Meinst Du wirklich TopRow?
|
AW: StringGrid und Button Funktion
oder
Delphi-Quellcode:
FormReporting.Report.RowCount-1;
|
AW: StringGrid und Button Funktion
Hast Du meinen Code aus #14 mal ausprobiert?
|
AW: StringGrid und Button Funktion
habe ich! nix passiert!
|
AW: StringGrid und Button Funktion
Dann hast Du wohl nicht die richtige Zeile angesprochen. Hast Du mal einen Screenshot von dem Grid?
|
AW: StringGrid und Button Funktion
Delphi-Quellcode:
var
ColIndex: integer; begin ColIndex := FormReporting.Report.Rows[FormReporting.Report.RowCount - 2].IndexOf('1'); if ColIndex > -2 then ShowMessage('Zeile enthält "1" in Spalte ' + IntToStr(ColIndex)); Antwort kommt: 'Zeile enthält "1" in Spalte -1' aber der Wert 1 war nicht vorhanden?????? |
AW: StringGrid und Button Funktion
:wall: Ein Index von -1 heißt, dass der gesuchte Wert nicht gefunden wurde. Wieso änderst Du die Abfrage auf -2, was soll das bringen?
|
AW: StringGrid und Button Funktion
Liste der Anhänge anzeigen (Anzahl: 1)
hier das Grid
|
AW: StringGrid und Button Funktion
sollte ein versuch sein!
habe es wieder auf -1 geändert. |
AW: StringGrid und Button Funktion
Und in der letzten Zeile soll unter "Funktion" eine 1 stehen?
|
AW: StringGrid und Button Funktion
Richtig!
Wenn da eine 1 steht, then begin FormMain.AdvGlowButton9.Caption:='test'; end; |
AW: StringGrid und Button Funktion
Dann zeig doch mal, wie Du die 1 da reinschreibst. Irgendwas läuft doch da falsch.
|
AW: StringGrid und Button Funktion
Die 1 steht da drin! Ich sehe sie ja, wenn ich das Grid öffne!
Als Beispiel:
Delphi-Quellcode:
das geht, dann steht da 'test'
FormEinsatz.InsertLine(Sender);
FormReporting.Report.Rows[1][5] := 'test'; |
AW: StringGrid und Button Funktion
Ich glaube zwar spontan nicht, dass es einen großen Unterschied macht, aber versuch es mal über die Cells.
Delphi-Quellcode:
FormReporting.Report.Cells[1, 5] := 'test';
Delphi-Quellcode:
if FormReporting.Report.Cells[1, 5] = 'test' then
ShowMessage('Na also, geht doch'); |
AW: StringGrid und Button Funktion
Delphi-Quellcode:
procedure TFormEinsatz.InsertLine(Sender: TObject);
begin FormReporting.Report.InsertChildRow(0); FormReporting.Report.Rows[1][0] := '<p align="center">' + IntToStr(FormReporting.Report.RowCount-1) + '</p>'; FormReporting.Report.Rows[1][2] := '' + DateToStr(Date) + ''; FormReporting.Report.Rows[1][3] := '' + TimeToStr(Now) + ''; end; |
AW: StringGrid und Button Funktion
habe ich schon versucht!
geht auch nicht! |
AW: StringGrid und Button Funktion
Hast Du vielleicht mehrere Instanzen des Formulars oder sowas? Wenn man etwas in das Grid hineinschreibt, muss man es ja auch später wieder auslesen können. Ich kann mir das fast nur noch mit einem "Instanzenchaos" oder etwas in der Art erklären.
|
AW: StringGrid und Button Funktion
DeddyH, erstmal vielen Dank für Deine Zeit!
Werd nach einer anderen Lösung suchen! Dieses hat einfach keinen wert :-)! Wollte einfach meine Button Netzwerkfähig machen! Da mein Programm bald auf drei Rechnern laufen soll! Wolte es über das Grid machen, als Protokoll. Schade Wenn Rechner A Quittiert müssen B und C auch den Alarm abschalten! |
AW: StringGrid und Button Funktion
Wäre da eine Datenbank nicht angebrachter?
|
AW: StringGrid und Button Funktion
Richtig!
Wollte es nur mit dem StringGrid testen. Habe sonst ein DBGrid / MYSQL usw. Habe echt gedacht, super Idee! Danke |
AW: StringGrid und Button Funktion
Was ich nich nicht verstehe ist:
Delphi-Quellcode:
Also hier: Schreibt der Button in der ersten Zeile und Spalte 6 eine '1'.
procedure TFormMain.AdvGlowButton9Click(Sender: TObject);
begin FormReporting.Report.Cells[5,1]:='1'; end; Das klappt soweit! Jetzt zum Problem: Ein Timer soll alle paar sec. überprüfen ob sich in der Zeile 1 Splate 6 eine '1' befindet. siehe:
Delphi-Quellcode:
wenn sich eine '1' in der ersten Zeile und Spalte 6 befindet, dann schreib:FormMain.AdvGlowButton9.Caption:='test';
procedure TFormEinsatz.Timer33Timer(Sender: TObject);
begin if FormReporting.Report.Cells[5,1]= '1' then begin FormMain.AdvGlowButton9.Caption:='test'; end; end; es geht aber nicht? |
AW: StringGrid und Button Funktion
Geh doch mal mit dem Debugger ran, was wird denn da als Wert ermittelt? BTW: 33 Timer?
[edit] Und dass Du über Formulargrenzen hinweg ein StringGrid als Datenspeicher gebrauchst ist nicht so der Hit. Vielleicht solltest Du das Konzept überdenken. [/edit] |
AW: StringGrid und Button Funktion
Ich werde noch ein wenig testen!
Danke Dir DeddyH! Wenn ich eine Lösung gefunden habe, melde ich mich! Gruß Andre |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 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