ShowMessage a obrazek

1

Witam,

Mam pytanko, a mianowicie, czy w ShowMessage można wyświetlić obrazek? (i jeśli tak, to jak ;) )

Pozdrawiam,
adam123adam

2

NIE.

A o Delphi słyszał? Bo tam można robić fajne formy z fajnymi komponentami które fajnie imitują komunikat ShowMessage i tam można zrobić fajny obrazek.

2

Postawiłem jasne pytanie, a o Delphi słyszałem, i mnie nie obrażaj, bo programuje w Delphi od 2 lat, i specjalnie dałem ten temat do Newbie, bo wiem, że to banalne pytanie (po prostu chciałem się dowiedzieć, czy w/w zagadnienie jest możliwe do spełnienia), ale coś mi się wydaje, że romawiam z 5 latkiem, albo kimś o takim poziomie rozwoju, że nie umie myśleć. Współczuję początkującym, którzy natrafią na takiego snoba, który wprost odgania od chęci programowania i nauczenia się czegoś wartościowego i myśli, że zjadł wszystkie rozumy. Ach ci ludzie miejący mocną gębę w internecie, a w normalnym życiu udają normalne organizmy z gatunku homosapiens, które umieją myśleć.

2

Postawiłem jasne pytanie, a o Delphi słyszałem, i mnie nie obrażaj, bo programuje w Delphi od 2 lat

A ja od 5 i co? Trolololo...

i specjalnie dałem ten temat do Newbie, bo wiem, że to banalne pytanie

Co nie zmienia czasu jaki zajmuje nam przeczytanie tego. MSDN sprawdziłeś? Nie? No to nie wazne jak banalne pytanie to i tak niepotrzebne!
(Albo raczej: Nie szukałeś? To nie ważne jak banalne pytanie to i tak nie potrzebne.)

ale coś mi się wydaje, że romawiam z 5 latkiem, albo kimś o takim poziomie rozwoju, że nie umie myśleć.

O boże, programuje od urodzenia?! :O Właściwie to ty nie myślisz skoro wydaje Ci się że skoro w newbie to możesz pytać o głupoty (Albo raczej: rzeczy o których piszą w internecie sporo).

Współczuję początkującym, którzy natrafią na takiego snoba, który wprost odgania od chęci programowania i nauczenia się czegoś wartościowego i myśli, że zjadł wszystkie rozumy.

No wiesz, kazdy ma jakiś swój sens życiowy, c'nie? Moim nie jest wysłuchiwanie głupot.

Ach ci ludzie miejący mocną gębę w internecie, a w normalnym życiu udają normalne organizmy z gatunku homosapiens, które umieją myśleć.

U MAD? :D

EDIT: Dla tych co mnie nie rozumieją: Nic mu nie zrobiłem a on postanowił mnie zflamować :-] . Na głupotę odpowiadam głupotą, tyle w tej sprawie.

1

W ShowMessage ni da rady, ale przecież własną formę można. W MessageBox też raczej nie da rady.

6

xeo545x39 - dzięki za odpowiedź godną programisty ;) Na szczęście nie wszyscy są tacy jak Payl

2

@adam123adam: przeanalizuj sobie ten kod poniżej. To tylko przykład, jest też jak podmienić obrazek. Tylko taki MessageBox ma taką wadę, że będzie raczej w Delphiowym stylu, czyli na przykład jeżeli kod zostanie skompilowany pod na przykład Delphi 7, a uruchomimy program na Windows 7 to będzie widać różnice między takim dialogiem (bo będzie to fizycznie formatka), a takim z MessageBox. Może pod nowszymi Delphi coś się w tej kwestii zmienilo, ale tego nie wiem, bo używam Delphi 7 oraz Windows 7 z klasyczną kompozycją i na ogół wystarcza mi standardowy MessageBox. A jeżeli już stworzę własne okienko dialogowe to na ogół tylko jako głowne okno programu pisanego pod WinAPI, a takowy dialog jest wcześniej przygotowany jako odpowiedni plik zasobów, gdzie albo wspieram się starusieńkim Delphi 3 i zapisanej w nim formatce przeniesionej z Delphi 7 aplikacji VCL, (które jakoś ostatnio polubiłem przerabiać na WinAPI w miarę moich możliwości), a później konwersji programem Dfm2Api (bo nie obsługuje on dfm'ów z Delphi 7) albo jak nie ma za wiele do układania w okienku dialogowym to używam ResED z: http://www.oby.ro/rad_asm/resed/index.html - jak takie okienka oprogramować i wywoływac oraz jak ewentualne na jakiejś kontrolce narysować bitmapę lub jpega znajdziesz w google.

procedure TMainForm.CBXOnClick(Sender : TObject);
begin
  with Sender as TCheckBox do
  begin
    if Checked then
    begin
      ShowMessage('Zaznaczyłeś');
    end
    else
    begin
      ShowMessage('Odznaczyłeś');
    end;
  end;
end;

procedure TMainForm.ShowMsgDlgButtonClick(Sender : TObject);
var
  Dlg : TForm;
  CBX : TCheckBox;
begin
  Dlg := CreateMessageDialog('Czy na pewno chcesz zamknąć program?',
    mtConfirmation, [mbYes, mbNo]);
  Dlg.Caption := Application.Title;
  Dlg.BorderIcons := [];
  Dlg.Height := 130;
  Dlg.ActiveControl := TButton(Dlg.FindComponent('Yes'));
  TImage(Dlg.FindComponent('Image')).Picture.Assign(Application.Icon);
  TButton(Dlg.FindComponent('Yes')).Caption := 'Tak';
  TButton(Dlg.FindComponent('No')).Caption := 'Nie';
  TButton(Dlg.FindComponent('Yes')).Top := 70;
  TButton(Dlg.FindComponent('No')).Top := 70;
  CBX := TCheckBox.Create(Dlg);
  CBX.Parent := Dlg;
  CBX.Caption := 'Zawsze pytaj';
  CBX.Left := (Dlg.Width - CBX.Width) div 2;
  CBX.Top := 40;
  CBX.Checked := False;
  CBX.OnClick := CBXOnClick;
  Dlg.ShowModal;
  case Dlg.ModalResult of
    mrYes :
      begin
        Caption := 'Tak';
      end;
    mrNo :
      begin
        Caption := 'NIE';
      end;
  end;
  if CBX.Checked then
  begin
    Caption := Caption + #32 + '- Zaznaczony';
  end
  else
  begin
    Caption := Caption + #32 + '- Odznaczony';
  end;
end;

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