Entwickler-Ecke

Sonstiges (Delphi) - MessageBox (Yes/No) ohne uses dialogs


Biarchiv - So 20.04.03 11:26
Titel: MessageBox (Yes/No) ohne uses dialogs
Hallo,

Ich versuche ein kleines Program zu schreiben das sehr gut klappt.

Ich habe alle uses rausgelöscht auch forms.

Nur benötige ich jetzt eine MessageDLG mit ja, nein abfrage.

Wo er bei nein exit;

Eine andere Möglichkeit von einer MessageBox?
Habe uses:
Windows, classes, shellapi

Danke..


Lehrling - So 20.04.03 11:33

Hallo,

Aus der WindowsSDK (Begriff: "MessageBox")
Zitat:
int MessageBox(

HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style of message box
);



mfg Lehrling


Christian S. - So 20.04.03 11:36

Zitat:
MessageBox(form1.Handle,PChar('Ja oder Nein'),PChar('Test'),MB_YESNO);
Hilft das?

Rückgabewerte sind dann IDYES oder IDNO.

MfG,
Peter


Christian S. - So 20.04.03 11:36

Schon wieder zu langsam...


FloSch - So 20.04.03 12:09

Peter Lustig hat folgendes geschrieben:
Zitat:
MessageBox(form1.Handle,PChar('Ja oder Nein'),PChar('Test'),MB_YESNO);
Hilft das?


Wobei dur dir das PChar (solange du keine Variablen vom Typ String mit einbeziehst) sparen kannst.

Das würde dann so ausssehen:


Quelltext
1:
MessageBox(form1.Handle,'Ja oder Nein','Test',MB_YESNO);                    


Grüße
Florian :roll:


Christian S. - So 20.04.03 12:42

Ups, stimmt. :oops:


Delete - So 20.04.03 14:21

Und TApplication kennt die Methode Messagebox. :wink:


Christian S. - So 20.04.03 14:22

Ja, aber dazu brauchst Du doch die Unit "Forms" und die hat er - wie er sagt - nicht eingebunden!


Delete - So 20.04.03 14:25

Ich bin noch nicht wach und habe noch nichts gegessen. Reicht das als Entschuldigung? :oops:


Christian S. - So 20.04.03 14:26

Du bist hiermit offiziell entschuldigt!


FloSch - So 20.04.03 14:26

*LuckieWachRüttel*

:mahn:

:lol:


Biarchiv - So 20.04.03 17:47

Hallo,

Vielen Dank.

Ja MessageBox hat geholfen.


Biarchiv - So 20.04.03 17:49
Titel: PChar -> String ; String -> PChar
Hallo,

Wie kann ich einen PChar Wert in einen Stringwert oder Integer Wert umwandeln.

Danke


Delete - So 20.04.03 17:52

PChar nach String brauch in der Regel nicht umgewandelt werden, das macht der Kompiler.- Will man es aber sauber machen, macht man einen Cast mit String. PChar nach Interger wie bei Strings auch mit StrToInt und eben noch voreher einen cast mit String.


Christian S. - So 20.04.03 17:55

Hm, Casting-Shows jetzt auch schon im Delphi-Forum? (okay, der war wirklich schlecht, ich weiß ...)


Delete - So 20.04.03 17:57

Peter Lustig hat folgendes geschrieben:
Hm, Casting-Shows jetzt auch schon im Delphi-Forum? (okay, der war wirklich schlecht, ich weiß ...)

Aber unterstes Niveau. Da ist ja selbst noch
Zitat:

Ich mache jetzt keinen Kalauer, da kannst du warten bis du kahl wirst.

besser. :mrgreen:


Christian S. - So 20.04.03 17:59

Aber nur ein ganz kleines bisschen! :lol:


shrubman - Sa 20.11.04 12:18

Ich versuche grad mit einer Message Box zu arbeiten aber bekomme das mit der Delphi Hilfe nicht richtig hin ...
Was ist hier dran falsch :

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_YESNO): Integer;
begin
if IDYES=true
then
begin
showmessage('SEX');
end
else
showmessage('ALKOHOL');
end;


shrubman - Sa 20.11.04 12:31

ich habs überarbeitet

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
if
Length(Label1.Caption)=Length(Wort)
then
begin
with application do begin
    NormalizeTopMosts;
    MessageBox('Restart program?''Look', MB_YESNO);
    RestoreTopMosts;
    if
    IDYES=true
    then
    begin
    WinExec(pChar(ParamStr(0)),SW_SHOW);
    Close;
    end else close;
end;
end;

aber bei IDYES=true sagt er inkompatible typen


herzi - Sa 20.11.04 12:55

MessageBox gibt dir als Rückgabewert IDYes/IDNo. Das hast du im Code nicht zugewiesen!!

Also

Quelltext
1:
2:
3:
if MessageBox(Handle,'Restart program?', 'Look', MB_YESNO)=IDYes then 
begin 
end;


AXMD - Sa 20.11.04 13:01


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if Length(Label1.Caption) = Length(Wort) then begin
  with application do begin
    NormalizeTopMosts;
    case MessageBox('Restart program?''Look', MB_YESNO) of
      ID_YES: WinExec(pChar(ParamStr(0)),SW_SHOW);
      else
        Close;
      end;   
    end;
  end;


AXMD