AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bibliotheksverwaltung

Ein Thema von funkuchn · begonnen am 10. Jan 2010 · letzter Beitrag vom 10. Jan 2010
Antwort Antwort
Seite 1 von 3  1 23      
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#1

Bibliotheksverwaltung

  Alt 10. Jan 2010, 15:26
Hey Leute...
Ich sitze total in der Patsche.
Erstmal was ich machen soll :
Ich soll eine Art Bibliotheksverwaltung mit Delphi programmieren,dazu soll ich iwie ein Stringgrid nutzen und die Buttons die man normalerweise macht ins Mainmenu hauen
Ja.... ähm iwie mit Auto, ISBN, Buchtitel dann ausgeliehen oder nicht und wer aus welcher Klasse es ausgeliehen hat
OMG!
Jetzt war ich letzte Woche krank, als das erklärt wurde und muss das Mittwoch abgeben
Ich habe das Programm schon gemacht, aber mit nem Memo und das soll so nicht sein...
könnt ihr mir in irgendeiner Art und Weise helfen?
Bin total fertig weil ich rein gar nichts mehr verstehe und auch nicht mit den Stringgrids klarkomme...soll ja auch alles noch gespeichert weden und geladen und so...
versteht ihr mein Problem??
LG, Susi
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#2

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 15:32
Zeig doch mal, was Du bisher hast.
Dann können wird Dir gerne erklären, was Du umstellen mußt. Sonst sieht das hier doch zu sehr nach Hausaufgaben machen aus und dabei helfen wir zwar gerne, machen mußt Du sie aber selber
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#3

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 15:39
okay, dann ist hier der Quelltext...
Delphi-Quellcode:
nit Unit1;

interface

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

  const max=100;
  type
  Bibo=record
   Buchtitel:string[20];
   ISBN:byte;
   Autor:string[20];
   Name:string[20];
   Vorname:string[20];
   Klasse:string[20];
   ausgeliehen:boolean;
  end;
  f=array[1..max] of Bibo;
  TBibliothekshilfe = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Speichern1: TMenuItem;
    Laden1: TMenuItem;
    Lschen1: TMenuItem;
    Beenden1: TMenuItem;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Label11: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ListBox1: TListBox;
    Eintragndern1: TMenuItem;
    Button4: TButton;
    procedure Button4Click(Sender: TObject);
    procedure Eintragndern1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Speichern1Click(Sender: TObject);
    procedure Laden1Click(Sender: TObject);
    procedure Lschen1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Bibliothekshilfe: TBibliothekshilfe;

implementation
var Feld:f;
    i:integer;
{$R *.dfm}

procedure TBibliothekshilfe.Beenden1Click(Sender: TObject);
begin
 close;
end;

procedure Speichern(sp:f);
 var x:integer;
  datei:file of Bibo;
 begin
 assignfile(datei,'C:\Bibo.txt');
 rewrite(datei);
  For x:=1 to i do
   write(datei,Feld[x]);
   closefile(datei);
 end;
 
procedure TBibliothekshilfe.Speichern1Click(Sender: TObject);
var x:integer; astring:string;
begin
 i:=i+1;
 Feld[i].Buchtitel:=edit1.Text;
 Feld[i].ISBN:=StrToInt(edit2.Text);
 Feld[i].Autor:=edit3.Text;
 Feld[i].Name:=edit4.Text;
 Feld[i].Vorname:=edit5.Text;
 Feld[i].Klasse:=edit6.Text;
 Feld[i].ausgeliehen:=radiobutton1.Checked;

 Speichern(Feld);
 Listbox1.Items.clear;

 for x:=1 to i do
   begin
    astring:='Buch "'+Feld[x].Buchtitel+'" (ISBN: '+inttostr(Feld[x].ISBN)+') ist ';
     if Feld[x].ausgeliehen then
       astring:=astring+'ausgeliehen an '+Feld[x].vorname+' '+Feld[x].name+'.'
     else
       astring:= astring+' nicht ausgeliehen.';
    listbox1.Items.add(astring);
  end;
end;

procedure Laden(var la:f);
var datei:file of Bibo;
 begin
 i:=0;
 assignfile(datei,'C:\Bibo.txt');
 reset(datei);
 WHILE not EOF(datei) DO
  begin
  i:=i+1;
  read(datei,la[i]);
  end;
 closefile(datei);
 end;


procedure TBibliothekshilfe.Laden1Click(Sender: TObject);
var x:integer;astring:string;
begin
 Laden(Feld);

 listbox1.Items.Clear;

 For x:=1 to i DO
 begin
  astring:='Buch "'+Feld[x].Buchtitel+'" (ISBN: '+inttostr(Feld[x].ISBN)+') ist ';
  if Feld[x].ausgeliehen then
     astring:=astring+'ausgeliehen an '+Feld[x].vorname+' '+Feld[x].name+'.'
   else
     astring:= astring+' nicht ausgeliehen.';
  listbox1.Items.add(astring);
 end;
end;

procedure TBibliothekshilfe.Lschen1Click(Sender: TObject);
begin
 edit1.Clear;
 edit2.Clear;
 edit3.Clear;
 edit4.Clear;
 edit5.Clear;
 edit6.Clear;
 listbox1.items.clear;
end;

procedure TBibliothekshilfe.FormActivate(Sender: TObject);
begin
 edit1.Clear;
 edit2.Clear;
 edit3.Clear;
 edit4.Clear;
 edit5.Clear;
 edit6.Clear;
 listbox1.Items.clear;
end;

procedure TBibliothekshilfe.FormCreate(Sender: TObject);
begin
 i:=0;
end;

procedure TBibliothekshilfe.Button1Click(Sender: TObject);
var x:integer;
begin

for x:=1 to length(feld) do
   if uppercase(Feld[x].Buchtitel)=uppercase(edit7.text) then
     begin
       showmessage('Das Buch mit dem Titel '+Feld[x].Buchtitel+' wurde gefunden!');
       if Feld[x].ausgeliehen then
         showmessage('Es ist momentan an den Schüler '+Feld[x].Vorname+' '+feld[x].name+ ' ausgeliehen.')
       else
         showmessage('Es ist momentan nicht ausgeliehen!');
     end;


end;

procedure TBibliothekshilfe.Button2Click(Sender: TObject);
var x:integer;
begin

for x:=1 to length(feld) do
   if (Feld[x].ISBN)=strtoint(edit8.text) then
     begin
       showmessage('Das Buch mit dem Titel '+Feld[x].Buchtitel+' und der ISBN '+ inttostr(Feld[x].isbn)+' wurde gefunden!');
       if Feld[x].ausgeliehen then
         showmessage('Es ist momentan an den Schüler '+Feld[x].Vorname+' '+feld[x].name+ ' ausgeliehen.')
       else
         showmessage('Es ist momentan nicht ausgeliehen!');
     end;


end;

procedure TBibliothekshilfe.Button3Click(Sender: TObject);
var x:integer;
begin

for x:=1 to length(feld) do
   if uppercase(Feld[x].autor)=uppercase(edit9.text) then
     begin
       showmessage('Das Buch mit dem Autor '+Feld[x].autor+' und der ISBN '+ inttostr(Feld[x].isbn)+' wurde gefunden!');
       if Feld[x].ausgeliehen then
         showmessage('Es ist momentan an den Schüler '+Feld[x].Vorname+' '+feld[x].name+ ' ausgeliehen.')
       else
         showmessage('Es ist momentan nicht ausgeliehen!');
     end;

end;

procedure TBibliothekshilfe.ListBox1Click(Sender: TObject);
begin
edit1.Text:=Feld[Listbox1.itemindex+1].Buchtitel;
edit2.Text:=inttostr(Feld[Listbox1.itemindex+1].ISBN);
edit3.text:=Feld[Listbox1.itemindex+1].Autor;
edit4.text:=Feld[Listbox1.itemindex+1].name;
edit5.text:=Feld[Listbox1.itemindex+1].vorname;
edit6.text:=Feld[Listbox1.itemindex+1].klasse;

Radiobutton1.Checked:=Feld[Listbox1.itemindex+1].ausgeliehen;
Radiobutton2.Checked:=not Radiobutton1.Checked;

end;

procedure TBibliothekshilfe.Eintragndern1Click(Sender: TObject);
var x:integer; astring:string;
begin
if listbox1.itemindex<0 then exit;

if messagedlg('Der in der Listbox angeklickte Eintrag wird mit den neu eingegebenen Daten überschrieben. Soll ich fortfahren?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
Feld[Listbox1.itemindex+1].Buchtitel:=edit1.text;
Feld[Listbox1.itemindex+1].ISBN:=strtoint(edit2.text);
Feld[Listbox1.itemindex+1].Autor:=edit3.text;
Feld[Listbox1.ItemIndex+1].name:=edit4.text;
Feld[Listbox1.itemindex+1].vorname:=edit5.text;
Feld[Listbox1.itemindex+1].klasse:=edit6.text;
Feld[listbox1.itemindex+1].ausgeliehen:=radiobutton1.checked;

Speichern(Feld);
 Listbox1.Items.clear;

 for x:=1 to i do
   begin
    astring:='Buch "'+Feld[x].Buchtitel+'" (ISBN: '+inttostr(Feld[x].ISBN)+') ist ';
     if Feld[x].ausgeliehen then
       astring:=astring+'ausgeliehen an '+Feld[x].vorname+' '+Feld[x].name+'.'
     else
       astring:= astring+' nicht ausgeliehen.';
    listbox1.Items.add(astring);
  end;



end;



end;

procedure TBibliothekshilfe.Button4Click(Sender: TObject);
var x,y,z:integer; max:byte; dummy:bibo;
   astring:string;
begin

max:=0;


for x:= 1 to i do
begin
  z:=0;
  max:=0;
  for y:=x to i do
    if max<Feld[y].isbn then
      begin
        max:=Feld[y].isbn;
        z:=y;
      end;
 if z>0 then
  begin
   dummy:=Feld[x];
   Feld[x]:=Feld[z];
   Feld[z]:=dummy;
  end;
end;

 Listbox1.Items.clear;

 for x:=1 to i do
   begin
    astring:='Buch "'+Feld[x].Buchtitel+'" (ISBN: '+inttostr(Feld[x].ISBN)+') ist ';
     if Feld[x].ausgeliehen then
       astring:=astring+'ausgeliehen an '+Feld[x].vorname+' '+Feld[x].name+'.'
     else
       astring:= astring+' nicht ausgeliehen.';
    listbox1.Items.add(astring);
  end;


end;

end.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 15:41
häng bitte mal das ganze projekt gepackt an, sodass man es direkt in Delphi aufmachen kann. Danke!
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#5

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 15:43
achso, sry...
Angehängte Dateien
Dateityp: rar bibo_196.rar (212,8 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#6

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 16:23
hmm Leute...habt ihr jetzt iwie ne Lösung parat??
  Mit Zitat antworten Zitat
PPaB

Registriert seit: 23. Jan 2009
35 Beiträge
 
#7

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 16:29
Also du musst statt der Listbox einfach eine TStringGrid in die Form einfügen ( Such einfach mal, falls du sie noch nicht gefunden hast). Dann würde ich dort einfach umändern bei den Eigenschaften:
ColCount : 6 --> da du ja 6 Spalten brauchst
FixedRows: 0 --> würde nur eine Fixierte Reihe nehmen in der du alle einteilungen titels.

Dann würde ich in der FormCreate- Procedure dies ändern:
Delphi-Quellcode:
procedure TBibliothekshilfe.FormCreate(Sender: TObject);
begin
 i:=0;
 StringGrid1.Cells[0,0] := 'Buchtitel';
 StringGrid1.Cells[1,0] := 'ISBN';
 StringGrid1.Cells[2,0] := 'Autor';
 StringGrid1.Cells[3,0] := 'Name';
 StringGrid1.Cells[4,0] := 'Vorname';
 StringGrid1.Cells[5,0] := 'Klasse';
end;
Dies bewirkt, dass du in die angegebenen Zeilen der StringGrid die jeweilgen Strings schreibst. Schau es dir dann einfach mal an.

Dann musst du bei der Eingabe statt dem Eintragen in Listbox, die Daten in die StringGrid übergeben. Du siehst ja oben, wie ich es gemacht hast und so musst du es auch einfach machen (nur statt der 0 eine Variable einsetzen, da du ja immer in eine neue Zeile schreiben möchtest).

Wichtig: Denke auch daran, dass irgendwann alle Reihen voll sind, also musst du immer am Anfang des Eintragens der Daten die Reihen der StringGrid erhöhen ( StringGrid1.ColCount := StringGrid1.ColCount +1; )

Hoffe ich hab soweit alles gut beschrieben, den Rest dürfest du so schaffen. Wenn du noch fragen hast bzw dir etwas unklar ist, dann sag bescheid.
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#8

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 16:34
ja ich hab noch so einige Fragen...
ich hab was vergessen und zwar soll bei [0,0] eine laufende Nummer oder sowas rein, ich glaube, dass muss ich iwie mit ner Schleife machen...aber wie??
und wie meinst das mit der variablen?
  Mit Zitat antworten Zitat
PPaB

Registriert seit: 23. Jan 2009
35 Beiträge
 
#9

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 16:51
Wie meinst du das mit der laufenden Nummer?
Das dann in der ersten Spalte einfach eine fortlaufende Nummerierung ist.

Also dann in der StringGrid: (die Trennstriche stehen für die trennung der Zellen)

1 | Buchname1 | ISBN... | ...
2 | Buchname2 | ISBN... |
3 | Buchname3 | ISBN... |
4 | Buchname4 | ISBN... |
5 | Buchname5 | ISBN... |
6 | Buchname6 | ISBN... |
7 | Buchname7 | ISBN... |

Dann kannst du das in der Formcreate auch einfach weglassen.

Dann musst du bei der Eingabe immer schreiben:

StringGrid1.Cells[0,X] := X + 1; --> Die fortlaufende Nummer
StringGrid1.Cells[1,X] := Feld[X].Buchtitel; --> Das ist dann der Buchtitel

usw. (Das X ist eine Variable des Typs Integer, so wie du sie bei dir schon hast)
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#10

Re: Bibliotheksverwaltung

  Alt 10. Jan 2010, 16:56
Sry aber ich versteh nur Bahnhof
die Theorie kapier ich ja, ich weiß, wie du es meinst, aber ich kann es absolut nicht umstzen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 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