| Autor |
Beitrag |
Gina_86
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 21.04.05 19:09
Hallo,
bin grad dabei für die Schule ein Programm nach diesem Muster zu erstellen:
[url] www.oszhdl.be.schule...pat99/muster_2.2.htm
Nur dass es sich bei mir um eine Fildatenbank handelt.
Hab die Fenster Unit, eine ListenUnit (mit sämtlichen Listenoperationen) und eine FilmUnit (also zu jedem Film Titel, Inhalt, Genre...).
Möchte nun in einer Listbox nur die Titel der Filme anzeigen, aber ich hab einfach keine Idee wie.
Weil ich muss ja irgendwie die ganze Liste durchgehen und dann aus jedem Film (also jeder Position) den Titel kopieren...
Kann mir da vielleicht jemand helfen?
Wäre superlieb!
Bye
Gina
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Do 21.04.05 19:57
Vielleicht kannst du dir den Filmtitel markieren mit einem zeichen wie zumbeispiel *alt gedrückthalten+0160 auf dem nummernblock* sieht aus wie ne leertaste, ist aber ein anderes zeichen. dann versuchst du es mit dem befehl POS... oder wo genau ist das problem? vielleicht sollte ein listeneintrag dann so aussehen:
Quelltext 1:
| dauer nochsowas irgentwas nochmalwas *ALT 0160* TITEL!!! |
und dann kannst du mit COPY auch gleich die entsprechende stelle rauskopieren.
Ich hoffe ich habe dein Problem richtig verstanden...
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
sourcehunter
      
Beiträge: 482
Win XP | Suse 10.1
Delphi 2005 Pers.
|
Verfasst: Fr 22.04.05 19:29
Wenn ich dich richtig verstanden habe, dann hat die Klasse Film bei dir die Eigenschaften Name,Inhalt,Genre... . Dann musst du doch nur alle Elemente der Liste durchgehen und dir den Namen des Fils geben lassen. Ich weiß nicht, wie deine Liste aussieht, aber wenn du Delphis TList nimmst, dann kannst du das so machen:
Delphi-Quelltext 1: 2: 3: 4:
| for i:=1 to FilmListe.Count do begin ListBox1.Add(TFilm(FilmListe.Items[i-1]).GetName); end; |
Dabei solltest du beachten, dass TFilm der Name der Filmklasse und GetName eine von dir selbst implementierte Methode ist, die den Namen eines Film-Objektes zurückgibt.
_________________ Linux und OpenSource rulez!
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Fr 22.04.05 19:39
Hallo,
Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:
| Richtlinien: |
1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!
Gruß,
raziel
_________________ JSXGraph
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 23.04.05 15:53
... hatte ich auch schon sagen wollen...
... wetten, dass der genau diese nachricht entweder bei sich in ner textdatei gespeichert hat, oder dass das forum eine Moderatorfunktion hat, die das generieren solcher posts übernimmt? xD
... Hatte ich schon gesagt, dass wir deinen Quellcode brauchen könnten? sourcehunter hatte schon einen quelltext mit einer selbsterstellten klasse geschrieben, aber keiner weis, wie genau du das machst... Hast du denn solch eine klasse?
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Gina_86 
Hält's aus hier
Beiträge: 2
|
Verfasst: Sa 23.04.05 16:59
Hier erst mal meine Quellcodes:
Sind insgesamt 3 Units: Fenster, Liste und Film.
Fenster:
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:
| unit Fenster;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Film, Liste ;
type TForm1 = class(TForm) ListBox1: TListBox; ETitel: TEdit; EGenre: TEdit; ESchauspieler: TEdit; EInhalt: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; BNeu: TButton; Bandern: TButton; BSuchen: TButton; BLoschen: TButton; Banzeigen: TButton; procedure FormCreate(Sender: TObject); procedure BandernClick(Sender: TObject); procedure BNeuClick(Sender: TObject); procedure BanzeigenClick(Sender: TObject);
private public procedure init; procedure DatenAktualisieren (var Film:TFilm); procedure MaskeAktualisieren (Film:TFilm); end;
var Form1: TForm1; aktuellerFilm: TFilm; Filmliste:TListe ;
implementation
{$R *.dfm}
procedure TForm1.Init;
begin ETitel.Text := ''; EGenre.Text := ''; ESchauspieler.Text := ''; EInhalt.Text := '';
end;
procedure TForm1.FormCreate(Sender: TObject); begin Form1.Init; Filmliste := TListe.Create; aktuellerFilm:=TFilm.Create; end;
procedure TForm1.DatenAktualisieren (var Film:TFilm); begin Film.SetTitel(ETitel.text); Film.SetGenre(EGenre.text); Film.SetSchauspieler(ESchauspieler.text); Film.SetInhalt(EInhalt.text); end;
procedure TForm1.MaskeAktualisieren (Film:TFilm); Begin ETitel.text:=Film.GetTitel; EGenre.text:=Film.GetGenre; ESchauspieler.text:=Film.GetSchauspieler; EInhalt.text:=Film.GetInhalt; end;
procedure TForm1.BandernClick(Sender: TObject); begin if Filmliste.IsEmpty then showmessage(' Keine Einträge vorhanden') else begin DatenAktualisieren(aktuellerFilm); Filmliste.SetElement(aktuellerFilm); end;
end; procedure TForm1.BNeuClick(Sender: TObject);
begin aktuellerFilm:=TFilm.Create; Datenaktualisieren (aktuellerFilm); Filmliste.Append (aktuellerFilm); init;
end;
procedure TForm1.BanzeigenClick(Sender: TObject);
begin Filmliste.first; repeat listbox1.Items.add(aktuellerFilm.GetTitel); Filmliste.Next; until Filmliste.IsLast; end;
end. |
Hier der der Liste:
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:
| UNIT Liste;
INTERFACE uses classes, Sysutils, Film;
const MAXLAENGE = 100;
type Pointer=TFilm; TListe = class (TObject) protected Kollektion : array [0..MAXLAENGE + 1] of Pointer; ListenLaenge, AktuellePos : integer;
public constructor Create; virtual; procedure Init; virtual;
procedure First; virtual; procedure Next ; virtual; procedure previous; virtual; procedure Last ; virtual;
function GetElement : Pointer; virtual; procedure SetElement (Elem : Pointer); virtual; procedure Append (Elem : Pointer); virtual; procedure Remove; virtual; procedure RemoveAll; virtual; function GetLen : integer ; virtual; function GetAktuellePos : integer ; virtual;
function EoList : boolean; virtual; function IsFirst : boolean; virtual; function IsLast : boolean; virtual; function IsEmpty : boolean; virtual; function IsFull : boolean; virtual; end;
IMPLEMENTATION
constructor TListe.Create;
begin inherited Create; Init; end;
procedure TListe.Init;
var i : integer; begin for i := 0 to MAXLAENGE +1 do begin Kollektion[i] := NIL; end; ListenLaenge := 0; AktuellePos := 0; end;
procedure TListe.First;
begin If NOT IsEmpty then AktuellePos := 1; end;
procedure TListe.Next;
Begin if NOT (IsEmpty OR IsLast) then AktuellePos := AktuellePos + 1; end;
procedure TListe.Previous;
begin if NOT (IsEmpty or IsFirst) then AktuellePos := AktuellePos - 1; end;
procedure TListe.Last;
begin if NOT (IsEmpty) then AktuellePos := ListenLaenge ; end;
function TListe.GetElement : Pointer;
begin Result := Kollektion[AktuellePos]; end;
procedure TListe.SetElement (Elem : Pointer);
begin Kollektion[AktuellePos] := Elem; end;
procedure TListe.Append (Elem : Pointer);
begin if NOT IsFull then begin AktuellePos := Listenlaenge + 1; SetElement(Elem); inc (ListenLaenge); end; end;
procedure TListe.Remove;
var i : Cardinal;
begin if NOT IsEmpty then begin for i := aktuellepos to ListenLaenge do Kollektion[i] := Kollektion[i+1];
Kollektion[ListenLaenge] := NIL; dec(ListenLaenge); AktuellePos := 0; end; end;
procedure TListe.RemoveAll;
begin if NOT IsEmpty then Init; end;
function TListe.GetLen : integer ;
begin Result := ListenLaenge; end;
function TListe.GetAktuellePos : integer ;
begin Result := AktuellePos; end;
function TListe.EoList : boolean;
begin if Kollektion[AktuellePos] = NIL then Result := true else Result := false; end;
function TListe.IsFirst : boolean;
begin if AktuellePos = 1 then Result := true else Result := false; end;
function TListe.IsLast : boolean;
begin if AktuellePos = ListenLaenge then Result := true else Result := false; end;
function TListe.IsEmpty : boolean ;
begin Result := false; if ListenLaenge = 0 then Result := true; end;
function TListe.IsFull : boolean ;
begin Result := false; if ListenLaenge = MAXLAENGE then Result := true; end;
END. |
und der des Films:
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:
| UNIT Film;
INTERFACE
USES Classes;
type TFilm = class (TObject) protected Titel, Genre, Schauspieler, Inhalt:string;
public
constructor Create; virtual; procedure Init; virtual; procedure SetTitel (n: string); virtual; procedure SetGenre (vn: string); virtual; procedure SetSchauspieler (gb : string); virtual; procedure SetInhalt (g: string); virtual;
function GetTitel : string; virtual; function GetGenre : string; virtual; function GetSchauspieler : string; virtual; function GetInhalt : string; virtual;
function IstGleich (suchFilm : TFilm) : boolean; virtual;
procedure InDateiSchreiben (var fs : TFilestream); virtual; procedure AusDateiLesen (var fs : TFilestream); virtual; end;
IMPLEMENTATION
constructor TFilm.Create;
begin inherited Create; Init; end;
procedure TFilm.Init;
begin Titel := ''; Genre := ''; Schauspieler := ''; Inhalt := ''; end;
procedure TFilm.SetTitel (n: string);
begin Titel := n; end;
procedure TFilm.SetGenre (vn: string);
begin Genre := vn; end;
procedure TFilm.SetSchauspieler (gb: string);
begin Schauspieler := gb; end;
procedure TFilm.SetInhalt (g: string);
begin Inhalt := g; end;
function TFilm.GetTitel : string;
begin result := Titel; end;
function TFilm.GetGenre : string;
begin result := Genre; end;
function TFilm.GetSchauspieler : string;
begin result := Schauspieler; end;
function TFilm.GetInhalt : string; begin result := Inhalt; end;
function TFilm.IstGleich (suchFilm : TFilm) : boolean;
begin result := false; if suchFilm.Titel = Titel then result := true end;
procedure TFilm.InDateiSchreiben (var Fs : TFileStream);
begin Fs.write(Titel, SizeOf(Titel)); Fs.write(Genre, SizeOf(Genre)); Fs.write(Schauspieler, SizeOf(Schauspieler)); Fs.write(Inhalt, SizeOf(Inhalt)); end;
procedure TFilm.AusDateiLesen (var Fs : TFileStream) ;
begin Fs.read(Titel, SizeOf(Titel)); Fs.read(Genre, SizeOf(Genre)); Fs.read(Schauspieler, SizeOf(Schauspieler)); Fs.read(Inhalt, SizeOf(Inhalt)); end;
END. |
Im Quellcode der Unit Fenster hab ich nochmal auf das Problem hingewiesen!
bye[/i]
Moderiert von Gausi: Color Tags gehen innerhalb von Delphi-Tags nicht. Hab sie durch Highlight ersetzt, um auf das Problem hinzuweisen.
|
|
|