Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Fr 08.11.02 15:02 
hallo,
jetzt weiß ich endlich, wie ich eine form transparentstelle.
siehe hier
doch wie sieht es bei den edit feldern aus?
es soll alles transparent sein, außer die schrift !! ( also, der rahmen und der hintergrund).
mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Sa 09.11.02 15:46 
Die Frage wurde hier schon öfters gestellt. benutz mal die Suchfunktion, und du wirst herausfinden, das das bis jetzt keiner geschafft hat.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Sa 09.11.02 16:24 
udn wie siehts mit einem memo-feld aus? funzt das?
wenn ja, wie kann ich das memofeld so beschränken, dass man nur etwas in die 1. zeile schreiben kann?

mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Sa 09.11.02 16:27 
Wurde auch schon diskutiert, sogar beides in den letzen Tagen. Geht weder beim Edit, noch beim Memo oder RichEdit. Leider.
Umständlich wäre es, einen kasten aus linien zu bauen, darein ein onclick even und in ein label schreiben.
Ist aber warscheinlich zu umständlich unt horizontales scrollen müsste man proggen. Aber vielleicht gibts dazu ne Komponente, warscheinlich aber eher nicht. Kannst dich ja mal umhören, ob irgendwer ne kompo kennt.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 09.11.02 21:10 
Also bei dem transparentem Edit kann ich dir auch nicht helfen, aber ich hab ein editierbares Label. Und Label können transparent geschaltet werden.

Hier ein kleines Beispiel. Du brauchst ein leeres Projekt und einige Labels drauf. Dann doppelt auf das Formular klicken damit OnCreate erstellt wird. Dann einfach dieses Beispiel ab Private einfügen.

Editierbare Labels:

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:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
  private
    { Private-Deklarationen }
    procedure LabelClick(Sender: TObject);
    procedure EditExit(Sender: TObject);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Edit: TEdit;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  Comp: TComponent;
  i: Integer;
begin
  ShowMessage( 'Bei allen Labels muß bei OnClick LabelClick stehen.' + ^j +
               'Hier im Beispiel wird das automatisch zugewiesen.');
  for i :=  0 to ComponentCount - 1 do begin
    Comp := Components[I];
    if (Comp is TLabel) then with (Comp as TLabel) do begin
      AutoSize := False;
      Width := 121;
      Height := 21;
      Layout := tlCenter;
      OnClick := LabelClick;
    end;
  end;
end;

procedure TForm1.LabelClick(Sender: TObject);
begin
  if Sender is TLabel then begin
    Edit := TEdit.Create(Self);
    with Edit do begin
      Parent := (Sender as TLabel).Parent ;
      Name:= '_' + (Sender as TLabel).Name;
      BoundsRect := (Sender as TLabel).BoundsRect;
      Text:= (Sender as TLabel).Caption;
      SetFocus;
      OnExit := EditExit;
    end;
  end;
end;

procedure TForm1.EditExit(Sender: TObject);
begin
  if Sender is TEdit then
    if (Sender as TEdit).Name[1] = '_' then begin
      (FindComponent(Copy((Sender as TEdit).Name, 2, 64)) as TLabel).Caption := (Sender as TEdit).Text;
      (Sender as TEdit).Free;
    end;
end; {Popov}


Ganz wichtig ist, daß deine Labels bei AutoSize, Width, Height, Layout und OnClick die gleichen Eigenschaften haben wie hier im Beispiel in FormCreate. Ansonsten brauchst du das was ich in FormCreate geschrieben habe nicht. Die Routine in FormCreate hab ich nur deshalb geschrieben, damit man die Labels hier im Beispiel nicht von Hand einstellen muß.

Später in deinem Programm brauchst du nur die LabelClick und EditExit Prozeduren. Die Labels, die editierbar sein sollen, stellst du bei OnClick auf LabelClick. Den Rest erledigen die Prozeduren. Und vergiß nicht AutoSize, Width, Height und Layout der Label die editierbar sein sollen auf die Werte zu stellen. Wobei Width natürlich etwas länger sein darf.
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 10.11.02 11:15 
Gute Idee. Ist halt ein kleiner "Umweg", aber mann kanns nehmen, denke ich.