Autor Beitrag
pascal4free
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 47

Win2000
D8SSL
BeitragVerfasst: Mi 08.09.04 22:02 
Hi,

habe mich gerade erst angemeldet, und wollte euch mal mein erstes größeres Programm vorstellen. Da es mir mit der Zeit auf die Nerven ging, das wir in Englisch LK Vokabelkarteien anlegen sollten, dachte ich mir, schreib ich ein entsprechendes Programm für den PC. Mag zwar sein das es das schon gibt, aber mit irgendwas musste ich mich ja fit halten /fortbilden in Sachen Delphi (im Info Lk lernt man in den ersten 2 Wochen nicht wirklich viel *g*). Raus kam bei der ganzen Sache das hier.

Ich muss sagen das ich während ich dieses Programm entwickelt habe, ich einiges komplett neu gelernt habe, so das evt nicht alle gegebene Möglichkeiten bestimmter Dinge ausgenutzt sind. Auch ist das Programm momentan noch für Fremde wohl eher schwer zu lesen (kaum Kommentare) werde ich aber auch noch ändern. Einige Extensions (s. Hilfe) sind auch schon in Planung, natürlich bleibt das alles für jeden frei zugänglich, dank SSL-Lizenz dürfte ich es ja nicht mal verkaufen :D

Falls es jemand interessiert findet er hier auch noch gelegentlich andere Programme von mir. (Teils irgendwelche Sachen für die Schule)

So, genug geschrieben denke ich, lasst mal hören was ich so alles falsch gemacht hab :wink:

Pascal

Edit: war mit der Kategorie etwas voreilig, falls ein Mod zeit hat, könnte er es vielleicht kurz in Open-source verschieben :oops:


Moderiert von user profile iconUGrohne: Topic aus Freeware Projekte verschoben am Do 09.09.2004 um 08:01
Chris Maslowski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 109



BeitragVerfasst: Mi 23.03.05 21:35 
Titel: Quelltext?
Hast du auch den Quelltext dafür. Das heist ja net umsonst "Open Source"
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 23.03.05 22:22 
raziel's step-by-step Tutorial "Wie komme ich an den Source":

  1. Vokabeltrainer.rar downloaden (Link siehe oben)
  2. Entpacken in ein Verzeichnis deiner Wahl
  3. Ins Verzeichnis wechseln
  4. sich am Open-Source erfreuen
;)

_________________
JSXGraph
FlameDiver
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 104

WIN XP
D6 Pers
BeitragVerfasst: Do 24.03.05 14:11 
Hi,
das programm gefällt mir.

Nur manchmal macht der nicht die nächste Vokabel... sehr komisch... mit Zurück geht er auch nicht zur vorherigen Vokabel.

du könntest noch einbauen das immer eine zufäälige Vokabel kommt. den ist es nicht immmer die gleiche Vokabelreinfolge

_________________
From Hell and back again
ScorpionKing
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1150

Win XP

BeitragVerfasst: Fr 25.03.05 08:27 
Ist ganz gut gelungen!

MfG, ScorpionKing!

_________________
Aus dem Urlaub zurück!
Spieler1
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 469


D6 Pers
BeitragVerfasst: Di 29.03.05 16:31 
user profile iconraziel hat folgendes geschrieben:
raziel's step-by-step Tutorial "Wie komme ich an den Source":

  1. Vokabeltrainer.rar downloaden (Link siehe oben)
  2. Entpacken in ein Verzeichnis deiner Wahl
  3. Ins Verzeichnis wechseln
  4. sich am Open-Source erfreuen
;)
Hey, das Tutorial ist wirklich gelungen. Könnte zwar etwas ausführlicher sein. :lol: :mrgreen:
huhn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Di 29.03.05 16:46 
Ich ahb au mal einen gemacht:huhnau.funpic.de/Uploads/VokaTrainer.exe mit Wörterliste als txt datei:huhnau.funpic.de/Uploads/engswordsback.txt
bis auf en paar kleinigkeiten find ich deinen aber au net schlecht
-könnte immer gleich die nächste vokabel kommen
-enter taste wär net schlecht
-und schummeln kann man auch(wenn falsch wirds richtig angezeigt,dann kann man es schreiben und er sagt richtig)
also wie gesagt fürs erste net schlecht :wink:
mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
lightning
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 07.04.05 12:14 
hi leute, bin auch gerade am vokabeltrainer basteln. in dem beispiel hier wird die vokabel-datenbank in eine .ini datei gespeichert. kann mir jemand sagen, wie ich das in eine .txt datei bekommen, so dass die auch korrekt wieder ausgelesen wird ?

thx für eure hilfe
Marc Walter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 40

Win98, WinXP
D2 Pers, D7 Pers
BeitragVerfasst: Do 07.04.05 13:19 
guggst du hier, ich glaub du suchsch sowas: www.delphi-forum.de/...t=textdatei+einlesen

_________________
möp
huhn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Do 07.04.05 14:26 
@lightningDes is mal der Quelltext von meinen Vokabeltrainer:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
unit Unit1;

