Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Vokabelprogramm (https://www.delphipraxis.net/123974-vokabelprogramm.html)

Ahorn 12. Nov 2008 13:25


Vokabelprogramm
 
Wir sollen ein Programm in Delphi (Delphi 7.0) erstellen und haben uns dazu entschlossen, einen Vokabeltrainer zu schreiben.

Als erstes haben wir ein Hauptmenü mit verschiedenen Auswahlmöglichkeiten als Button. Wenn man z.B. auf den Button "Spielanleitung" klickt soll ein Fenster aufgehen, in der die Anleitung dann steht. Unsere Frage ist, wie das geht!?

Wenn man auf den Button "Vokabelliste erstellen" klickt, soll jeder Schüler individuell eine Vokabelliste anlegen können. Wir wollen nun wissen, wie man das am Besten macht (mit einer Tabelle? Mit verschiedenen Edit-Feldern?)

DeddyH 12. Nov 2008 13:30

Re: Vokabelprogramm
 
Crossposts bitte künftig verlinken. Ich würde auch empfehlen, erst einmal ein Anfänger-Tutorial durchzuarbeiten, dann sind die meisten Fragen schon geklärt.

mkinzler 12. Nov 2008 13:32

Re: Vokabelprogramm
 
Zu. 2) Es würde sich hierfür eine Datenbank anbieten

DeddyH 12. Nov 2008 13:33

Re: Vokabelprogramm
 
Oder IniFile, typisierte Dateien, Textdateien...

mkinzler 12. Nov 2008 13:34

Re: Vokabelprogramm
 
Du hast XML vergessen :zwinker: (Hauptsache das letzte Wort! :mrgreen:)

Ahorn 12. Nov 2008 13:51

Re: Vokabelprogramm
 
Wir haben eine ähnliche Datenbank schon einmal in Pascal erstellt. Nun ist unsere Frage, wie das gleiche Problem mit Delphi zu lösen ist?! Schließlich muss man mit den einzelnen Feldern der Datenbank noch arbeiten können.

Ahorn 12. Nov 2008 13:53

Re: Vokabelprogramm
 
Gibt es in Delphi ähnlich wie in Pascal auch "assign" oder "rewrite"?

mkinzler 12. Nov 2008 13:54

Re: Vokabelprogramm
 
Grundsätzlich sollte die Pascal-Lösung auch in Delphi funktionieren. Delphi bietet aber eine komfortablere Möglichkeit auf Datenbanken zuzugreifen.
http://www.delphi-treff.de/tutorials/datenbanken/
http://www.delphi-treff.de/tutorials/datenspeicherung/

Grundlagen:
http://www.delphi-treff.de/tutorials/grundlagen/

[Edit:
Zitat:

Gibt es in Delphi ähnlich wie in Pascal auch "assign" oder "rewrite"?
Ja AssignFile(), Rewrite() ]

Ahorn 14. Nov 2008 11:51

Re: Vokabelprogramm
 
okay, das hört sich ja schon mal alles logisch an ;]
irgendwie hängen wir jetzt grad schon beim vorgeplänkel..
was wir bis jetzt geschrieben haben:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm);
TVokabel = record;
TVokabeln = array of TVokabel

private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Fremdsprache, Uebersetzung: String end;
Form1: TForm1;
Vokabeln: TVokabeln;


aber das funktioniert irgendwie nicht. :gruebel:
könnt ihr uns da vielleicht noch ein bisschen nachhelfen..?

mkinzler 14. Nov 2008 12:20

Re: Vokabelprogramm
 
Fremdsprache, Uebersetzung: String end;

DeddyH 14. Nov 2008 12:25

Re: Vokabelprogramm
 
Delphi-Quellcode:
type TVokabel = record
  Sprache,
  Wort,
  Uebersetzung: Shortstring;
end;
Ein Record ohne Felder macht keinen Sinn ;)

Sir Rufo 14. Nov 2008 12:47

Re: Vokabelprogramm
 
Zitat:

Zitat von mkinzler
Fremdsprache, Uebersetzung: String end;

hast du da nicht ein zeichen zuviel gelöscht ;-)
Delphi-Quellcode:
Fremdsprache, Uebersetzung: String{ end};
@Ahorn: Delphi-Tags sind hilfreich, um den Quelltext anzuzeigen:
Delphi-Quellcode:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm);
TVokabel = record;
TVokabeln = array of TVokabel

private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Fremdsprache, Uebersetzung: String; // <- das end gelöscht.
Form1: TForm1;
Vokabeln: TVokabeln;
ich frage mich zwar gerade, warum die Variablen im Interface-Teil deklariert werden und nicht in der Klasse, aber however ...

cu

Oliver

Ahorn 19. Nov 2008 13:28

Re: Vokabelprogramm
 
