Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   StringGrid und Button Funktion (https://www.delphipraxis.net/165734-stringgrid-und-button-funktion.html)

Alterauge 13. Jan 2012 10:51

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?

Luckie 13. Jan 2012 10:57

AW: StringGrid und Button Funktion
 
Zitat:

Zitat von Alterauge (Beitrag 1145734)
Geht sowas?

Ja. Obwohl eine Schaltfläche blinken lassen, könnte etwas umständlich werden, je nach dem was du dir unter blinken vorstellst.

DeddyH 13. Jan 2012 10:58

AW: StringGrid und Button Funktion
 
Ja.

Alterauge 13. Jan 2012 11:08

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.

DeddyH 13. Jan 2012 11:11

AW: StringGrid und Button Funktion
 
Wo genau ist denn das Problem?
Delphi-Quellcode:
if StringGrid.Cells[Spalte, Zeile] = '15' then
  Blinken;
Oder was meinst Du?

Alterauge 13. Jan 2012 11:28

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]=

Alterauge 13. Jan 2012 11:45

AW: StringGrid und Button Funktion
 
Delphi-Quellcode:
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;
Habe es so versucht! Geht nicht ???
Was ist falsch hier?

Alterauge 13. Jan 2012 12:04

AW: StringGrid und Button Funktion
 
Hat da einer eine Idee?

Was ich hier falsch mache?

Alterauge 13. Jan 2012 12:16

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???

DeddyH 13. Jan 2012 12:24

AW: StringGrid und Button Funktion
 
Könntest Du bitte das Pushen unterlassen? Und bist Du sicher, dass Deine verwendeten Indizes auch richtig sind?

Alterauge 13. Jan 2012 12:48

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 ?

DeddyH 13. Jan 2012 12:52

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.

Alterauge 13. Jan 2012 12:58

AW: StringGrid und Button Funktion
 
Richtig! So lese ich es auch!
Aber es passiert nix?

DeddyH 13. Jan 2012 13:10

AW: StringGrid und Button Funktion
 
Vorschlag:
Delphi-Quellcode:
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));
Kommt da nix, stimmt die Zeile wohl nicht.

Alterauge 13. Jan 2012 13:19

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;

DeddyH 13. Jan 2012 13:25

AW: StringGrid und Button Funktion
 
Meinst Du wirklich TopRow?

Alterauge 13. Jan 2012 13:35

AW: StringGrid und Button Funktion
 
oder
Delphi-Quellcode:
FormReporting.Report.RowCount-1;

DeddyH 13. Jan 2012 13:37

AW: StringGrid und Button Funktion
 
Hast Du meinen Code aus #14 mal ausprobiert?

Alterauge 13. Jan 2012 13:54

AW: StringGrid und Button Funktion
 
habe ich! nix passiert!

DeddyH 13. Jan 2012 13:55

AW: StringGrid und Button Funktion
 
Dann hast Du wohl nicht die richtige Zeile angesprochen. Hast Du mal einen Screenshot von dem Grid?

Alterauge 13. Jan 2012 13:59

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??????

DeddyH 13. Jan 2012 14:01

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?

Alterauge 13. Jan 2012 14:10

AW: StringGrid und Button Funktion
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier das Grid

Alterauge 13. Jan 2012 14:11

AW: StringGrid und Button Funktion
 
sollte ein versuch sein!
habe es wieder auf -1 geändert.

DeddyH 13. Jan 2012 14:11

AW: StringGrid und Button Funktion
 
Und in der letzten Zeile soll unter "Funktion" eine 1 stehen?

Alterauge 13. Jan 2012 14:13

AW: StringGrid und Button Funktion
 
Richtig!

Wenn da eine 1 steht,

then
begin
FormMain.AdvGlowButton9.Caption:='test';
end;

DeddyH 13. Jan 2012 14:14

AW: StringGrid und Button Funktion
 
Dann zeig doch mal, wie Du die 1 da reinschreibst. Irgendwas läuft doch da falsch.

Alterauge 13. Jan 2012 14:19

AW: StringGrid und Button Funktion
 
Die 1 steht da drin! Ich sehe sie ja, wenn ich das Grid öffne!

Als Beispiel:

Delphi-Quellcode:
FormEinsatz.InsertLine(Sender);
FormReporting.Report.Rows[1][5] := 'test';
das geht, dann steht da 'test'

DeddyH 13. Jan 2012 14:23

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');

Alterauge 13. Jan 2012 14:23

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;

Alterauge 13. Jan 2012 14:24

AW: StringGrid und Button Funktion
 
habe ich schon versucht!
geht auch nicht!

DeddyH 13. Jan 2012 14:29

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.

Alterauge 13. Jan 2012 14:56

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!

DeddyH 13. Jan 2012 14:58

AW: StringGrid und Button Funktion
 
Wäre da eine Datenbank nicht angebrachter?

Alterauge 13. Jan 2012 15:00

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

Alterauge 13. Jan 2012 17:17

AW: StringGrid und Button Funktion
 
Was ich nich nicht verstehe ist:


Delphi-Quellcode:
procedure TFormMain.AdvGlowButton9Click(Sender: TObject);
begin
FormReporting.Report.Cells[5,1]:='1';
end;
Also hier: Schreibt der Button in der ersten Zeile und Spalte 6 eine '1'.
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:
procedure TFormEinsatz.Timer33Timer(Sender: TObject);
begin
   if FormReporting.Report.Cells[5,1]= '1' then  
  begin
   FormMain.AdvGlowButton9.Caption:='test';
  end;
end;
wenn sich eine '1' in der ersten Zeile und Spalte 6 befindet, dann schreib:FormMain.AdvGlowButton9.Caption:='test';


es geht aber nicht?

DeddyH 13. Jan 2012 17:25

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]

Alterauge 13. Jan 2012 21:38

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