![]() |
Delphi-Version: 5
MessageDlg - Schleifen Problem
Hey Leute. Ich habe folgendes Problem: Meine Aufage ist es ein beliebiges Zeichen in einer beliebigen Zeichenkette ausfindet zu machen, indem es durch knopfdruck groß geschrieben wird. Das bekomme ich soweit auch noch hin. Wenn dieses beliebige Zeichen jedoch nicht in der Zeichenkette vorhanden ist, soll eine Messagebox mit "nicht vorhanden" erscheinen. Dort trifft es bei mir auf Probleme.
So sieht es bei mir momentan aus: procedure TForm1.Button1Click(Sender: TObject); var j,i:Integer; z,x:string; begin j:=length(edit1.Text); x:=edit1.Text; for i := 1 to j do begin if edit2.Text[1]=edit1.Text[i] then begin z:=ansiuppercase(x[i]); delete(x,i,1); insert(z,x,i); edit1.text:=x; end; end; end; Wenn ich "MessageDlg('nicht vorhanden.', mtInformation, [mbOK], 0);" reinschreibe muss ich zuvor eine schleife programmieren. Ich war vorhin soweit, dass er mir je nach Zeichenkettenlänge x, x mal "nicht vorhanden" geschrieben hat. |
AW: MessageDlg - Schleifen Problem
Hallo.
Bitte pack den Quelltext in (Delphi)(/Delphi)-Tags (mit eckigen Klammern), dann kann man ihn auch vernünftig lesen. Hier einmal in einer augenfreundlicheren Variante:
Delphi-Quellcode:
Dann siehst du wohl auch einfacher, dass du den Dialog hinter das end; der for-Schleife packen musst. Wie du schon richtig sagst, muss die for-Schleife zuvor passieren.
procedure TForm1.Button1Click(Sender: TObject);
var j, i: Integer; z, x: string; begin j := length(edit1.Text); x := edit1.Text; for i := 1 to j do begin if edit2.Text[1] = edit1.Text[i] then begin z := ansiuppercase(x[i]); delete(x, i, 1); insert(z, x, i); edit1.Text := x; end; end; end; |
AW: MessageDlg - Schleifen Problem
So, genug der "Standpauke", nun zum Problem: Ohne jetzt den Code komplett umzuschreiben (es bietet sich eine Funktion mit Boolescher Rückgabe an, die besagt, ob das Zeichen gefunden wurde), fällt mir dies auf Anhieb ein:
Delphi-Quellcode:
MfG Dalai
procedure TForm1.Button1Click(Sender: TObject);
var j,i:Integer; z,x:string; found: Boolean; begin found:= False; j:= length(edit1.Text); x:= edit1.Text; for i := 1 to j do begin if edit2.Text[1]=edit1.Text[i] then begin found:= True; z:=ansiuppercase(x[i]); delete(x, i, 1); insert(z, x, i); edit1.text:= x; end; end; if NOT found then ShowMessage('nicht gefunden'); end; |
AW: MessageDlg - Schleifen Problem
Vielen Dank für eure schnellen Antworten. Mein Problem wurde gelöst:)
Tut mir leid, dass ich den Code nicht richtig eingefügt habe. Toll, dass ihr mir trotzdem geholfen habt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 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