Autor Beitrag
belzebubi
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 28.03.03 18:07 
Wie kann ich das hinkriegen das bei meiner Komponente hinkriegen das wenn ich eine selbsterstellte caption BUchstabenweise in der Komponente auftaucht, sowie beim normalen Button. Ich muss immer erst Enter drücken bevor der ganze Text übernommen wird.

_________________
Frieden ist nicht alles, aber ohne Frieden ist alles nichts!
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Fr 28.03.03 18:14 
belzebubi hat folgendes geschrieben:
Wie kann ich das hinkriegen das bei meiner Komponente hinkriegen das wenn ich eine selbsterstellte caption BUchstabenweise in der Komponente auftaucht, sowie beim normalen Button. Ich muss immer erst Enter drücken bevor der ganze Text übernommen wird.
Sorry, ich nix verstehe! Du sprechen deutsch?
Bitte mal Rechtschreibfehler korrigieren und Problem näher beschreiben. Das ist ja eine Zumutung...

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
belzebubi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 28.03.03 18:39 
Titel: jetzt auf deutsch
Sorry, da habe ich wohl misst gebaut.
Wie kann ich das bei meiner Komponente hinkriegen, das eine selbsterstellte caption BUchstabenweise in der Komponente auftaucht, so wie es beim normalen Button der Fall ist. Bei mir muss ich immer erst Enter drücken bevor der ganze Text übernommen wird.

_________________
Frieden ist nicht alles, aber ohne Frieden ist alles nichts!
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 28.03.03 21:49 
2. Versuch war auch nicht viel besser. 8) Ich auch nix vil versteh. Deshalb ein Schuß ins Blaue : Schau nach KeyPress KeyDown etc. bei den Events im OI. :wink: Was verstehst du eigentlich unter einer selbst erstellten Caption :?:

_________________
Gruß
Hansa
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 28.03.03 21:54 
Okay, ich kenne zwar keine Antwort auf das Problem, aber ich weiß, was das Problem ist:

Packe auf eine Form einen Button. Gebe im Objekt Inspektor ein Caption für den Button ein. Jedesmal, wenn Du im Objekt Inspektor einen Buchstaben eingibst, wird der Button in der Form auch schon aktualisiert. Wie kann man das bei einer selbst-erstellten Komponente bewerkstelligen? Dort wird die Komponente, die man auf die Form gebracht hat, erst aktualisiert, wenn man im Objekt Inspektor die Eingabetaste drückt.

edit:
vor ein paar Tagen hat Aya mal was dazu gefragt, wie man herausfinden kann, ob sich der Button in der Laufzeit oder in der Designzeit befindet. Vielleicht findest Du dort eine Anregung.
Solltest Du das Problem lösen, bitte poste Deine Lösung.

nochmal edit:
hier ist der Thread. Scheint aber nicht so toll zu sein.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Delphi-Experte
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 29.03.03 06:08 
Titel: Setzen einer Eigenschaft nach jeder Änderung im Editor
Damit eine Eigenschaft nach jeder Änderung im Editor gesetzt wird, muß der zugehörige Eigenschaftseditor das Attribut "paAutoUpdate" aufweisen. Einen entsprechenden Eigenschaftseditor für den Datentyp "string" kann man wie folgt erstellen und registrieren:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type
  TMyStringProperty = class(TStringProperty)
  public
    function GetAttributes : TPropertyAttributes; override;
  end;

function TMyStringProperty.GetAttributes : TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paAutoUpdate];
end;

procedure Register;
begin
  RegisterPropertyEditor(TypeInfo(string), TMyClass, 'MyString', TMyStringProperty);
end;
belzebubi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 29.03.03 13:04 
Anscheinend habe ich die passende Unit dsgnintf nicht um den Quelltext von dir auszuführen. Weißt du wo ich die UNit herkriege. Oder liegt der Fehler woanders.

_________________
Frieden ist nicht alles, aber ohne Frieden ist alles nichts!
Delphi-Experte
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 29.03.03 19:31 
Titel: Setzen einer Eigenschaft nach jeder Änderung im Editor
Aus Lizenzgründen liefert Borland die Design-Units nicht mehr extra mit, so daß diese nicht in Programme oder Laufzeit-Packages eingebunden werden können. Die Units sind nur noch über die Entwurfszeit-Packages verfügbar. Darum mußt Du die Unit, die den Quelltext enthält, in einem reinen Entwurfszeit-Package compilieren und installieren.
belzebubi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 29.03.03 22:11 
Titel: hä
kannst du mir vielleicht dafür ein Bsp. geben; ich habe keinen Plan.

_________________
Frieden ist nicht alles, aber ohne Frieden ist alles nichts!
Delphi-Experte
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 30.03.03 01:29 
Titel: Registrierung von Komponenten
Hier ein Beispiel für eine Unit zur Registrierung von Komponenten für die IDE (Delphi 7):

ausblenden volle Höhe 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:
unit MyReg;

interface

uses
  SysUtils, Classes, DesignIntf, DesignEditors;

type
  TMyStringProperty = class(TStringProperty)
  public
    function GetAttributes : TPropertyAttributes; override;
  end;

procedure Register;

implementation

uses
  Controls, Forms, TypInfo, DsnConst, MyUnit;

{ TMyStringProperty }

function TMyStringProperty.GetAttributes : TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paAutoUpdate];
end;

{ Registrierung }

procedure Register;
begin
  RegisterComponents(srAdditional, [TMyClass]);
  RegisterPropertyEditor(TypeInfo(string), TMyClass, 'MyString', TMyStringProperty);
end;

end.


Der (Laufzeit-)Quelltext für Deine Komponente "TMyClass" befindet sich in der Unit "MyUnit". Die Unit "MyReg" mußt Du einem reinen Entwurfszeit-Package (z. B. "Borland Anwenderkomponenten") hinzufügen. Deine Komponente findest Du anschließend auf der VCL-Registerkarte "Zusätzlich" (Konstante "srAdditional"), sofern sie nicht schon vorher registriert war.