AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi StringGrid horizontal, vertikal und diagonal füllen
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid horizontal, vertikal und diagonal füllen

Ein Thema von Eagelone · begonnen am 24. Jun 2005 · letzter Beitrag vom 25. Jun 2005
Antwort Antwort
Eagelone

Registriert seit: 31. Aug 2003
Ort: Augsburg
15 Beiträge
 
#1

StringGrid horizontal, vertikal und diagonal füllen

  Alt 24. Jun 2005, 15:00
Hallo,

ich möchte ein Stringgrid gern mit Buchstaben füllen und zwar horizontal, vertikal udn diagonal.

Ich habe ein Edit-Fenster wo ein Wort drin steht. Dieses Wort wird bei mir in die einzelnen Buchstaben aufgeteilt und jeweils ein Buchstabe soll in eine Zelle.

Horizontal geht dies ja mit:

Delphi-Quellcode:
            for i := 1 to length(s) do begin
               StrinGrid1.Cols[i-1].Add(s[i]);
Aber wie geht das vertikal und diagonal und alles rückwärts?
Man kann ja das irgendwie mit einem "case of" laufen lassen, oder?

Außerdem soll die Anfangsstelle jeweils über einen Zufall laufen!

Ich würde mich über Tipps für mein Problem freuen! DANKE!

Grüße,
Eagelone
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: StringGrid horizontal, vertikal und diagonal füllen

  Alt 24. Jun 2005, 15:03
Diagonal
Delphi-Quellcode:
x:=0;
for y:=0 to Length(s) do
Begin
  Inc(x);
  StrinGrid1.Cells[x,i].Add(s[y]);
End;
Vertikal
Delphi-Quellcode:
for x:=0 to Length(s) do
Begin
  StrinGrid1.Rows[x].Add(s[x]);
End;
Um das rückwärts zu machen musst du einfach jedes to durcc downto ersetzen, Start und Endwert umdrehen und möglicherweise auch das Inc durch Dec ersetzen
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: StringGrid horizontal, vertikal und diagonal füllen

  Alt 24. Jun 2005, 16:07
Zitat von BenjaminH:
Diagonal
Delphi-Quellcode:
x:=0;
for y:=0 to Length(s) do
Begin
  Inc(x);
  StrinGrid1.Cells[x,i].Add(s[y]);
End;
Der Stringinhalt beginnt mit dem Index 1 .
Und warum nicht einfach
Delphi-Quellcode:
for i := 1 to Length(s) do
  StrinGrid1.Cells[i - 1, i - 1].Add(s[i]);
?

[add]
Zitat:
Um das rückwärts zu machen musst du einfach jedes to durcc downto ersetzen, Start und Endwert umdrehen und möglicherweise auch das Inc durch Dec ersetzen
Das sollte nicht funktionieren, da du dadurch sowohl die Felder umgekehrt füllst, als auch den Stringinhalt umdrehst. Zum Umdrehen einfach jeweils
.Add(s[i]); durch
.Add(s[Length(s) - i + 1]); ersetzen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Eagelone

Registriert seit: 31. Aug 2003
Ort: Augsburg
15 Beiträge
 
#4

Re: StringGrid horizontal, vertikal und diagonal füllen

  Alt 25. Jun 2005, 10:16
Thx für die Hilfe,

aber als Fehlermeldung erhalte ich Folgendes: Record, object or class type required

Wie kann ich dieses Fehler beheben? Die einzelnen Befehle liegen in einem case of....

DANKE!
  Mit Zitat antworten Zitat
Eagelone

Registriert seit: 31. Aug 2003
Ort: Augsburg
15 Beiträge
 
#5

Re: StringGrid horizontal, vertikal und diagonal füllen

  Alt 25. Jun 2005, 13:59
Gut, hab es jetzt raus: Statt dem "Add" mus ein := hin...

Jetzt fehlt es nur noch, dass ich das schreiben auch für:
// diagonal oben recht nach links unten
// diagonal unten links nach rechts oben
benötige.


Wie kann ich außerdem ein StringGrid auf einen Inhalt überprüfen?

Big THX!
  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 17:32 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