![]() |
Leere StringGrid-Zellen
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] |
Re: Leere StringGrid-Zellen
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. |
Re: Leere StringGrid-Zellen
Danke erstmal für den Tip :)
Ääähm...aber wie genau mach ich das denn? :D ;) |
Re: Leere StringGrid-Zellen
Beser length(Trim())
Zitat:
|
Re: Leere StringGrid-Zellen
Hallo,
vielleicht so:
Delphi-Quellcode:
Grüße
while length(DeinText) < 36 do
DeinText:=DeinText+'*'; Klaus |
Re: Leere StringGrid-Zellen
Vielen Dank :) Es hat geklappt :)
Hab aber nochmal 2 Fragen zu meinem Programm :D 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? |
Re: Leere StringGrid-Zellen
zu 1)
Delphi-Quellcode:
zu 2)
for i:=0 to stringgrid.rowcount-1 do
stringgrid.rows[i]:=''; 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 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