Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Edit-Komponente in eigener ScrollBox-Komponente!


Hagbard Celine - Mi 26.06.02 23:51
Titel: Edit-Komponente in eigener ScrollBox-Komponente!
Ich habe eine Komponente von TScrollBox abgeleitet!

Um dem Benutzer die Möglichkeit zu geben an verschiedenen Stellen Text zu erfassen wollte ich erstmal eine TEdit-Komponente auf meiner Komponente erzeugen!

Diese soll möglichst beim Start erzeugt werden!


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
constructor TVCLDocument.Create(AOwner: TComponent);
begin

  inherited create(AOwner);

  Color := clWhite;
  BevelInner := bvNone;
  BevelInner := bvNone;
  BevelKind := bkFlat;
  BorderStyle := bsNone;

  InMaskEdit := TEdit.Create(self);

  with InMaskEdit do begin
    left := 10;
    top := 10;
    visible := true;
    end;

  end;


So hab ichs versucht! Leider wird die Komponente nicht angezeigt! Was hab ich vergessen??


Klabautermann - Mi 26.06.02 23:57

Hallo,
warscheinlich das setzen der Parent eigenschaft.

Ergänze deinen Code mal um die Zeile:

Quelltext
1:
InMaskEdit.parent := Self;                    


Dann sollte es klappen wenn ich nicht noch was übersehen habe (ist das schon woeder spät).

Gruß
Klabautermann


Hagbard Celine - Do 27.06.02 00:04

Hab ich schon versucht!

Fehler :

Inkompatible Typen: 'TWidgetControl' und 'TVCLDocument'


Alfons-G - Do 27.06.02 09:56

Arbeitest Du mit CLX :?:
TWidgetControl stammt aus CLX und nicht aus der VCL...

:)


Hagbard Celine - Do 27.06.02 10:55

Alfons-G hat folgendes geschrieben:
Arbeitest Du mit CLX :?:
TWidgetControl stammt aus CLX und nicht aus der VCL...

:)


Was ist der Unterschied??

Hab mich noch nicht damit beschäftigt! Habe erst in der Hilfe von Delphi6 gesehen das es beides gibt!


Klabautermann - Do 27.06.02 11:09

Hagbard Celine hat folgendes geschrieben:
Was ist der Unterschied??


VCL Komponenten basieren auf der Windows API. Deshalb gibt es sie nur unter Windows. CLX Komponenten basieren hingegen auf den QT-Bibliotheken welche es für unterschiedliche Betriebsysteme gibt. Kylix verwendet ausschlißlich CLX Komponenten da die Windows-Api natürlich unter Linux nicht zur verfügung steht. Wenn du CLX Programme schreibst musst du zusätzlich zum Programm auch eine Reihe von DLLs mit ausliefern (die QTLibs).
Beide Systeme lassen sich nicht mischen. Du must dich also für eines entscheiden.

Gruß
Klabautermann


Hagbard Celine - Do 27.06.02 18:17

Was muss ich machen um meine Edit-Komponente auf meine Komponente(Abgeleitet von TScrollBox) Zu bekommen?????

Wie kann ich in die VCL Form umstellen???

Oder muss ich von einer anderen Komponente ableiten????


Klabautermann - Do 27.06.02 18:25

Da fragst du was.
Ich habe D5 und K2 das heißt entwder VCL oder CLX aber nie beides. Daher kann ich keine aukümpfte geben wie du das ganze änderst. Aber vieleicht lesen hier ja ein paar D6 <= Pro besitzer mit.

Was ich dir so sagen kann ist, das Units die mit einem Q anfangen sehr wahrscheinlich CLX sind.

Gruß
Klabautermann


Hagbard Celine - Fr 28.06.02 15:12

Habs gefunden!

Das hängt tatsächlich nur von den Units ab welche eingebunden werden!

Wer in Delphi 6 die Hilfe zu einer Komponente aufruft bekommt in der Regel zwei Einträge zur Auswahl!

Hinter einem sollte VCL stehen!

Wenn man die Hilfe zu der Version aufruft welche für einen interessant ist so bekommt man wie schon in den Versionen zuvor die entsprechende Hilfe angezeigt! Jetzt muss man nur noch die entsprechende Unit der Version welche man verwenden will entnehmen und im eigenen Quelltext anpassen!

Ich hatte versehentllich die Unit "QStdCtrls" eingebungen!
Die API Version ist aber die "StdCtrls"! Vieleich hilft das ja dem Ein oder Anderen der über die selbe Hürde nicht gekommen ist!

Klabautermann hat folgendes geschrieben:
Was ich dir so sagen kann ist, das Units die mit einem Q anfangen sehr wahrscheinlich CLX sind.


Du hattest es schon richtig gesagt! Mir war nur nicht ganz klar was Du gemeint hattest!
Danke!