Also wir haben das jetzt soweit hinbekommen... Nun wollen wir in einem Label Text einfügen... Könnt ihr uns sagen, wie man das macht?Bzw in ein Memo wäre eigentlich schöner, das klappt auch, aber uns stört dabei dass man den inhalt beim abspielen des programms noch verändern kann. Gibts da ne möglichkeit das zu verhindern..??

Sir Rufo 19. Nov 2008 13:36

Re: Vokabelprogramm
 
Label:
Delphi-Quellcode:
MeinLabel.Caption := 'Hier steht Text';
Memo Zeile hinzufügen:
Delphi-Quellcode:
MeinMemo.Lines.Add( 'Hier steht Text' );
Memo ganzen Text setzen:
Delphi-Quellcode:
MeinMemo.Lines.Text := 'Hier steht Text';
Memo ReadOnly:
Delphi-Quellcode:
MeinMemo.ReadOnly := True;
cu

Oliver

HenKst 19. Nov 2008 13:37

Re: Vokabelprogramm
 
TMemo.ReadOnly:= true; ;)

€dit
grmpf zu spät^^

Nersgatt 19. Nov 2008 13:38

Re: Vokabelprogramm
 
Zitat:

Zitat von Ahorn
Bzw in ein Memo wäre eigentlich schöner, das klappt auch, aber uns stört dabei dass man den inhalt beim abspielen des programms noch verändern kann. Gibts da ne möglichkeit das zu verhindern..??

Schau Dir doch mal alle Eigenschaften des Memo-Feldes an. Da ist bestimmt etwas dabei, um ein Memo-Feld auf ReadOnly zu setzen.

Gruß,
Jens

Ahorn 19. Nov 2008 13:44

Re: Vokabelprogramm
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;

Form2.Memo1.Lines.text:='Bitte legen Sie eine Vokabelliste an.';
Form2.Memo1.ReadOnly:= true;
end;

Wir haben eure Vorschläge aufgenommen, aber weder der Text steht in dem memo drin, so wie wir es wollten, noch ist das Memo jetzt "schreibgeschützt"!!! Aber das programm läuft auch ohne fehlermeldung ab... Könnt ihr uns sagen, was wir falsch machen?

HenKst 19. Nov 2008 13:49

Re: Vokabelprogramm
 
Das dürfte am ShowModal liegen.

Nach ShowModal wird das Hauptprogram angehalten bis das modale Form wieder geschlossen wird.
Der text wird erst gesetzt wenn das Memo garnichtmehr angezeigt wird.

Also einfach das ShowModal ans ende der procedure setzen sollte schon helfen.

GreeZ HenKst

Ahorn 19. Nov 2008 13:54

Re: Vokabelprogramm
 
Ja danke, das war der Fehler....

wol 19. Nov 2008 14:35

Re: Vokabelprogramm
 
Zitat:

Zitat von Ahorn
Gibt es in Delphi ähnlich wie in Pascal auch "assign" oder "rewrite"?

Ja, man kann alles machen wie in Pascal.

Ahorn 26. Nov 2008 13:19

Re: Vokabelprogramm
 
