Wikibooks
svwikibooks
https://sv.wikibooks.org/wiki/Wikibooks:Huvudsida
MediaWiki 1.45.0-wmf.4
first-letter
Media
Special
Diskussion
Användare
Användardiskussion
Wikibooks
Wikibooksdiskussion
Fil
Fildiskussion
MediaWiki
MediaWiki-diskussion
Mall
Malldiskussion
Hjälp
Hjälpdiskussion
Kategori
Kategoridiskussion
TimedText
TimedText talk
Modul
Moduldiskussion
MessageBox
0
2079
57389
27956
2025-06-08T08:39:11Z
R. Henrik Nilsson
10380
väde > värde
57389
wikitext
text/x-wiki
Visar en specificerad meddelanderuta för användaren.
'''Unit
<span style="color:#0000FF">Windows</span>
'''function''' MessageBox('''const''' Text, Caption: [[PChar]]; Flags: [[Longint]] = MB_OK): [[Integer]];
=== Beskrivning ===
Använd [[MessageBox]] när du vill visa en meddelanderuta med ett valbart antal knappar, ikoner och förvalda knappar. Denna funktion använder sig av Windows egna färdiga rutiner, vilket innebär att texten på knapparna har det språk som Windows använder. Ett alternativ är [[MessageDlg]].
Parameterns ''Caption'' som skickas till funktionen är det namn eller titel som meddelanderutan får, det vill säga den text som visas i fönsterramens övre del. Denna parameter kan maximalt innehålla 255 tecken. Många tecken i ''Caption'' parametern får meddelanderutan att öka i bredd, då radbyte inte finns där.
Parametern ''Text'' är själva meddelandet som ska visas, och kan innehålla mer än 255 tecken om det behövs. Långa meddelanden får automatiskt radbyten infogade.
Hela denna funktion är ett direkt anrop till ''user32.dll'' filen och kan inte förändras på något vis. Om en mer Delphi konstruerad funktion eftersöks så rekommenderas funktionen [[MessageDlg]].
=== Exempel ===
Detta exempel innehåller även [[Case]] begreppet, vilket är ett fundametal begrepp inom [[w:Pascal (programspråk)|Pascal]]s programmerings princip.
'''procedure''' TForm1.Button1Click(Sender: TObject);
'''begin
'''Case''' MessageBox(Application.Handle,<span style="color:#008000">'Meddelandetext med'</span>+
#13+<span style="color:#008000">'ett valt radbyte.'</span>,<span style="color:#008000">'Ramtexten'</span>,MB_YESNO+MB_DEFBUTTON2+
MB_ICONASTERISK) '''OF
IDYES: ShowMessage(<span style="color:#008000">'Ja!'</span>);
IDNO: ShowMessage(<span style="color:#008000">'Nej!'</span>);
'''End;
'''end;
Resultatet av detta exempel ser du här:
[[Bild:MessageBox.jpg|center]]
=== Parametrar ===
Parametern ''Flags'' anger vilka knappar och ikoner som kommer att synas i meddelanderutan, vilket i sin tur ger olika resultatvärden. Dessa parametrar kan kombineras för att få ett tillfredsställande resultat. Nedan finns ett antal parametrar som kan kombineras.
{| {{fintabell}}
!Parameter
!Betydelse
|-
|'''Vilka knappar'''
|
|-
|MB_ABORTRETRYIGNORE
|Meddelanderutan innehåller tre knappar: Avbryt, Försök igen och Ignorera.
|-
|MB_OK
|Meddelanderutan innehåller endast en knapp: OK
|-
|MB_OKCANCEL
|Meddelanderutan innehåller två knappar: OK och Avbryt.
|-
|MB_RETRYCANCEL
|Meddelanderutan innehåller två knappar: Försök igen och Avbryt.
|-
|MB_YESNO
|Meddelanderutan innehåller två knappar: Ja och Nej.
|-
|MB_YESNOCANCEL
|Meddelanderutan innehåller tre knappar: Ja, Nej och Avbryt.
|-
|MB_HELP
|En extra hjälp knapp kan infogas.
|-
|'''Vilken ikon'''
|
|-
|MB_ICONEXCLAMATION
|En ikon med ett utropstecken syns i meddelanderutan.
|-
|MB_ICONWARNING
|Samma som ovan.
|-
|MB_ICONINFORMATION
|En ikon med ett frågetecken syns i rutan till vänster om texten
|-
|MB_ICONASTERISK
|Samma som ovan.
|-
|MB_ICONQUESTION
|En ikon med ett frågetecken syns i rutan till vänster om texten
|-
|MB_ICONSTOP
|En ikon med ett kryss i syns i rutan, tillsammans med en varnings signal.
|-
|MB_ICONERROR
|Samma som ovan.
|-
|MB_ICONHAND
|Samma som ovan.
|-
|'''Förvald knapp'''
|
|-
|MB_DEFBUTTON1
|Första knappen är förvald.
|-
|MB_DEFBUTTON2
|Andra knappen är förvald.
|-
|MB_DEFBUTTON3
|Tredje knappen är förvald.
|-
|MB_DEFBUTTON4
|Fjärde knappen är förvald.
|}
Nedan finns de olika värden, i form av konstanter, som skickas tillbaka av funktionen. Dess värden beror på vilken knapp som användaren väljer att klicka på.
{| {{fintabell}}
!Parameter
!Motsvarande värde
!Betydelse
|-
|IDOK
|1
|Användaren väljer OK knappen.
|-
|IDCANCEL
|2
|Användaren väljer Avbryt knappen.
|-
|IDABORT
|3
|Användaren väljer Avbryt (Cancel) knappen.
|-
|IDRETRY
|4
|Användaren väljer Försök igen knappen.
|-
|IDIGNORE
|5
|Användaren väljer Ignorera knappen.
|-
|IDYES
|6
|Användaren väljer Ja knappen.
|-
|IDNO
|7
|Användaren väljer Nej knappen.
|}
[[Kategori:Delphi]]
[[Kategori:Dialoger och meddelanden]]
4aqdjo88u7ni6mnpcy43xr9d9v423js
Programmera i PHP/Mer om text i PHP
0
8537
57388
49477
2025-06-07T12:00:16Z
R. Henrik Nilsson
10380
verkligeheten > verkligheten
57388
wikitext
text/x-wiki
[[Kategori:Programmera i PHP]]
==Hur får man ut text på skärmen?==
Det finns flera olika sätt att få ut text på skärmen, t.ex.
<?php
echo "Ett PHP-skript!<br />";
echo "Visst ser det snyggt ut?";
?>
Man behöver inte ange att det är php man använder som skriptspråk, det går lika bra att skriva:
<?
echo "Ett PHP-skript!<br />";
echo "Visst ser det snyggt ut?";
?>
Äldre web-läsare brukar dock visa resultatet bättre och snabbare om man anger att det är php som används.
Istället för echo kan man skriva print:
<?
print "Ett PHP-skript!<br />";
print "Visst ser det snyggt ut?";
?>
Det är bara två olika sätt att skriva samma sak.
Det går även att använda script-taggarna i html-standarden för att tala om att man använder php:
<script language="php">
print "Ett PHP-skript!<br />";
print "Visst ser det snyggt ut?";
</script>
Anger du inte att du använder php tror läsaren, f.o.m. HTML5 blev standard, att du använder dig av javascript vilket är den nya standarden för script. Därför måste du fylla i att du använder php som scriptspråk. Det här sättet att koda tar längre tid men ger samma resultat.
Slutligen går det att använda parenteser;
<?php
echo ("Ett PHP-skript!<br />");
echo ("Visst ser det snyggt ut?");
?>
Resultatet för användaren blir exakt detsamma, det är upp till dig om du vill använda dem.
==Ny rad==
Vill du lägga till en ny rad i texten kan du endera göra det genom php eller med hjälp av html.
Html-versionen blir:
<?php
echo "Ett PHP-skript!";>";
<br />
<?php
echo "Visst ser det snyggt ut?";
?>
Om du däremot använder dig av radbrytning i text som är standard inom all högre programmering skriver man \n:
<?
echo "Ett PHP-skript!\n";
echo "Visst ser det snyggt ut?";
?>
Det blir troligtvis ingen radbrytning på hemsidan, men om du lägger in texten i en textruta är du tvungen att göra på det här sättet för att få med en radbrytning.
==Enkelt- eller dubbelt citat-tecken?==
Som du kanske sett används både enkelt och dubbelt citattecken i php-kod. Det är bara två olika sätt att skriva samma sak. Det finns ett undantag: använder du en variabel i en textsträng skrivs det variabeln står för om du har dubbla citattecken men själva variabeln om du använder enkla. Jämför dessa närmast identiska kodsnuttar:
<syntaxhighlight lang="PHP">
<?php $Namn = Hjalmar;
echo "Är du från Finland $Namn ?";?><br>
<?php echo 'Är du från Finland $Namn ?'; ?>
</syntaxhighlight>
I det övre exemplet blir utskriften:
Är du från Finland Hjalmar?
Medan i den nedre blir resultatet:
Är du från Finland $Namn?
==Slå ihop text==
Många gånger är man tvungen att slå ihop en text med en annan och i php gör man det med en punkt:
<syntaxhighlight lang="PHP">
<?php
$maonad="januari";
echo "Det är kallt i " .$maonad . " !";
?>
</syntaxhighlight>
Tänk på att punkterna ALLTID skall ligga utanför citattecknen. Det är ett synnerligen vanligt, och ett ytterst irriterande, slarvfel att placera punkterna på fel plats om man skall slå ihop många mindre textstycke i en lång text.
===Slå ihop tal===
Skall du däremot slå ihop två tal använder du + tecken som du alltid gjort i skolmatematiken. Det går att slå ihop dem med punkt, men talen behandlas som text och inte som siffror:
<syntaxhighlight lang="PHP">
<?php
$tal1 = 13;
$tal2 = 24;
echo $tal1 . $tal2; ?>
<br />
<?php echo $tal1 + $tal2; ?>
</syntaxhighlight>
Resultatet blir:
1324
37
==Trimma bort tomma tecken==
Ofta uppstår problem när användare lägger till ett mellanslag på en textsnutt som skall jämföras mot någon annan. Anta att en användare loggar in med ett användarnamn som har ett mellanslag på slutet. För användaren verkar det konstigt att inte bli inloggad, den ser ju inte att det är ett "tomt tecken" med. Det finns en väg runt det problemet, eller snarar flera: ltrim, rtrim, trim och chop.
*ltrim tar bort alla tomma tecken på vänster sida om texten, dvs. innan den börjar. ''(l=left'')
*rtrim tar bort alla tomma tecken i slutet, efter sista synliga tecknet. (''r=right'')
*trim eller chop tar bort tomma tecken både före- och efter texten.
Exempel:
<syntaxhighlight lang="PHP">
<?php
$Stad = " Kumla ";
$Stad = chop($Stad);
echo $Stad;
?>
</syntaxhighlight>
==Mixtra med strängar==
Ibland vet man inte om en användare lagt in stora- eller små bokstäver i en text som skall jämföras. Då kan man skapa en variabel som fylls med ordet där man endera omvandlat alla bokstäver till versaler (stora bokstäver) eller gemener (små bokstäver). Kommandona för det är:
*strtolower = alla bokstäver blir gemener
*strtoupper = alla bokstäver blir versaler
Exempel:
<syntaxhighlight lang="PHP">
<?php
$kung = "Karl xii";
$kung = strtoupper($kung);
if $kung == "KARL XII" {
echo "Sköts vid Halden";}
else {
echo "Fel kung";}
?>
</syntaxhighlight>
==Andra trix med text==
Tre andra mer eller mindre roliga funktioner som kan nämnas är:
*ucfirst, första bokstaven blir stor, väldigt behändigt med namn, t.ex $Temp = ucfirst($Temp);
*ucwords, samtliga ord i en text får första bokstaven omvandlad till versal. Mindre nyttig men... $Temp = ucwords($Temp);
*strrev, textens bokstäver kommer i omvänd ordning, tämligen oanvändbart men... $Temp = strrev($Temp);
===Beräkna antalet bokstäver===
En synnerligen nyttig funktion som används är '''strlen''' som visar hur många bokstäver ett ord innehåller. Även mellanslag beräknas så det är bra om dessa tagits bort med ''trim'' eller ''chop'' innan:
$Temp="Gymnasieskolan";
echo strlen($Temp); // Talet 14 visas, eftersom ordet innehåller 14 bokstäver
===Välj text inuti annan text===
Slutligen har vi funktionen '''substr''' som tar fram en viss text inuti en längre text. Anta att du har en lista med datum skrivna enligt amerikansk standard, ÅR-DAG-MÅNAD och vill kunna ändra dem till svensk ÅR-MÅNAD-DAG. Då måste du ta isär bokstäverna 6-7 samt 9-10, lagra dem i en temporär variabel där du kan låta dem skifta plats och sedan sättas tillbaka efter årtalet igen. Hur gör man det? Sunstr fungerar enligt följande:
''substr (sträng_som_ska_behandlas, startposition, längd)''.
Exempel:
Så om vi antar att du har det amerikanska datumet tar du ut månaden, de två sista tecknen med.
<syntaxhighlight lang="PHP">
<?php
$USAdatum="2015-24-12";
$aor = substr($USAdatum,0,4);
$dag = substr($USAdatum,8,2);
$maonad = substr($USAdatum,5,2);
echo $aor."-".$maonad."-".$dag;
?>
</syntaxhighlight>
Resultatet blir:
2015-12-24
===Splitta en textrad till en lista===
Anta att du har en textrad med olika delar separerade med komman. Ett exempel från verkligheten är när man t.ex. lägger in sökord i Worpress. Då skrivs de in i en lång rad med komman mellan. Sökord kan vara:
tulpan, vitsippa, vår, tussilago
För att bryta ner den textraden så att varje ord står ensamt i en lista skriver man:
<syntaxhighlight lang="PHP">
<?php
$string = 'tulpan, vitsippa, vår, tussilago';
$array = explode(',', $string);
?>
</syntaxhighlight>
Använder du semikolon istället skriver du:
<syntaxhighlight lang="PHP">
<?php
$string = 'tulpan; vitsippa; vår; tussilago';
$array = explode(';', $string);
?>
</syntaxhighlight>
iq6c8jl562na6shbhi8acbco3mrv25i