| Autor |
Beitrag |
gangstaberber
Hält's aus hier
Beiträge: 15
|
Verfasst: Mo 15.03.04 17:18
Hallo ich wollte eine datenbank erstellen mit 2spalten und sehr vielen zeilen. mit einer frage und der antwort in der spalte. Ich habs erstmal mit Access versucht hab aber leider nicht geschaft dann mit delphi darauf zuzugreifen..
Kann mir jemand sagen wie ich das realiesieren kann?
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Mo 15.03.04 22:54
hallo gangstaberber!
zunächst wärs mal gut zu wissen, mit welcher delphi version du arbeitest und ob du datenbankkomponenten dabei hast.
| Zitat: | | ...hab aber leider nicht geschaft dann mit delphi darauf zuzugreifen.. |
wie hast du es versucht und woran ist dein versuch gescheitert?
ich frag nur mal nach, damit dieser thread nicht auch in eine rätsel-rally ausartet
mfg, stefan
|
|
gangstaberber 
Hält's aus hier
Beiträge: 15
|
Verfasst: Di 16.03.04 17:43
also ich benutze delphi 6, ich denke ich mach das jetzt anders.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| Sourcecode: procedure TForm1.bu_frageClick(Sender: TObject); var Datenbank : TInifile; AlleFragen : TStringlist; Frage : string; begin AlleFragen := TStringlist.create; Datenbank:=TInifile.create('C:\Windows\Desktop\Datenbank.ini'); Datenbank.ReadSections(AlleFragen); Randomize; Frage:=AlleFragen[random(AlleFragen.Count)];
label_frage.caption:=Datenbank.ReadString(Frage,'Frage',''); label_a1.caption:=Datenbank.ReadString(Frage,'Antwort1',''); label_a2.caption:=Datenbank.ReadString(Frage,'Antwort2',''); label_a3.caption:=Datenbank.ReadString(Frage,'Antwort3',''); label_a4.caption:=Datenbank.ReadString(Frage,'Antwort4','');
Datenbank.Free; AlleFragen.free; end; : |
Ini datei
Code:
[Frage1]
Frage=Wie heisse ich?
Antwort1=Ich
Antwort2=Du
Antwort3=Er
Antwort4=Kallar Hari
[Frage2]
Frage=Was war das?
Antwort1=Was war was?
Antwort2=Das? Das war nix
Antwort3=Kalle wars!
Antwort4=Nein
[Sinnlose Frage]
Frage=Gehts noch?
Antwort1=Ja
Antwort2=Nein
Antwort3=42
Antwort4=wwaaahh
diese lösung hab ich aus diesem forum und werde die übernehmen.
kann mir jemand sagen was ich es ändernkann das die fragen immer in der gleichen reihenfolge kommen?
und was muss ich angeben wenn sich die ini datei immer in demm verzeinies des programms aufhält?
|
|
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Di 16.03.04 19:23
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:
| FNr: Integer;
procedure TForm1.bu_frageClick(Sender: TObject); var Datenbank : TInifile; AlleFragen : TStringlist; Frage : string; begin AlleFragen := TStringlist.create; Datenbank:=TInifile.create(ExtractFilePath(Application.Exename) + 'Datenbank.ini'); try Datenbank.ReadSections(AlleFragen);
if FNr >= AlleFragen.Count then exit;
Frage:=AlleFragen[FNr]; inc(FNr);
label_frage.caption:=Datenbank.ReadString(Frage,'Frage',''); label_a1.caption:=Datenbank.ReadString(Frage,'Antwort1',''); label_a2.caption:=Datenbank.ReadString(Frage,'Antwort2',''); label_a3.caption:=Datenbank.ReadString(Frage,'Antwort3',''); label_a4.caption:=Datenbank.ReadString(Frage,'Antwort4',''); finally Datenbank.Free; AlleFragen.free; end; end; |
also, ich habe den code mal etwas modifiziert.
Sollte jetzt das machen, was du willst.
Musst im OnCreate des Formulars noch FNr:= 0; schreiben und gut ist.
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
gangstaberber 
Hält's aus hier
Beiträge: 15
|
Verfasst: Di 16.03.04 19:45
vielen dank da ist genau das was ist brauche
ich hab denn sound von jeparty und würde den kerne im hintergrund des programms abspielen lassen.
das ist eine 1.2 mb grosse mp3 , muss ich die umwandeln?
wenn wie?
sag mal wieso benutz du try und finally?
was machen diese befehle ?
die delhpi hilfe kapier ich nix 
|
|
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Di 16.03.04 20:01
| gangstaberber hat folgendes geschrieben: | | sag mal wieso benutz du try und finally? |
Hallo,
ich benutze einen try...finally...end Block, um den speicher freizugeben der beim create der erzeugten objekte alloziiert wurde. Und ausserdem habe ich ein exit in der methode, und das bedeutet der anschließende code wird nimmer ausgeführt, wenn der exit-fall eintritt. da kommt dann das finally mit ins spiel... weiteres in der hilfe zu exit und try finally
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
gangstaberber 
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 17.03.04 01:08
ach so nochmal vielen dank,
ich bin mir nicht sicher ob das hier reingehört aber ich suche nach einem befehl der das ganze programm wieder in denn anfangszustand versetzt so was wie ein kompletter neustart.
Gibt es sowas?
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Mi 17.03.04 17:35
hallo gangstaberber!
versuchs mal mit Form1.Reset
es wird dir nichts anderes übrigbleiben, dass du alle eingabe- & anzeigefelder selbst löscht.
du könntest ja eine procedure dafür anlegen...
mfg, stefan
|
|