Autor Beitrag
CurdledMilk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 27.05.05 18:17 
Hallo ihr!

Also ich bin noch Anfänger in Delphi und soll für die Schule einen Texteditor schreiben. Mein erstes größeres Problem liegt jetzt darin, die Möglichkeit zu schaffen, mehrere Texdokumente zu öffnen. Ich habe schon gesucht aber nichts so richtig in diese Richtung gefunden. Hoffe ihr könnt mir schnell helfen. Ich wöllte es gern so machen, das man diese dann über eine Karteikarte (wie bei firefox wenn mehrere Seiten geöffnet sind) auswählen kann.

Hoffe ihr könnt mir helfen.
stifflersmom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194

XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
BeitragVerfasst: Fr 27.05.05 18:19 
Wie wäre es mit einer MDI Applikation?

In D7 über Datei/Neu/Weitere/Projekte


Moin
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 27.05.05 18:29 
Hm da is ja dann schon alles vorgegeben. Das dürfen wir also nicht verwenden.
Gibt es auch noch weitere Möglichkeiten.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 27.05.05 18:39 
Datei\Neu\Form

Dort dann ein Sub-Fenster mit Editor implementieren...

Danach nur noch im Hauptfenster Menü und ähnliches erstellen und dann Für jede neue Textdatei ein eigenes Subfenster erstellen (Dynamisch, zur Laufzeit).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 27.05.05 18:51 
:shock:

Danke erst mal aber da ich wie gesagt noch Anfänger bin versteh ich einiges (viel *g*) davon nicht:

Sub-Fenster mit Editor implementieren?
Dynamisch, zur Laufzeit?

Wie mach ich es, das sich eine neues Textfeld öffnet wenn der user auf datei>neu klickt
und klappt es dann, das die Funktionen (Schrifftgröße etc.) auch für die neuen fenster gelten.?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 27.05.05 21:44 
Und zwar benötigst Du dafür eine TObjectList Dateien: TObjectList;, welches Du in deiner Main-Form deklarierst.

In TMainForm.Create initialisierst Du diese TObjectList dann mit Dateien := TObjectList.Create(true);

Klickt Der User dann auf Datei\Neu führst Du folgende beiden Zeilen aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var DateiFenster: TDeinDateiEditorForm;

Datei := TDeinDateiEditorForm.Create(nil);
Dateien.Add(Datei);


Wölltest Du nun eine existierende Datei öffnen, so könntest Du dies realisieren, indem Du Datei.OpenFile(FileName); aufrufst (sofern diese Methode in deiner Formularklasse TDeinDateiEditorForm implementiert ist (empfehelnswert).

TDeinDateiEditorForm kümmert sich dann um alle weiteren angelegenheiten zum Behandeln der Dateien (öffnen\speichern einer Datei). Guck Dir dazu mal die Komponenten TMemo und TRichEdit an.

HTH.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Sa 28.05.05 11:00 
Mhh ja.

was is diese Tobjektlist genauer is es ein objekt oder eine var wenn es ein objekt is wo is es dann in der Objektliste
wenn ich versuche es als var zu nehmen kommt das dabei raus

"[Fehler] Unit1.pas(19): Undefinierter Bezeichner: 'TObjectList'"
"[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden"
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 28.05.05 11:31 
Bitte benutze bei unbekannten Bezeichnern doch einfach die sich oben links auf deiner Tastatur befindliche F1-Taste, die Dir beim markieren des Bezeichners TObjectList im Quelltext sofort verraten hätte, dass Du die Unit Contnrs einbinden musst.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Sa 28.05.05 11:36 
Ja das hab ich gelesen konnte damit aber nichts anfangen.
Geh ich da auf Datei>neu>unit oder mach ich das irgend wie anders
stifflersmom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194

XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
BeitragVerfasst: Sa 28.05.05 12:10 
Du nimmst die Unit "Contnrs" unter uses mit auf,
das war's.

Aber mal ohne Dir zu nahe treten zu wollen,
ist Dein Delphi (object pascal) denn umfangreich genug,
um Dein Problem auch wirklich Programmiertechnisch
erschlagen zu können?
Denn eine Unit einzubinden sollte zum Grundstock eines
Delphi-Programmierers gehören.

Moin
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Sa 28.05.05 13:08 
Is halt ne Hausarbeit bis nächsten Freitag. (Wir haben dafür die ganze Woche frei) Auch wenn ichs nich kann muss ichs also machen. :D Wir sollen uns delphi so zu sagen näher erarbeiten.
Ich zeig ma wie ichs jetzt Hab einfach nur so zum probieren in einem neuen Delphi Progr.
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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Neu1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Neu1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Dateien: TObjectList;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Dateien := TObjectList.Create(true);
end;

procedure TForm1.Neu1Click(Sender: TObject);
var DateiFenster: TForm1;
    Datei:Textfile;
begin
Datei := TForm1.Create(nil);
Dateien.Add(Datei);
end;

end.


Fehlermeldung sind diese:

[Fehler] Unit1.pas(38): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] Unit1.pas(39): Inkompatible Typen: 'TObject' und 'Text'
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Moderiert von user profile iconAXMD: Code- durch Delphi-Tags ersetzt.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 28.05.05 16:56 
Siehe Beispiel-Abschnitt aus meinem Post ...
Damit erklären sich diese beiden Meldungen.

