Archiv verlassen und diese Seite im Standarddesign anzeigen : Obi Wan's Delphi Programmier-Fragen Thread
Obi Wan Kenobi
16.07.2007, 15:22
Hallo!
Ich möchte jetzt gezielt eine Applikation programmieren. Ich habe mir dazu schon Infomaterial von dsdt.info heruntergeladen, und bin aber aus dem Kram noch nicht richtig schlau geworden.
Borland Delphi 2005 habe ich nun auch schon (als free-Versio anlässlich der Delphi-Tage) und wollte jetzt damit anfangen. Wie ich einen GUI erstelle, damit komme ich schon klar, aber der Rest ist für mich Bahnhof-Kofferclown.
Deshalb wollte ich hier einige Fragen dazu stellen, die mir (für den Anfang) schon ein wenig weiterhelfen können. Damit möchte ich alle Delphi kundigen Leute hier im Forum ansprechen.
Die erste Frage:
Ich habe jetzt ein Menü erstellt, anfangs nur mit Datei, Speichern. Nun wollte ich Fragen, wie ich in der Programmierung die Funktion einbaue, wenn ich auf "Speichern" klicke, dass dann der "SaveFile" Dialog aufgerufen wird, und der Text aus der "rich TextBox 1" in eine .d Datei gespeichert wird. Bitte um Antwort!
Hisoka999
16.07.2007, 16:42
Allgemein musst du erstmal Programmieren lernen bevor du dich an sowas ransetzt.
Am besten hol dir nen Buch zu Delphi. Denn ohne Grund wissen wirst du irgendwas zusammen schreiben was nichts bringt. Außerdem wirst du nichts verstehen und bei jedem Fehler irgendwo was Fragen.
Aber zum Problem: Du musst im Menü eine Aktion für diesen Menüpunkt erzeugen. Dann hast du im Quelltext teil den Kopf einer Prozedur in der rufst du dann das Fenster zum Speichern auf. saveDialog := TSaveDialog.Create(self);
// Give the dialog a title
saveDialog.Title := 'Save your text or word file';
// Set up the starting directory to be the current one
saveDialog.InitialDir := GetCurrentDir;
// Allow only .txt and .doc file types to be saved
saveDialog.Filter := 'Text file|*.txt|Word file|*.doc';
// Set the default extension
saveDialog.DefaultExt := 'txt';
// Select text files as the starting filter type
saveDialog.FilterIndex := 1;
// Display the open file dialog
if saveDialog.Execute
then ShowMessage('File : '+saveDialog.FileName)
else ShowMessage('Save file was cancelled');
// Free up the dialog
saveDialog.Free;
Das ist ein Beispiel dazu.
Obi Wan Kenobi
25.07.2007, 20:04
Gut, die Frage wäre beantwortet.
Danke! :gratz
Nun habe ich noch eine:
Wie kann ich eine bestimmte Zeichenkette aus einem Text bzw. Memofeld in eine Variable fassen, wenn ich einen bestimmten Button drücke, und die Zeichenkette in ein anderes Memofeld eingetragen wird. Wie geht das?
Sinngemäß, kann kein Delphi :)
Prozedur beim drücken des Buttons:
(Button deaktivieren)
Variable X = Textfeld1
Textfeld2 = Variable X (oder) Textfeld1
(Button aktivieren)
Falls du den Text nicht in der Variable brauchst, kannst du auch einfach Textfeld2 = Textfeld 1 coden.
Obi Wan Kenobi
25.07.2007, 20:52
Danke für das überlegen, helfen tut es mir aber leider nicht, da ich den Code brauche.:(
Thoronador
29.07.2007, 21:28
Sinngemäß, kann kein Delphi :)
Prozedur beim drücken des Buttons:
(Button deaktivieren)
Variable X = Textfeld1
Textfeld2 = Variable X (oder) Textfeld1
(Button aktivieren)
Falls du den Text nicht in der Variable brauchst, kannst du auch einfach Textfeld2 = Textfeld 1 coden.
Danke für das überlegen, helfen tut es mir aber leider nicht, da ich den Code brauche.:(
Du solltest dir deshalb ein Tutorial durchlesen oder ein Buch zu Delphi zulegen, denn so wirst du auch lernen, selbst Antworten auf diese und noch andere Fragen zu Delphi zu finden. ;)
Der Code für das Kopieren des Textes von einem Memo zu einem anderen wäre folgender; es wird dabei angenommen, dass die Memos einfach Memo1 und Memo2 heißen und dem Button, welcher hier Button1 heißt, als Ereignisprozedur für OnClick die Prozedur TForm1.Button1Click zugeordnet ist:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled:= False; //deaktiviert den Button
Memo2.Lines:= Memo1.Lines; //kopiert Text aus Memo1 nach Memo2
Button1.Enabled:= True; //aktiviert den Button wieder
end;
Noch ein Hinweis zu den Memos: die Eigenschaft Lines ist ein Objekt vom Typ TStrings, und auf einzelne Zeilen kann man mit Lines zugreifen, wobei [I]index für eine ganze Zahl größer oder gleich Null steht. Die Zählung beginnt bei Null, also wäre die erste Zeile über Lines[0] anzusprechen. Die Anzahl der Zeilen in einem Memo ist in der Eigenschaft Count hinterlegt. Folgender Code gibt z.B. die Anzahl der Zeilen eines Memos aus und zeigt auch den Inhalt der ersten Zeile an, sofern das Memo mindestens eine Zeile hat:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Das 1. Memofeld beinhaltet '+IntToStr(Memo1.Count)+' Zeilen an Text.');
if (Memo1.Lines.Count>=1) then
ShowMessage('Die erste Zeile lautet:'+#13#10+Memo1.Lines[0]);
end;
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.