Einzelnen Beitrag anzeigen

diavy

Registriert seit: 11. Apr 2012
54 Beiträge
 
#1

Liste von Namen auf Charakteristiken überprüfen

  Alt 18. Sep 2012, 17:20
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.
Miniaturansicht angehängter Grafiken
delphitrouble.jpg  
  Mit Zitat antworten Zitat