interface

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

type twords=record
    englisch:tstringlist;
    deutsch:tstringlist;
    gewusst:array of boolean;
  end;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Options1: TMenuItem;
    Ende1: TMenuItem;
    EnglischDeutsch1: TMenuItem;
    DeutschEnglisch1: TMenuItem;
    Open1: TMenuItem;
    Save1: TMenuItem;
    Beenden1: TMenuItem;
    Neustart1: TMenuItem;
    Label1: TLabel;
    Label2: TLabel;
    Drucken1: TMenuItem;
    Button1: TButton;
    WahrLabel: TLabel;
    Info1: TMenuItem;
    OD: TOpenDialog;
    AnzahlLabel: TLabel;
    Button2: TButton;
    SD: TSaveDialog;
    ipp1: TMenuItem;
    procedure Ende1Click(Sender: TObject);
    procedure EnglischDeutsch1Click(Sender: TObject);
    procedure DeutschEnglisch1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Info1Click(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Neustart1Click(Sender: TObject);
    procedure Save1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure ipp1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure beenden;
    procedure check;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  worter:twords;
  newwords:tstringlist;
  count,aktuelle,komplett:integer;

implementation

{$R *.dfm}

procedure tform1.check;
var zwischenspeicher:integer;
begin
if komplett=count then
  begin
    showmessage('Bitte bei Options Reset drücken!');
    exit;
  end;
if button1.Caption='Next!' then
  begin
    newwords.Add(edit1.Text);
    newwords.add(edit2.Text);
    Anzahllabel.Caption:='Wörter:'+inttostr(newwords.count div 2);
    edit2.Clear;
    edit1.Clear;
  end
else
begin
if worter.englisch.Count=0 then exit;
if deutschenglisch1.Checked=true then
  begin
    if edit2.Text=worter.englisch[aktuelle] then
      begin
        wahrlabel.Caption:='Richtig!';
        worter.gewusst[aktuelle]:=true;
        komplett:=komplett+1;
      end
    else
      begin
        wahrlabel.Caption:='Falsch!';
        showmessage('Richtig: '+worter.englisch[aktuelle]);
      end;
    if komplett=count then
      begin
        showmessage('Du bist fertig und hast alles gewusst!');
        exit;
      end;
    repeat
      randomize;
      zwischenspeicher:=random(count);
    until ((worter.gewusst[zwischenspeicher]=false) and (aktuelle<>zwischenspeicher));
    aktuelle:=zwischenspeicher;
    edit1.Text:=worter.deutsch[aktuelle];
    edit2.Text:='';
  end;
if englischdeutsch1.Checked=true then
  begin
    if edit2.Text=worter.deutsch[aktuelle] then
      begin
        wahrlabel.Caption:='Richtig!';
        worter.gewusst[aktuelle]:=true;
        komplett:=komplett+1;
      end
    else
      begin
        wahrlabel.Caption:='Falsch!';
        showmessage('Richtig: '+worter.deutsch[aktuelle]);
      end;
    if komplett=count then
      begin
        showmessage('Du bist fertig und hast alles gewusst!');
        exit;
      end;
    repeat
      randomize;
      zwischenspeicher:=random(count);
    until ((worter.gewusst[zwischenspeicher]=false) and (aktuelle<>zwischenspeicher));
    aktuelle:=zwischenspeicher;
    edit1.Text:=worter.englisch[aktuelle];
    edit2.Text:='';
  end;
end;
end;
procedure tform1.beenden;
begin
  //soll aktuelle stelle gespeichertwerden?
  Close;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin  
 if Key=#13 then
   begin  
      key:= #0;
      check; 
   end;
end;

procedure TForm1.Ende1Click(Sender: TObject);
begin
  beenden;
end;

procedure TForm1.EnglischDeutsch1Click(Sender: TObject);
begin
  if Englischdeutsch1.Checked=false  then
    begin
      deutschenglisch1.Checked:=false;
      Englischdeutsch1.Checked:=true;
      Label1.Caption:='Englisch:';
      label2.Caption:='Deutsch:';
      edit1.Text:=worter.englisch[aktuelle];
    end
end;

procedure TForm1.DeutschEnglisch1Click(Sender: TObject);
begin
  if deutschenglisch1.Checked=false  then
    begin
      Englischdeutsch1.Checked:=false;
      deutschenglisch1.Checked:=true;
      Label1.Caption:='Deutsch:';
      label2.Caption:='Englisch:';
      edit1.Text:=worter.deutsch[aktuelle];
    end
end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
  beenden;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
check;
end;

procedure TForm1.Info1Click(Sender: TObject);
begin
  showmessage('Proggt by Huhn!');
end;

procedure TForm1.Open1Click(Sender: TObject);
var u:integer;
    F1:textfile;
    loadword:string;
begin
worter.englisch.Clear;
worter.deutsch.Clear;
count:=0;
od.Filter:='Textdatei|*.txt';
if od.Execute then
  begin
    assignfile(f1,od.filename);
    reset(f1);
    while not SeekEof(f1) do
    begin
      Readln(f1,loadword);
      worter.englisch.Add(loadword);
      Readln(f1,loadword);
      worter.deutsch.Add(loadword);
      count:=count+1;
    end;
    closefile(f1);
    anzahllabel.Caption:='Wörter:'+inttostr(count);
    setlength(worter.gewusst,count-1);
    for u:=0 to count-1 do
      begin
        worter.gewusst[u]:=false;
      end;
  end;
randomize;
aktuelle:=random(count-1);
if deutschenglisch1.Checked=true then edit1.text:=worter.deutsch[aktuelle]
else edit1.text:=worter.englisch[aktuelle];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:='Deutsch:';
label2.Caption:='Englisch:';
worter.englisch:=tstringlist.Create;
worter.deutsch:=tstringlist.Create;
komplett:=0;
end;

procedure TForm1.Neustart1Click(Sender: TObject);
var r:integer;
begin
for r:=0 to count do
  begin
    worter.gewusst[r]:=false;
  end;
komplett:=0;
edit2.Text:='';
end;

procedure TForm1.Save1Click(Sender: TObject);
begin
label1.Caption:='Englisch:';
edit1.Enabled:=true;
label2.Caption:='Deutsch:';
edit2.Enabled:=true;//nur zur sicherheit!
Button1.Caption:='Next!';
button2.Visible:=true;
options1.Enabled:=false;
Datei1.Enabled:=false;
newwords:=tstringlist.Create;

showmessage('Oben Englisch, unten Deutsch! Dann auf "Next!" um weitere Wörter einzugeben oder "Fertig!Speichern!" um zu speichern!');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
sd.Filter:='Textfile|*.txt';
if sd.Execute then
  begin
    if FileExists(Sd.FileName) then
      begin
        if messagedlg('Vorhandene Datei überschreiben?',mtwarning, [mbyes,mbno],7) = mryes
        then newwords.SaveToFile(sd.filename);
      end
    else
      begin
        newwords.SaveToFile(sd.filename+'.txt');
      end;
    newwords.clear;
    options1.Enabled:=true;
    Datei1.Enabled:=true;
    Button1.Caption:='Check!';
    Button2.Visible:=false;
    edit1.Enabled:=false;
    showmessage('Wörter wurden gespeichert!');
  end;
end;

procedure TForm1.ipp1Click(Sender: TObject);
var tipp:string;
laenge,e:integer;
begin
e:=1;
if deutschenglisch1.Checked=true then
  begin
    tipp:=worter.englisch[aktuelle];
    laenge:=length(tipp);
    for e:=1 to laenge do
      begin
        if e mod 2=0 then
          begin
            if tipp[e]=' ' then  tipp[e]:='-';
            edit2.text:=edit2.Text+tipp[e];
          end
        else
          begin
            if tipp[e]=' ' then edit2.text:=edit2.Text+'-'
            else edit2.text:=edit2.Text+'_';
          end;
      end;
  end;
if englischdeutsch1.Checked=true then
  begin
    tipp:=worter.deutsch[aktuelle];
    laenge:=length(tipp);
    for e:=1 to laenge do
      begin
        if e mod 2=0 then
          begin
            if tipp[e]=' ' then  tipp[e]:='-';
            edit2.text:=edit2.Text+tipp[e];
          end
        else
          begin
            if tipp[e]=' ' then edit2.text:=edit2.Text+'-'
            else edit2.text:=edit2.Text+'_';
          end;
      end;
  end;
end;

end.

Ich hoffe du fängst was damit an°! :D
mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
lightning
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 07.04.05 18:33 
vielen dank, genau das hab ich gesucht ;)
Silberwolf
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 306

Win XP Home SP2
D5 Prof, D2k5 Pers
BeitragVerfasst: Do 07.04.05 18:42 
Oooh ja, für nen Vokalbtrainer wäre ich auch, ganz klar :wink: !
Blos ich kanns nicht runterladen.

user profile iconpascal4free hat folgendes geschrieben:
...Raus kam bei der ganzen Sache das [url=www.crazy-mods.com/p...er.rar]hier[/url]...

Bei mir geht der Link net, wenns der is

_________________
Gestorben, aber nicht vergessen...
lightning
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 08.04.05 13:04 
jo, wär nett wenn du den nochmal uppen könntest, ich wollte auch nochmal was gucken.
muppet max
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 16.04.06 17:28 
Ich wollte das Programm downloaden und dann:

Zitat:
Not Found
The requested URL /progs/Vokabeltrainer.rar was not found on this server.


:twisted: :evil: :twisted: :evil:
sebjensen
Hält's aus hier
Beiträge: 14

Win XP, Suse Linux 9.3
Dephi 6.0
BeitragVerfasst: Do 22.06.06 08:27 
Ich würde den auch gerne nochmal downloaden.
Aber leider geht der Download immer noch nicht.