20. September 1999

Komponenten

 

Wie kann ich Komponenten zur Laufzeit des Programms dynamisch erstellen?

von Sven Künzler 10. September 1998 [ab D1]

Man kann sämtliche Properties aus dem Designer auch im Quelltext setzen. Wichtig ist, dass man als Parent die Form angibt, auf der die Komponente erstellt werden soll.

Procedure TMyForm.Labelmachen;
var ALabel: TLabel
Begin
   { Self steht für die aktuelle Instanz von TMyForm }
   ALabel:=TLabel.Create(self);
   ALabel.Parent:=self;
   ALabel.Caption:='Beschriftung';
   ALabel.Visible:=True;
   {sonstige Properties setzen, z.B. für Position, Höhe und Breite}
End;
 

Wie finde ich die Cursorposition in einer TMemo-Komponente heraus?

von Sven Künzler 30. Mai 1998 [ab D1]

Dazu ein Beispiel:

Lpos:=SendMessage(memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
Cpos := SendMessage(memo1.Handle,EM_LINEINDEX,Lpos,0);
LineLength := SendMessage(memo1.handle, EM_LINELENGTH, Cpos, 0);
CPos := Memo1.SelStart-CPos;
 

Wie kann ich meiner Komponente ein hübsches Icon verpassen?

von Heino Tiedemann 26. August 1999 [ab D1]

Als Icons dienen 24x24 Punkte große Bitmaps (.BMP-Dateien) mit 16 Farben. Diese kann man mit dem Delphi-Bildeditor ins passende Format bringen:

Wenn in einer Unit mehrere Komponenten zusammengefasst sind, müssen die dazu passenden Icons ebenfalls entsprechend obiger Konventionen benannt und in einer .dcr-Datei gespeichert werden.

 

Wie kann ich Symbole oder eine Fortschrittsanzeige in einer Statuszeile darstellen?

von Marco Lange und Sven Künzler 20. September 1999 [ab D2]

Man kann die Style-Property des StatusPanels auf psOwnerDraw stellen und dann im OnDrawPanel-Ereignis der StatusBar das Panel zeichnen.

Externe Quellen

TdfsStatusBar von Brad Stowers
Mit dieser Komponente kann man man Icons (oder andere Controls) bequem mit dem Formulardesigner in die Statuszeile verfrachten.