Problem z laczeniem PopupMenus

0

Witam serdecznie wyobrazmy sobie taka sytuacje mamy kontrolke "label" z podrecznym menu (PopUpMenu)
W ktorym sa 3 opcje o nazwie BOLD ITALIC i UNDERLINE ... :) - i wszyscy wiedza o co chodzi. Udalo mi sie zrobic kod ktory zaznacza i odznacza te opcje niestety opcje te nie wspolgraja ze soba mianowicie jesli mam bold i klikne italic to bold sie odznacza ... wiem w czym problem ale nie bardzo wiem jak to ze soba powiazac. Macie moze pomysl ??

Ponizej zamieszczam moj dotychczasowy kod:

procedure TForm1.Bold1Click(Sender: TObject);
begin
if i<2 then
i := i+1
else
i:=1;
If i = 1 then
begin
Bold1.Checked := True;
Label5.Font.Style := [fsbold];
end ;
If i= 2 then
begin
bold1.Checked := False;
Label5.Font.Style := [];
end
end;

procedure TForm1.Italic1Click(Sender: TObject);
begin
if j<2 then
j := j+1
else
j:=1;
If j = 1 then
begin
Italic1.Checked := True;
Label5.Font.Style := [fsItalic];
end ;
If j= 2 then
begin
Italic1.Checked := False;
Label5.Font.Style := [];
end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
j:=0;
k:=0;
end;

procedure TForm1.Underline1Click(Sender: TObject);
begin
if k<2 then
k := k+1
else
k:=1;
If k = 1 then
begin
Underline1.Checked := True;
Label5.Font.Style := [fsUnderline];
end ;
If k= 2 then
begin
Underline1.Checked := False;
Label5.Font.Style := [];
end
end;

Wiem gdzie jest blad ale nie bardzo wiem jak go wyeliminowac. Mianowicie w kazdej nastepnej opcji mam nowa wartosc dla label5.Font.Style i poprzednia jest czyszczona. Rozwiazaniem byloby cos takiego:
Label5.Font.Style := [x, y, z]; i przed kazdym wykonaniem klikniecia sprawdzany bylby warunek czy inne opcje sa klikniete i jesli tak to ich wartosci bylyby przypisywane odpowiednio do x, y, z ale nie mam pojecia jak to zrobic .... Probowalem robic to z IF'a ale wyszlo take maslo maslane ze potem sie juz pogubilem ...

POMOCY :)</delphi>

0
 if Bold.checked then 
   Label1.Font.Style := Label1.Font.Style + [fsBold] 
 else 
   Label1.Font.Style := Label1.Font.Style - [fsBold];

Czyli w zależności czy dana opcja jest kliknięta czy nie dodajesz właściwość lub odejmujesz.

0

To bylo tak proste ze az na to nie wpadlem ... zamiast przypisywac do Label1.Font.style wartosc moglem ja dodawac lub odejmowac ... fickle wielkie dzieki teraz juz wszystko dziala jak powinno

Jak na razie to najlepsze forum do programowania na jakim bylem ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1