![]() |
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Häh? Versteh dich nicht ganz. Also mit statischen Kompos hat es einwandfrei geklappt. Wo liegt denn der Fehler?
|
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Moin Sebastian,
da ich SynEdit im Moment nicht installiert habe, habe ich das mal ohne Highlighter und mit TMemo nachgestellt:
Delphi-Quellcode:
Funktioniert problemlos.
var anzSQL:Integer = 0;
Sheet : array of TTabSheet; SQLMemo : array of TMemo; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin SetLength(Sheet, anzSQL + 1); SetLength(SQLMemo, anzSQL + 1); // TabSheet erstellen Sheet[anzSQL] := TTabSheet.Create(PageControlSQL); Sheet[anzSQL].Parent := PageControlSQL; Sheet[anzSQL].PageControl := PageControlSQL; Sheet[anzSQL].Caption := '(Unbenannt)'; // SQLMemo erstellen SQLMemo[anzSQL] := TMemo.Create(Sheet[anzSQL]); SQLMemo[anzSQL].Parent := Sheet[anzSQL]; SQLMemo[anzSQL].Align := alClient; // SQLSyn erstellen // PageControl auf erstellen TabSheet stellen Inc(anzSQL); PageControlSQL.ActivePageIndex := PageControlSQL.PageCount - 1; end; procedure TForm1.Button2Click(Sender: TObject); begin if OpenDialogSQL.Execute then begin SQLMemo[PageControlSQL.ActivePageIndex].Lines.LoadFromFile(OpenDialogSQL.FileName); Sheet[PageControlSQL.ActivePageIndex].Caption := OpenDialogSQL.FileName; Sheet[PageControlSQL.ActivePageIndex].Font.Style := []; end; // if OpenDialogSQL.Execute then end; Jetzt bleiben meiner Ansicht nach nur noch zwei Möglichkeiten:
Ich werd' mir noch mal SynEdit installieren und es dann noch einmal probieren. BTW: Wird denn die Caption des TabSheets bei Dir korrekt angezeigt? |
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Ich denk mal das liegt am SynEdit, da ich die TabSheet-Caption ohne Probleme auslesen und setzen kann
|
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Also mit nem normalen Memo gehts auch nicht :wall:
|
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Moin Sebastian,
Zitat:
Das was ich da oben gepostet habe benutzt ja TMemo, und damit geht's bei mir. :gruebel: |
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Neues Projekt erstellen und dann diesen Code:
Delphi-Quellcode:
Klappt! Jetzt versteh ich nicht warum das in meinem Prog nicht läuft. Den Source hab ich davon übernommen :-(
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) PageControlSQL: TPageControl; Button1: TButton; Button2: TButton; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; anzSQL:Integer = 0; Sheet : array of TTabSheet; SQLMemo : array of TMemo; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin SetLength(Sheet, anzSQL + 1); SetLength(SQLMemo, anzSQL + 1); // TabSheet erstellen Sheet[anzSQL] := TTabSheet.Create(PageControlSQL); Sheet[anzSQL].Parent := PageControlSQL; Sheet[anzSQL].PageControl := PageControlSQL; Sheet[anzSQL].Caption := '(Unbenannt)'; // SQLMemo erstellen SQLMemo[anzSQL] := TMemo.Create(Sheet[anzSQL]); SQLMemo[anzSQL].Parent := Sheet[anzSQL]; SQLMemo[anzSQL].Align := alClient; // PageControl auf erstellen TabSheet stellen Inc(anzSQL); PageControlSQL.ActivePageIndex := PageControlSQL.PageCount - 1; end; procedure TForm1.Button2Click(Sender: TObject); begin if OpenDialog1.Execute then begin SQLMemo[PageControlSQL.ActivePageIndex].Lines.LoadFromFile(OpenDialog1.FileName); end; end; end. |
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
FEHLER GEFUNDEN:
Ich hab ja ne Unit hochgeladen (eines Frames). Dieser Frame wird 4 mal erstellt. Das Programm hat den Text im Memo der ERSTEN Frames geladen, und ich war die ganze Zeit im VIERTEN Frame :wall: Gibt es globale Variablen die nur für den jeweiligen Frame verfügbaer sind??? und nicht im jeden. Das der jeden Frame komplett einzeln behandelt??? |
Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -
Moin Sebastian,
soviel dann zum Thema "Globale Variablen" ;-) Füg' doch einfach (private?) Felder in das TFrameDB Objekt ein. Dann hast Du die gewünschte Zuordnung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz