AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Leere StringGrid-Zellen

Ein Thema von maddi 1990 · begonnen am 20. Mai 2009 · letzter Beitrag vom 26. Mai 2009
Antwort Antwort
maddi 1990

Registriert seit: 19. Mai 2009
3 Beiträge
 
Delphi 3 Standard
 
#1

Leere StringGrid-Zellen

  Alt 20. Mai 2009, 20:57
Hallo!
Und zwar habe ich ein Problem beim Erstellen eines Programmes! In diesem Programm soll man ein Text eingeben können, der dann in eine StringGrid-Komponente geschrieben wird (also jeder einzelne Buchstabe in eine StrinGridZelle). Danach soll nach Klick auf einen Button diese einzelnen Buchstaben in den StringGrid-Zellen spaltenweise aus der StringGrid-Komponente ausgelesen werden und somit verschlüsselt ausgegeben werden, z.B.:

D I E S E
N A C H R I
C H T I S
T S T R E
N G G E H
E I M ! ! !

--> verschlüsselt: DNCTNEIAH GIECTS MSH TG!ERIRE! ISEH!

meine StringGrid-Komponente hat 6 Spalten und 6 Zeilen

Quelltext:
Delphi-Quellcode:
procedure Tform1.ButtonOK Click(Sender:Tobject);
var s:string; i:integer;
begin
s:=EingabeEdit.Text+’************************************’;
  for i:=1 to 6 do
   begin
     SG.Cells[i,1]:=s[i];
     SG.Cells[i,2]:=s[i+6];
     SG.Cells[i,3]:=s[i+12];
     SG.Cells[i,4]:=s[i+18];
     SG.Cells[i,5]:=s[i+24];
     SG.Cells[i,6]:=s[i+30];
  end;

end;

procedure Tform1.ButtonVerschluesseln Click(Sender:Tobject);
var s:string; i:integer; textneu:string;
begin
textneu:=’’;

for i:=1 to 6 do
  begin
    textneu:=textneu+SG.Cells{i,1];
    textneu:=textneu+SG.Cells{i,2];
    textneu:=textneu+SG.Cells{i,3];
    textneu:=textneu+SG.Cells{i,4];
    textneu:=textneu+SG.Cells{i,5];
    textneu:=textneu+SG.Cells{i,6];
  end;

AusgabeEdit.Text:=textneu;

end;


Das Programm funktioniert zwar, aber ich suche nach einer besseren Möglichkeit, wie ich das Problem lösen kann, wenn der Text weniger als 36 Zeichen hat und leere StringGrid-Zellen vorhanden sind! Wenn der Text kürzer als 36 Zeichen ist, dann soll in diesen leeren StringGrid-Zellen ein * stehen! bisher habe ich einfach an den eingegebenen Text * angehängt! Jedoch suche ich nach einer besseren Lösung! Mit einer if-Anweisung oder so!
Hat vielleicht jemand eine Idee und kann mir helfen???

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Leere StringGrid-Zellen

  Alt 20. Mai 2009, 21:04
Mit length() kannst du die Länge der Zeichen ermitteln und somit ab dem letzten Zeichen fortlaufend bis zum Schluss des Stringgrids dieses mit * befüllen.
Und bitte Editier deinen Beitrag und Schreibe den Quellcode in den DELPHI-Tags.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
maddi 1990

Registriert seit: 19. Mai 2009
3 Beiträge
 
Delphi 3 Standard
 
#3

Re: Leere StringGrid-Zellen

  Alt 22. Mai 2009, 15:28
Danke erstmal für den Tip
Ääähm...aber wie genau mach ich das denn?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Leere StringGrid-Zellen

  Alt 22. Mai 2009, 15:30
Beser length(Trim())

Zitat:
Ääähm...aber wie genau mach ich das denn? Very Happy Wink
Code markieren und Button Delphi-Code anklicken
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Leere StringGrid-Zellen

  Alt 22. Mai 2009, 15:31
Hallo,

vielleicht so:

Delphi-Quellcode:
while length(DeinText) < 36 do
  DeinText:=DeinText+'*';
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
maddi 1990

Registriert seit: 19. Mai 2009
3 Beiträge
 
Delphi 3 Standard
 
#6

Re: Leere StringGrid-Zellen

  Alt 26. Mai 2009, 16:21
Vielen Dank Es hat geklappt

Hab aber nochmal 2 Fragen zu meinem Programm

1. Ich habe einen Neu-Button hinzugefügt und der soll halt die Eintragungen in den StrigGrid-Zellen löschen! Wie mach ich das denn???

und

2. Man gibt ja einen Text ein und soll ihn mit dem OK-Button bestätigen, damit der Text in die StrigGrid-Komponente eingetragen wird. Und nach einem Klick auf ein Button "Verschlüsseln" soll der verschlüsselte Text ausgegeben werden. Wenn man nun aber vergessen hat auf OK zu klicken und auf Verschlüsseln klickt, kann ja kein Text ausgegeben werden, da nix in der StringGrid-Komponente steht! Nun möchte ich gerne, dass eine Meldung kommt (mit ShowMessage), wenn man auf Verschlüsseln klickt, aber nix in der String-Grid-Komponente steht (weil man ja nicht auf OK geklickt hat)! Hat jemand eine Idee, wie ich das machen könnte?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Leere StringGrid-Zellen

  Alt 26. Mai 2009, 18:10
zu 1)
Delphi-Quellcode:
for i:=0 to stringgrid.rowcount-1 do
  stringgrid.rows[i]:='';
zu 2)
arbeite doch mit butVerschlüssel.enabled.
Wenn OK gedrückt wurde dann setzt Du butVerschlüssel.enabled:=true
und nach dem Verschlüssel butVerschlüssel.enabled:=false.

Das sollte auffällig genug sein.
Ansonsten arbeite mit einer boolschen Variablen istOKgedrückt.

Gruß
K-H
  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 00:43 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