Hallo zusammen, wiedermal habe ich ein Problem.
Es geht um folgendes:
Ich soll ein Programm schreiben, bei dem eine Liste von Namen auf 2 Sachen überprüft werden sollen:
a) ob sie mit einem/r ausgewählten Buchstaben/Buchstabenkombination beginnen
b) ob kein genannter Buchstabe im Namen vorkommt
Jene Namen die die ausgewählte Bedingung erfüllen, sollen dargestellt werden.
Ich habe zu erst das Programm ohne die "Liste" geschrieben, sprich nur mit einem Namen, um zu überprüfen ob ich das mit den Bedingungen hinbekommen. Das hat 1A geklappt.
Nun hänge ich jedoch an der "Liste". Ich habe die Variablen die von mehreren Objekten benutzt werden sollen unter "public" deklariert, da ich mir dadurch erhofft habe, sie würden
global werden (was ja Pflicht sein sollte wenn mehrere Objekte drauf zugreifen sollen, oder?).
Irgendetwas haut trotzdem nicht hin.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
edt_name: TEdit;
Label1: TLabel;
Button1: TButton;
edt_start: TEdit;
lbl_name: TLabel;
lbl_letter: TLabel;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
i:integer;
name:
array of string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.RadioButton1Click(Sender: TObject);
var error:boolean; j,l:integer; word:
string;
begin
for l:=1
to i
do
begin
word:=name[l];
error:=false;
for j:=1
to Length(word)
do
if edt_start.Text[j]<>word[j]
then error:=true;
if error=false
then label1.Caption:=Label1.Caption + word
else Label1.Caption:=label1.Caption + '
';
end;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
var error:boolean; j,k,l:integer; word:
string;
begin
for l:=1
to i
do
begin
word:=name[l];
error:=false;
for j:=1
to Length(edt_start.Text)
do
for k:=1
to Length(word)
do
if edt_start.text[j]=word[k]
then error:=true;
if error=true
then Label1.Caption:=Label1.Caption+'
'
else Label1.Caption:=Label1.Caption + word
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(
name,(i+1));
name[i]:=edt_name.Text;
inc(i);
edt_name.text:='
';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
end;
end.
Wär nett wenn mir wieder wer helfen könnte.