AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi stringGrid dynamisch erweitern/sichtbarer Bereich
Thema durchsuchen
Ansicht
Themen-Optionen

stringGrid dynamisch erweitern/sichtbarer Bereich

Ein Thema von Tigger · begonnen am 2. Okt 2004 · letzter Beitrag vom 3. Okt 2004
Antwort Antwort
Benutzerbild von Tigger
Tigger

Registriert seit: 22. Sep 2004
Ort: Wedel
25 Beiträge
 
Delphi 7 Enterprise
 
#1

stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 21:09
Es geht um ein (dreizeiliges) StringGrid.

a)
  • Die mittlere Zeile dient zur Darstellung des Bandes einer Turing-Maschine,
    das ja theoretisch unendlich ist.

    Ein Zeiger fährt in der oberen Zeile über das Band und schreibt neue Zeichen
    in die Zellen darunter. Dieser Zeiger soll sich nun unendlich nach links oder
    rechts bewegen können.

    Ich habe ColCount momentan auf 16 eingestellt. Wenn dieser Bereich überschritten wird,
    wie kann ich dynamisch weitere Spalten erzeugen? Dies müßte wie gesagt in beide Richtung
    möglich sein.


b)
  • Die Bewegung des Zeigers und das Schreiben der Zeichen passiert ausschließlich programmseitig,
    der Benutzer kann der Simulation nur zusehen.

    Wie kann ich nun erreichen, daß der Scrollbalken den Zeiger verfolgt? Daß der Benutzer also
    immer den Bereich des StringGrids sehen kann, in dem gerade etwas passiert?

    Ich hoffe, das ist so verständlich. Auf Wunsch könnte ich sonst such das Programm zur Verfügung
    stellen, das läuft eigentlich schon so, wie es soll.

Grüße, Tigger
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 21:15
ich weis zwar net ganz was das soll und wovon du redest *g*

aber:

a) die propertys gridcount und rowcount verändern damit du mehr spalten/zeilen bekommst (geht auch zur laufzeit)

b) eventuell gehts wenn du die eigenschaft "selected" der enstsprechenden zelle setzt und hoffst das dann die scollleisten mitscrollen
oder halt irgendwie mit messages das grid zum scrollen bringen ( sowas hab ich hier schonmal gesehen als thread )
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#3

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 21:18
hallo tigger!

Zitat:
Die mittlere Zeile dient zur Darstellung des Bandes einer Turing-Maschine,


Zitat:
Ich habe ColCount momentan auf 16 eingestellt. Wenn dieser Bereich überschritten wird,
wie kann ich dynamisch weitere Spalten erzeugen? Dies müßte wie gesagt in beide Richtung
möglich sein.
nachdem du 'ColCount' schon gefunden hast, kann ja das dynamische erhöhen und erniedrigen auch kein problem mehr sein. richtig?

Zitat:
Wie kann ich nun erreichen, daß der Scrollbalken den Zeiger verfolgt? Daß der Benutzer also
immer den Bereich des StringGrids sehen kann, in dem gerade etwas passiert?
bist du dir sicher, dass ein stringgrid die richtige komponente für dein vorhaben ist? wäre nicht ein progressbar besser dafür geeignet

{$UNTESTED}
du könntest row & col auf jene zelle setzen, die du anzeigen willst

mfg, stefan
  Mit Zitat antworten Zitat
Benutzerbild von Tigger
Tigger

Registriert seit: 22. Sep 2004
Ort: Wedel
25 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 22:31
(Turing-Maschine: das Ganze läuft so, daß ich das Zeichen an der aktuellen
Pfeilposition auslese, intern in einer Tabelle nachschaue und dort dann
steht, welches Zeichen auf das Band geschrieben werden soll und in welche
Richtung sich der Pfeil bewegen soll. Von daher ist ein ProgressBar hier
absolut nicht das Richtige .)

Zitat:
nachdem du 'ColCount' schon gefunden hast, kann ja das dynamische erhöhen und erniedrigen auch kein problem mehr sein. richtig? Rolling Eyes
Ich gebe zu, das war keine so intelligente Frage...

Zitat:
{$UNTESTED}
du könntest row & col auf jene zelle setzen, die du anzeigen willst
Das funktioniert leider nicht. Noch andere Ideen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 22:43
Moin Tigger,

Zitat von grayfox:
du könntest row & col auf jene zelle setzen, die du anzeigen willst
also bei mir schon
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Tigger
Tigger

Registriert seit: 22. Sep 2004
Ort: Wedel
25 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 2. Okt 2004, 22:53
Ich muß mich entschuldigen, habe das Ganze an einer falschen Stelle im Code eingesetzt.
Also 'stringGrid.Col := gewünschtePosition' funktioniert.

Danke erstmal, Tigger
  Mit Zitat antworten Zitat
Benutzerbild von Tigger
Tigger

Registriert seit: 22. Sep 2004
Ort: Wedel
25 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 3. Okt 2004, 12:03
Ist jetzt eigentlich nur eine Schönheitssache, aber extrem störend.
Wenn ich stringGrid.Col auf eine bestimmt Spalte setze ist diese
Spalte am rechten Rand sichtbar (bei Scrollbalken).

Da ich sie natürlich etwas mittiger sichtbar haben möchte, könnte
ich Col jetzt einfach auf (gewünschte Spalte + 5) setzen. Das
Problem ist, daß dabei diese Zelle blau unterlegt wird. Kann ich
das irgendwie verhindern?

Hatte mir überlegt, dieser Zelle einen string zuzuweisen, damit sie
neu gezeichnet wird, Hintergrundfarbe dabei umstellen und string
dann wieder löschen.

Aber das muß doch auch irgendwie einfacher gehen. Also ungefähr so
stelle ich mir das vor:

<Pseudocode>
stringGrid.Col := Fokus + 5;
stringGrid.Cells[Col, 0] := Hintergrundfarbe;
</Pseudocode>

(edit: cols auf col geändert)
  Mit Zitat antworten Zitat
Benutzerbild von Tigger
Tigger

Registriert seit: 22. Sep 2004
Ort: Wedel
25 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: stringGrid dynamisch erweitern/sichtbarer Bereich

  Alt 3. Okt 2004, 15:49
So, habe jetzt folgende Lösung gefunden:

Code:
procedure fokusVersetzen(position : integer);
begin
  frm_simulation.sg_simulation.Col := position;
  flagFokus := true;
  frm_simulation.sg_simulation.Update;
  flagFokus := false;
end; //fokusVersetzen
im OnDrawCell-Ereignis des stringGrids wird dann, wenn flag gesetzt, die
Hintergrundfarbe auf weiß gesetzt und die Zelle nochmal neu gefuellt.

Falls jemand eine schönere Lösung hat, immer her damit!
  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 07:18 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