IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @261
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Dokonalosť v jednoduchosti

Wyse T10 – dokonalosť, na ktorú ste čakali. www.ts.avnet.com

Dala som si poradiť

O moje peniaze je postarané. A o vaše? www.partnersgroup.sk

Úsporná stavba domu

PORFIX - postavte si dom úspornejšie! Ušetríte na energiách! www.Porfix.sk

Neuveriteľne lacná .sk doména

Rýchla registrácia domén za výborné ceny. www.exohosting.sk

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

Ukladaci, messagebox

Zaslať odpoveď
AutorSpráva
Siriuse
Užívateľ
Užívateľ

Založený: 23.05.2009
Príspevky: 81
Bydlisko: Michalovce

PríspevokZaslal: Po 20.07.09 17:13Odpovedať s citátomNávrat hore

Ked chcem pri ukonceni mojho programu, myslim tym stlacnie kriziku v pravom hornom rohu, aby mi vyskocilo messagebox s ponukou ulozit ano - ulozi a ukonci, nie - ukonci a CANCEL - neukonci program a nic sa nestane... ku akej akcii to treba pridat aby sa program neukoncil po stlaceni krizika?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 20.07.09 19:35Odpovedať s citátomNávrat hore

Do eventu OnClose hlavného formu pridaj tento kód:
kód:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  case MessageBox(Handle, 'V editore boli vykonané zmeny. Prajete si zmeny uložiť?', PChar(Application.Title),
  MB_YESNOCANCEL or MB_ICONQUESTION) of
    ID_YES: RutinaNaUlozenieZmien();
    ID_NO: ;
    ID_CANCEL: Application.Run;
  end;

end;

RutinaNaUlozenieZmien() je procedúra, v ktorej sa napríklad uložia potrebné dáta na disk.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
feromakovi
Užívateľ
Užívateľ

Založený: 12.05.2009
Príspevky: 33
Bydlisko: Bánovce nad Bebravou

PríspevokZaslal: Ut 21.07.09 23:55Odpovedať s citátomNávrat hore

to fico:
ahoj pls mohol by si mi prosím ťa vysvetliť, že z kade si prišiel na to že v tej procedúre albo funkcií messagebox je aj parameter to PChar(Aplication.title)??
keď sa pozriem v delphi do helpu tak tam nič také nieje.
ja som zatiaľ na všetko používal takúto funkciu:
kód:
function MessageDlgTitle(const Title: String; const Msg: string; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin

  with CreateMessageDialog(Msg, mtCustom, Buttons) do
  try
     Caption:=Title;
     HelpContext:=HelpCtx;
     HelpFile:='';
     Position:=poScreenCenter;
     result:=ShowModal;
  finally
     Free;
  end;

end;

a tá dokonca v mojom helpe ani nieje tak rád by som sa spýtal že ako na to prídem že čo v sebe také niečo v sebe ukrýva a dá sa zmeniť aj to čo na prvý pohľad zmeniť nejde?? ale vieš ide o princíp nejde mi o to že ako zmeniť ten caption...ale že ako na to niekto prišiel že sa dá zmeniť??
uf dúfam že som sa správne vyjadril a porozumieš mojej otázke...ja by som chcel vedieť niečo ako datasheet tej procedúry alebo funkcie

_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkype
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: St 22.07.09 19:44Odpovedať s citátomNávrat hore

Nie som si istý, či som to pochopil správne, ale vysvetlím radšej všetko

Funkcia MessageBox:
Je to API funkcia (preto nie je v nápovede Delphi - tam sú len Delphi funkcie), ktorá má štyri parametre:

kód:
          hWnd: HWND,              // handle okna, ktoré bude vlastníkom okna správy
          lpText: PAnsiChar,       // text zobrazený v tele správy
          lpCaption: PAnsiChar,    // text zobrazený v nadpise správy
          uType: Cardinal          // bitové vlajky (flags) nastavujúce vlastnosti okna správy

Ak si si všimol hlavný rozdiel medzi funkciami MessageBox a CreateMessageDialog, druhá spomenutá berie ako parameter reťazec string. MessageBox PAnsiChar (dôvod je jednoduchý - MessageBox je API funkcia, teda je "optimalizovaná" pre všetky jazyky, kdežto CreateMessageDialog je funkcia platná len pre Delphi.

Dátový typ PAnsiChar:
Je to reťazec, ktorý je ukončený nulou. Delphi pracuje s reťazcom string (neviem presne, aká je jeho štruktúra, ale zdá sa mi, že na offsete, kde začína, je jeho dĺžka, ale to si nie som istý), no ten by sa nedal použiť napríklad v jazyku C. Preto v API funkciách je použitý akýsi "štandard", ktorý je použiteľný vo viacerých jazykoch. Z Delphi reťazca string sa ale dá veľmi jednoducho pretypovať na PAnsiChar takto:

kód:
pcharRetazec:= PChar(stringRetazec);


Application.Title:
V tejto globálnej premennej je názov aplikácie (titulok), ktorý je vidieť napríklad na hlavnom paneli.

Zistenie, ktorá funkcia má aké parametre:
Ak sa jedná o API funkciu, o tých máš potrobný popis v súbore WIN32.HLP - nachádza sa v zložke Delphi, štandardne C:\Program Files\Common Files\Borland Shared\MSHelp\WIN32.HLP. A samozrejme, dobrý pomocník je google.

Už je to lepšie, alebo treba ešte niečo vysvetliť?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
feromakovi
Užívateľ
Užívateľ

Založený: 12.05.2009
Príspevky: 33
Bydlisko: Bánovce nad Bebravou

PríspevokZaslal: St 22.07.09 21:50Odpovedať s citátomNávrat hore

nie nie presne tak som to potreboval vysvetliť..vôbec som nevedel kde by som sa o tom viac dozvedel a vôbec som nevedel že existuje nejaký win32.hlp

ďakujem ti veľmi pekne

_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkype
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd