AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -> Nicht

Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -> Nicht

Ein Thema von Nalincah · begonnen am 18. Dez 2003 · letzter Beitrag vom 19. Dez 2003
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#11

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 12:36
Häh? Versteh dich nicht ganz. Also mit statischen Kompos hat es einwandfrei geklappt. Wo liegt denn der Fehler?
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 12:58
Moin Sebastian,

da ich SynEdit im Moment nicht installiert habe, habe ich das mal ohne Highlighter und mit TMemo nachgestellt:

Delphi-Quellcode:
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;
Funktioniert problemlos.

Jetzt bleiben meiner Ansicht nach nur noch zwei Möglichkeiten:
  1. Die Datei die eingelesen wird hat (inzwischen?) doch ein Problem
  2. Bei SynEdit müssen Besonderheiten beachtet werden, wenn man es dynamisch erzeugt.

Ich werd' mir noch mal SynEdit installieren und es dann noch einmal probieren.

BTW: Wird denn die Caption des TabSheets bei Dir korrekt angezeigt?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#13

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 13:03
Ich denk mal das liegt am SynEdit, da ich die TabSheet-Caption ohne Probleme auslesen und setzen kann
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#14

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 13:15
Also mit nem normalen Memo gehts auch nicht
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 13:18
Moin Sebastian,

Zitat von General2003:
Also mit nem normalen Memo gehts auch nicht


Das was ich da oben gepostet habe benutzt ja TMemo, und damit geht's bei mir.

Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#16

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 13:22
Neues Projekt erstellen und dann diesen Code:
Delphi-Quellcode:
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.
Klappt! Jetzt versteh ich nicht warum das in meinem Prog nicht läuft. Den Source hab ich davon übernommen
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#17

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 13:35
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

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???
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Kompo dyn. erstellen -> Klappt. Dyn. Kompo benutzen -

  Alt 19. Dez 2003, 15:56
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:33 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