Dau benötigst dafür allerdings noch eine zweite Form, in der Du die Grunddinge zum bearbeiten der Datei einbaust.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: So 29.05.05 15:21 
Ich hab mich noch mal bisl drann versucht komm aber nicht wirklich weiter hab jetzt 2. Form(en) in Form1 Das Hauptprogramm (mit Datei>neu laden Speichern; Format>Text Formatieren Text Ausrichtung) und in Form2 Das MEMO wo der user drin schreiben soll. Wie muss ich dann jetzt den Quelltext schreiben.
Also was muss ich in den Stellen die du mir gegeben hast einfügen.

Danke noch mal für die bis jetzige Hilfe.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 29.05.05 21:03 
Eins nur kurz vorweg: Wir sind hier kein Hausaufgabenforum! D.h. das hier jegliche Hilfe freiwillig ist und daher ich (und auch kein anderer) verpflichtet ist, Dir hier deine Hausaufgaben zu lösen.

Lese bitte meine vorigen Posts nocheinmal genau durch, da ich dort schon (wiederholt) gesagt habe, welche Funktion Du wo ergänzen musst und Poste im Anschluss daran mal Deinen bisherigen Source.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mo 30.05.05 12:12 
Nein das is schon klar. Ich bin halt nur etwas genervt weil ichs nich auf die Reihe bringe. Und ich hab mir den Quelltext von dir wirklich schon oft angeschaut und auch viel probiert aber es funktioniert irgend wie nicht. Ich komm noch nicht so richtig damit klar was ich für was einsetzen soll (TDeinDateiEditorForm nehme ich tform1 --> wo die ganzen Bearbeitungsbutton drin sind, für DateiFenster und Datei weiß ich noch nicht was da rein muss. Mein aktueller Quelltext sieht so aus:

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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ToolWin, ImgList,Contnrs;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Neu1: TMenuItem;
    ffnen1: TMenuItem;
    Speichern1: TMenuItem;
    Speichernunter1: TMenuItem;
    Drucken1: TMenuItem;
    Schlieen1: TMenuItem;
    Programmbeenden1: TMenuItem;
    Bearbeiten1: TMenuItem;
    Rckgngig1: TMenuItem;
    Ausschneiden1: TMenuItem;
    Kopieren1: TMenuItem;
    Einfgen1: TMenuItem;
    AllesMarkieren1: TMenuItem;
    Lschen1: TMenuItem;
    Format1: TMenuItem;
    Schrifft1: TMenuItem;
    N3: TMenuItem;
    Hilfe1: TMenuItem;
    Information1: TMenuItem;
    FontDialog1: TFontDialog;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    PrintDialog1: TPrintDialog;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    Ausrichtung1: TMenuItem;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    ToolButton18: TToolButton;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton25: TToolButton;
    ToolButton26: TToolButton;
    ToolButton27: TToolButton;
    ToolButton28: TToolButton;
    ToolButton29: TToolButton;
    ImageList1: TImageList;

    procedure FormCreate(Sender: TObject);
    procedure Neu1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Dateien: TObjectList;
implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Dateien := TObjectList.Create(true);
end;

procedure TForm1.Neu1Click(Sender: TObject);
var Form2: TForm1;
begin
Textfile := TForm1.Create(nil);
Dateien.Add(Datei);

end;

end.


ausblenden 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:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Memo1: TMemo;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.


Ich hoffe du kannst mir weiter helfen.

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 30.05.05 23:26 
k, Unit1, Zeilen 92 und 95: TForm1 durch TForm2 ersetzen.

Außerdem in Zeile 96 einen Aufruf
ausblenden Delphi-Quelltext
 
96:
{ ... }
Datei.Show;
ergänzen.

Danach sollte die Datei-->Neu-Funktion hinhauen.

Für das Öffnen und Speichern von Dateien fügst Du nach Zeile 15 folgende beiden Zeilen ein:
ausblenden Unit2.pas
 
16:
17:
{ ... }
procedure LoadFileData(Filename:String);
procedure SaveFileData(Filename:String);


Danach kurz Strg+Umschalt+C drücken (noch in der Klassendeklaration) und es sollte auch gleich die Implementation dieser Routinen erscheinen. Das Laden und Speichern selber, traue ich Dir mal zu ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 11:56 
Hallo
supie vielen dank es geht.

Ich mach noch mal nen neuen post für die Speicherfrage auf. Ich kann zwar speichern aber der text wird dann nich mit gespeichert. Sondern nur ne lehre txt.datei