wir haben jetzt soweit erstmal die eingabe und speicherung der vokabeln,
aber uns stört noch dass wir das "memo1" nicht aus dem memofeld bekommen :(
ham das mit form3.memo1.lines.text:=' '; probiert, aber das bringt nichts....

HenKst 26. Nov 2008 13:29

Re: Vokabelprogramm
 
Entweder ihr schreibt ins FormCreate Memo1.Lines.Clear;
oder ihr schmeisst es direct im ObjectInspector raus. (doppelklick auf die Lines property und inhalt löschen)

Aber eigentlich müsste Lines.Text:= '' den selben Effekt haben, wo ruft ihr das denn auf?

Ahorn 26. Nov 2008 13:36

Re: Vokabelprogramm
 
naja wir haben so eine art hauptmenü, über das man mit hilfe von buttons
auf neue forms kommt, hier in diesem fall die form zur anlage der vokabelliste.
in dem memofeld werden dann auch die vokabeln ganz normal ausgegeben, nur
steht halt als erstes immer "memo1" da. wir haben den code in die unit1 eingegeben,
ist es besser ihn direkt in die zugehörige unit zu schreiben (das wäre unit3)?

Ahorn 26. Nov 2008 13:37

Re: Vokabelprogramm
 
ahh hej das mit linesproperty hat funktioniert :D danke!!

HenKst 26. Nov 2008 13:42

Re: Vokabelprogramm
 
Es geht mir nicht darum in welcher unit der code steht sondern an welcher stelle im program.

Ihr müsst halt den Inhalt rausschmeissen bevor ihr den neuen eingebt, oder ihn durch den neuen ersetzen.

Aber ich denke, sofarn das Memo visuel platziert ist, macht ihr es am einfachsten wirklich über den ObjectInspector.
Dann steht beim Programmstart erst garkein Text drin.

Ansonsten im Create vom Form.

€dit
na dann is ja gut^^

Ahorn 26. Nov 2008 13:49

Re: Vokabelprogramm
 
"Paradebeispiel für eine kleine Datenbankanwendung ist eine Adressenverwaltung. Programmieren wir also ein kleines Adressbuch.

Das Grundgerüst der Datei erstellen wir mit der Datenbankoberfläche. Diese lässt sich von Delphi aus über das Tools-Menü öffnen."
steht in nem tutorial, nur bei unserer version ist davon irgendwie weit und breit keine spur... wir haben delphi7

Ahorn 26. Nov 2008 14:06

Re: Vokabelprogramm
 
oder habt ihr einen anderen plan um auf einfachem wege eine datenbank zu erstellen?

Ahorn 26. Nov 2008 14:16

Re: Vokabelprogramm
 
wäre es vielleciht möglich die vokabeln, die ja im memo-feld erscheinen, von dort direkt aufzurufen? oder werden die dort nicht in der form gespeichert, dass das möglich wäre?

Sir Rufo 26. Nov 2008 16:20

Re: Vokabelprogramm
 
Hier mal eine Minimal-DB mit Ini-Dateien

Die Ini-Datei wie folgt aufbauen:
Code:
[deutsch-englisch]
gehen=go
ich gehe=i go

[englisch-deutsch]
go=gehen
i go=ich gehe
Abrufen der Vokabeln:

Delphi-Quellcode:
uses IniFiles;

...

function GetTranslation( Vokabel, Richtung : string ) : string;
var
  VokabelDatei : TIniFile;
begin
  VokabelDatei := TIniFile.Create( 'MeineVokabeln.ini' );
  try
    Result := ReadString( Richtung, Vokabel, '' );
  finally
    VokabelDatei.Free;
  end;
end;
So erfolgt dann z.B. der Zugriff:
Delphi-Quellcode:
  ...
Memo1.Lines.Add( 'go => ' + GetTranslation( 'go', 'englisch-deutsch' ) );
// oder auch andersrum
Memo1.Lines.Add( 'gehen => ' + GetTranslation( 'gehen', 'deutsch-englisch' ) );
...
Alles weitere Delphi-Referenz durchsuchenTIniFiles

Hinweis: Für größere Speichermengen/Daten ist das natürlich nicht zu empfehlen, aber für eine kleine Anwendung dieser Art auf jeden Fall ausreichend.

cu

Oliver

Ahorn 3. Dez 2008 13:04

Re: Vokabelprogramm
 
Igrendwie kriegen wir das nach der Methode nicht hin :? Vielleicht könnte uns noch einmal jemand helfen eine Datenbank für die Vokabelliste anzulegen? Wäre echt ganz lieb, weil wir bekommen das irgendwie icht hin.

Sir Rufo 3. Dez 2008 23:27

Re: Vokabelprogramm
 
Also so läuft das hier nicht "Ich krieg das nicht hin"
Zeig uns wie du den Code/die Methode eingebaut hast, und sag uns dann wo es noch klemmt.
Dann ist die Hilfe für uns auch einfacher, weil wir dann sehen, was du noch nicht verstanden hast.

Hier bekommst du Entwicklungshilfe und kein gemachtes Bettchen :)

cu

Oliver

Ahorn 12. Dez 2008 11:45

Re: Vokabelprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok hier ist mal unser bisheriges Programm... Ich hoffe die einfache Projektdatei reicht, damit ihr euch das mal anschauen könnt...

Bis dann

DeddyH 12. Dez 2008 11:57

Re: Vokabelprogramm
 
Jetzt wissen wir, welche Units benutzt werden. Das ist aber nicht besonders hilfreich.

Sir Rufo 12. Dez 2008 21:44

Re: Vokabelprogramm
 
Zitat:

Zitat von DeddyH
Jetzt wissen wir, welche Units benutzt werden. Das ist aber nicht besonders hilfreich.

aber damit wissen wir, was er noch nicht verstanden hat :mrgreen:

Micha88 15. Dez 2008 20:31

Re: Vokabelprogramm
 
Mein VokabelTrainer, xVTeacher, arbeitet so,
als dass ich den Inhalt eines StringGrids spalten/zeilenweise abspeichere und dementsprechend auch lade.

Meine Meinung:
Ich denke, es wird bei euch keinen Lernfortschritt geben, wenn ihr, falls ich das richtig verstanden habe, nicht mal wisst, wie ihr einen Text aufpoppen lässt?

Naja.. Good Luck

Micha88 27. Feb 2009 11:39

Re: Vokabelprogramm
 
[Edit] Post wegen OT entfernt [/Edit]

Sir Rufo 27. Feb 2009 12:15

Re: Vokabelprogramm
 
[OT]Wer reitet denn hier ein totes Pferd? :mrgreen: [/OT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz